I've to work with a 3rd party PHP framework in my virtual machine and encountered performance issue with the disk storage. I know there are and can be many many factors affecting these things, but please let me explain a few observations I made first.
I did a simple "Hello World" page with this big framework (similar to Symphony, Laravel, etc.) and running it locally on a Linux host it has a deliver time of below 50ms just for the raw HTML. Now, I'm not always connected to that Linux host and multiple developers need their own machines to work on their stuff so our idea to provide them with virtual machines.
The guest: Debian Wheezy 64bit , running Nginx, PHP-FPM, Memcache, Mysql
My host: W7 Pro 64bit, i7-980X @ 3.33GHz, 12GB RAM, Intel X25-M G2 160GB
With this setup I measured a time of ~800ms delivering a simple "Hello world" page. My goal is to cut it down to ~80ms. Where did I come up with this number?
The same guest running on a Linux host (on a laptop, a much more less powerful system without SSD) yielded around 80ms. And so did the same guest, exported to OVF and imported in VMWare Workstation 8: it took around 80ms too. To recap, the same virtual machine:
- on my Windows host, in VirtualBox: 800ms
- on my Windows host, in VMWare Workstation: 80ms
- on a Linux mid range laptop, without SSD, inside VirtualBox: 80ms
I built the virtual machine with vagrant based on a box I built with veewee and configured it with puppet.
The numbers I'm seeing don't make sense to me. Why would Host=Windows and Guest=Linux have such weird problems? I tried going through the VirtualBox guest machines settings, playing around with CPU count, enable/disable certain performance checkboxes, but I couldn't find anything which would yield me better performance. I'm running against a wall.
Any ideas why I would see such behavior? I understand the help I can get is very limited because of the frameworks blackbox, but maybe my measurements rings a bell with someone would my problem could be.