VM VmWare Workstation performance on a separate hard drive
Background
Engaged in the development and testing of software, including At home, you have to deploy a virtual environment and install specialized software such as: development environments, database servers, applications, etc. Up until the deployment of a full-fledged test environment. In my case, I have a whole AD domain with
The idea
A quick search on the network did not give accurate quantitative estimates of the performance gain. Only general recommendations: that "probably will work faster" and depends on the specific hardware, types of tests and work in VM. I decided to try to deploy the Windows 2012R2 VM there and conduct tests of the speed of working with the disk myself, as well as calculate the VM load speed with the launch of Visual Studio 2013 and the opening of the project in it. And to complete the picture, expand the types of testing - carry out similar measurements when the VM is located on the home network storage and in different virtual machines (VmWare and Virtual Box). Suddenly, somewhere there will be outstanding results?
Testing
Test Kits
So, you need to check the following tests:
- Crystaldiskmark
- VM startup time with opening a project in Visual Studio
Combining this with 5 types of VM types and configurations (VmWare and VirtualBox locally and over the network, VmWare on a separate disk), we get 10 tests. Virtual BOX
Hardware environment
Host machine:
OS Windows 8.1;
VmWare Workstation 10.0.6;
Virtual BOX 5.0.16;
Intel Core i7 4core;
MB Asus P6X58D-E;
24 Gb RAM;
HDD: 256 Gb SSD for OS;
HDD for VM: Segate Barracuda ST3250318AS, SATA-II, 8Mb, 7200rpm.
Network
Attached Storage: OS Windows 2012R2;
Intel Core i3 2core;
MB Asus P8H61-I;
4 Gb RAM;
HDD Seagate Constellation ES ST1000NM0011 SATA-III, 64 MB, 7200rpm.
The network controllers built into MB are used, the network between machines is 1 Gbit / s. The disks on the host machine and in the storage are different, this of course can affect the results. But starting over the network here is not the main goal, so I did not twist the disks between the host machine and the network attached storage.
OS in all VMs is installed from scratch, tools from VM, Visual Studio are installed. in the VM, the Visual Studio project is copied and 1 time. The next reboot measures the performance.
In cases of VMDK and VDI files did not split into several, the entire VM is stored in one file.
results
WmWare Workstation, VMDK on the local disk (left) and network storage (right):
Virtual BOX, VDI on the local disk (left) and network storage (right):
And the long-awaited measurement, VmWare machine using a whole separate disk:
As you can see practically does not differ from starting a VM with storing a VMDK file on the same disk. Those. there is no noticeable increase, all within the margin of error. But what about the time of starting VM data, opening a project in Visual Studio 2013 and opening a file for editing in it? For the project, I took a small site on ASP.NET with a size of 13 MB, 161 files. Opened default.aspx from the root of the site.
Test | VmWare LocalVMDK | Vmware separate drive | VmWare over the network | VirtualBOX LocalVDI | VirtualBOX over the network |
Start VM with VS, min: sec | 2:15 | 1:57 | 1:55 | 1:54 | 2:22 |
As you can see, there is a small gain in speed when using a separate disk (highlighted in bold). The spread in the readings of other tests and their gain compared to a single disk cannot be explained without a more coherent environment (at least it is necessary to twist the disks).
The question also arose: how can the SSD in the host machine affect the results? After all, the VM settings I put on it. And there, when the OS is running, the VMEM file is 2 GB in size.
I watched the calls to the SSD with the VM settings and this VMEM file while the VM was working with a separate disk. Well, it seems like there are no calls to the SSD, 0-1% of the disk load. Here is an example - the time of installation of such a VM. Disk D is used for ceiling, SSD is not used:
Still, I decided to leave the SSD and save the settings of the VM and VMEM file on the same diskwhere the VMDK is mapped . So that this disk takes on board the entire VM with giblets. When creating a VM and choosing a separate disk, it is possible to use not the whole disk but Use individual partition on this disk. I divided the disk into 2 parts, a little (30 GB) allocated a subsection for storing VM settings, and gave the rest of the RAW partition to VM:
VM is created normally, settings are saved in a section visible in the host OS. But when it comes to writing data to a section that is completely dedicated to the VM, an error arises of the inability to write to it and the VM turns off. Unfortunately, this error could not be defeated, which is not clear.
Visual sensations
The numbers are not visible, but the response time of the interface is noticeably higher than when working with VMDK / VDI on the same drive or network.
conclusions
Although the effect of CrystalDisk and the start time is not significant, the visual sensations of working in a VM located on a separate physical disk are noticeable. There are no "brakes"; it works like a host machine. In full screen mode, you may not notice the difference.