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 blackjack clients with different OS, DB, firewall, IIS, etc. If all this is assembled using home-level technology, performance slowdown is felt, especially when working with the disk subsystem. Of course, in the case of a single-user load, there are no problems and freezes, you can wait a few seconds in most cases. But in some cases, performance degradation already overwhelmed me, in particular when working in Visual Studio.

The idea


Having fun Working with VmWare Workstation for many years, I remembered that when creating a VM, you can select a separate hard drive for data storage:

image

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 is not yet able to work with individual disks / partitions.

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):

image

Virtual BOX, VDI on the local disk (left) and network storage (right):

image

And the long-awaited measurement, VmWare machine using a whole separate disk:

image

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.
TestVmWare LocalVMDKVmware separate driveVmWare over the networkVirtualBOX LocalVDIVirtualBOX over the network
Start VM with VS, min: sec2:151:571:551:542: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.

image

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:

image

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:

image

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.

Also popular now: