-
Notifications
You must be signed in to change notification settings - Fork 12
Conversation
Unfortunately, the VirtualBox shared folder driver performs poorly. It is now replaced based on the host's OS with: - NFS on MacOS and Linux or - SMB on Windows.
A class C network (192.168.33.0/24) is now used for the boxes.
Test resultsConfigSystemHardware: iMac (2012, 3,4 GHz Intel Core i7) VMMemory: 2048 MiB vboxsf
nfs
Edit: Added VirtualBox and Vagrant versions |
Just for the record, I got similar results (same hardware): vboxsfreal 8m58.486s start.sh 1 real 4m48.473s start.sh 2 real 2m12.225s nfsreal 11m49.134s start.sh 1 real 2m51.059s start.sh 2 real 1m6.505s |
One problem, however, is that after provisioning the VM, my local user lost ownership of the already existing repositories. The VM works just fine, but I won't be able to develop on the host machine. Any suggestions how we could fix this? |
Found the following on SO which is related to this problem but haven't tried any of the suggestions yet: |
I found that the real issue was the Git module which forced a specific user onto repos, the default being "root". I made some slight changes to that module to leave the user and group entries blank if the shared folder is of type "nfs". |
A build using |
Test resultsConfigSystemHardware: AMD Phenom II X6 1055T @ 2.8 GHz, DDR3 RAM @ 1.6 GHz, Samsung SSD 840 EVO 250G VMMemory: 2048 MiB vboxsf[Mingw32]
smb[Mingw32]
time from |
I could not get SMB to work. After some digging I found that SMB requires Windows PowerShell v3 (hashicorp/vagrant#3139 (comment)), but I only had v2 installed. This is missing from the official documentation, so we will need to mention this in our README. |
Here are my results for SMB (2010 iMac):
|
Test resultsConfigSystemHardware: ThinkPad Edge E530 (Intel i7-3632QM CPU @ 2.2 GHz, RAM @ 1.6 GHz, OCZ Vertex3 120 GB SSD) VMMemory: 2048 MiB vboxsf
nfs
|
Consistent speed-up across platforms. 👍 Will merge this very soon. |
Having merged this PR, please summarize the test results in the README.md. |
As mentioned in #26, |
Performance test resultsConfigSystemHardware:
OS: OS X 10.10.3 VirtualBox: 4.3.20 Vagrant: 1.7.2 VMMemory: 2048 MiB CPUs: 2 Performance TestsTests with VBOXSFPlease take a look at the following Gist Log of ARSnova Vagrant Performance Tests (old), if you are interested in detail information provided by the system/scripts while running the following commands. Vagrant up
Start script
Sencha build
Tests with NFSPlease take a look at the following Gist Log of ARSnova Vagrant Performance Tests, if you are interested in detail information provided by the system/scripts while running the following commands. Vagrant up
Start script
Sencha build
Comparison of real timesThe following table compares the measured times:
|
This change fixes the problem that files are owned by root on the host.
Performance test resultsSystem ConfigSystemHardware: Apple iMac (Late 2012) 3,4 GHz Intel Core i7, 8GB RAM Virtual MachineMemory: 2048 vboxsf
nfs
|
Performance testHardware
SoftwareOS: Windows 8.1 (64 bit) VMMemory: 2048 MB Test resultsvboxsf[Cygwin] $ time vagrant up (1st run, with provisioning) [Cygwin] $ time vagrant up (2nd run, machine already provisioned) $ time ./start.sh (1st) $ time ./start.sh (2nd) $ time ant sencha:build:testing smb[Cygwin] $ time vagrant up (1st run, with provisioning) [Cygwin] $ time vagrant up (2nd run, machine already provisioned) $ time ./start.sh (1st) $ time ./start.sh (2nd) $ time ant sencha:build:testing |
Test ResultsConfigurationsSystemHardware:
Software:
VM
Tests with NFSVagrant Up
Start ScriptFirst execution
Second execution
Third execution
Sencha Build
Tests with VBOXSFVagrant Up
Start ScriptFirst execution
Second execution
Third execution
Sencha Build
Compare results
|
SystemHardware:MacBook Pro (Retina, 13-inch, Late 2013) SoftwareOS: OS X 10.10.3 Test Resultsvboxsf
nfs
|
System:Hardware:HP EliteBook 8540w Software:Windows 7 64bit SP1 Test Results:vboxsf:(1st with Provisioning) PowerShell: Measure-Command { vagrant up dev | Out-Default }Days : 0 (2nd) PowerShell: Measure-Command { vagrant up dev | Out-Default }Days : 0 (1st) time ./start.shreal 16m28.134s (2nd) time ./start.shreal 4m19.327s nfs:(1st with Provisioning) PowerShell: Measure-Command { vagrant up dev | Out-Default }Days : 0 (2nd) PowerShell: Measure-Command { vagrant up dev | Out-Default }Days : 0 (1st) time ./start.shreal 15m5.959s (2nd) time ./start.shreal 2m0.595s |
SystemLaptop: Acer Aspire VN7-591G VMMemory: 2048 MiB smbtime vagrant up1:real 8m36.770s time ./start.shFirst:real 3m23.879s second:real 1m31.869s vboxsftime vagrant upreal 11m53.099s time ./start.shFirstreal 8m30.994s second:real 2m0.474s |
Thank you all for sharing your results. Since there are no reports about problems after these changes, I think this PR is now ready for merging. @M-Fiedler, @Max-St: I guess you used the "nfs" heading instead of "smb" by mistake? AFAIK NFS is only available for Server editions of Windows and has to be installed explicitly. |
ConfigSystem
VM
vboxsf
nfs
|
@Max-St, @wtfomgroflstfu, @jemm14: Your results differ from the other results. To better understand potential outliers, could you confirm that you:
Consistency is key here. Thanks for your help! |
Hardware: Intel® Core™ i5-4210U CPU @ 1.70GHz × 4 , 8G RAM VM Vboxsf $time vagrant up (2nd time) $time ./start.sh (1st time) $time ./start.sh (2nd time) Nfs $time vagrant up (2bd time) $time ./start.sh (1st time) real 1m39.292s $time ./start.sh (2nd time) |
ConfigSystem
VM
Infoto run vboxsf
smb
|
ConfigSystemHardware 2012, 3,4 GHz Intel Core i7 VMMemory: 2048 MiB Vboxsf
SMb
|
SystemHardware: Lenovo Z50 (2014, 4 x 2.1GHz, 16GB RAM) vboxsf
smb
|
System SpecsHardwareAcer Aspire V Nitro VM1 Core, 2GB RAM via vagrant-faster Performance Testvboxsftime vagrant up (first run) time vagrant up --provision time ./start.sh (first run) time ./start.sh (second run) time ant sencha:build:testing (after running mvn clean) smbtime vagrant up (first run) time vagrant up --provision time ./start.sh (first run) time ./start.sh (second run) time sencha:build:testing (after running mvn clean) |
Performance Test ResultsSystem ConfigSystemHardware:• Sony Vaio Software:• Operating System: Windows 7 (64 Bits) VM• Memory: 2048 MB Test ResultsVboxsf$time vagrant up $ time ./start.sh $ time ./start.sh $ time ./start.sh NFS$time vagrant up $ time ./start.sh $ time ./start.sh $ time ./start.sh $ time ant sencha:build:testing |
Performance testSystem
Virtual Machine
vboxsf$ time vagrant up real 8m15.727s
user 0m5.827s
sys 0m2.600s $ time ./start.sh (1st) real 6m8.342s
user 0m32.379s
sys 0m29.457s $ time ./start.sh (2nd) real 4m12.469s
user 0m44.682s
sys 0m48.387s nfs$ time vagrant up real 7m11.122s
user 0m4.679s
sys 0m1.637s $ time ./start.sh (1st) real 4m69.345s
user 0m23.866s
sys 0m4.671s $ time ./start.sh (2nd) real 2m51.495s
user 0m21.163s
sys 0m5.187s |
Test resultsConfigurationSystemHardware- CPU: Intel Core i7 2600K@3,4Ghz - RAM: 16GB DRR3 - 1600Mhz - Disk: SSD - Samsung 840PRO - 256GBSoftware- Operating System: Windows 8.1 (64-Bit) - Virtualization: VirtualBox 4.3.28 - Virtualization-Software: Vagrant 1.7.2VM- CPUs: 2 Cores - RAM: 2048MBTest with VBOXSF$time vagrant up (1st) Test with SMB$time vagrant up (1st) |
Hardware Intel i7-3537U CPU @ 3.0 Ghz OS: Ubuntu 15.04 (64 bit) VM Memory: 2048 MB Test results vboxsf $ time vagrant up (first run) $ time vagrant up (second run) $ time ./start.sh (first run) $ time ./start.sh (second run) $ time ./start.sh (third run) NFS $ time vagrant up (first run) $ time vagrant up (second run) $ time ./start.sh (first run) $ time ./start.sh (second run) $ time ./start.sh (third run) |
ConfigOSWindows 7 Home Premium Service Pack 1 HardwareHersteller: ACER VMVirtualBox: 4.3.28 r 100309 vboxsfTime vagrant up (1st, w/ provisioning)real 16m12.113s Time ./start.sh (1st)real 15m75.580s Time ./start.sh (2nd)real 08m05.879s Time ant sencha:build:testing (1st)real 0m50.521s Time ant sencha:build:testing (2nd)real 0m30.420s SMBTime vagrant up (1st, w/ provisioning)real 18m46.118s Time ./start.sh (1st)real 16m08.720s Time ./start.sh (2nd)real 08m15.925s Time ant sencha:build:testing (1st)real 0m21.505s Time ant sencha:build:testing (2nd)real 0m19.420s
|
Test resultsConfigSystemHardware: MacBook (2012, 2,3 GHz Intel Core i7) VMMemory: 2048 MiB vboxsf$ time vagrant up (1st)real 8m7.748s $ time ./start.sh (1st)real 4m49.527s $ time ./start.sh (2nd)real 2m29.268s nfs$ time vagrant up (1st)real 9m44.278s $ time ./start.sh (1nd)real 1m14.645s $ time ./start.sh (2nd)real 1m02.641s |
Improve synced folder performance This PR tries to achieve better performance results by replacing VirtualBox shared folders. Based on the host OS, different technologies are now used: * Linux & MacOS: NFS * Windows: SMB Additionally, the network for the boxes has been changed to avoid conflicts. These changes have now been tested on Windows, MacOS and Linux and consistently result in performance improvements.
Thank you all for reporting your results! Here is a summary that will find its way into our README:
All values are seconds.
Reduction percentages are based on the arithmetic mean. Please note that "vagrant up" and "start.sh (1)" are biased by download speed. "start.sh (2)" and "ant" are more accurate, but they are also biased by the available hardware. However, since we have a wide range of different machines and bandwidths, these biases may cancel out. |
This PR tries to achieve better performance results by replacing
VirtualBox shared folders. Based on the host OS, different technologies
are now used:
Additionally, the network for the boxes has been changed to avoid
conflicts.
These changes have now been tested on Windows, MacOS and Linux and
consistently result in performance improvements.