📜 ⬆️ ⬇️

About Intel Hyper-Threading and Virtual Machine Performance

Always treated to Intel Hyper-Threading as a marketing product. But recently I looked at this technology from a different angle.

The moment came when the vSphere Standart license allowed us to create and run virtual machines with the number of virtual processors equal to 8. For what this threatens in the case of an installed processor with 4 physical cores and support for Hyper-Threading, read on.

I think this material should be viewed as a continuation of my attempts to speed up the work of the terminal server, I wrote about it here .

About Hyper-Threading
The principle of Hyper-Threading is based on the fact that at each moment of time only a part of processor resources is used when executing the program code. Unused resources can also be downloaded by work — for example, to use for the parallel execution of another application or another thread of the same application.

')
Following the slogan of Intel “The more tasks, the higher the work efficiency”, in order to see the result, I will start watching movies in different sessions on the terminal server. The more I can run movies, the better; Reducing the load on the processor is also welcome.

On VM prepared for testing, OS ws2008 R2 Standart is installed. At the time of testing, all updates were installed. To play the clips installed codec and player DIVX .

The test bench is assembled from an HP ML350 G6 server with an Intel Xeon E5620 processor 1pc.

E5620 Specifications
Launch Date Q1'10
of Cores 4
of threads 8
Base Frequency 2.4 GHz


I'll start with the results of ESXi


The server has an ESXi version 5.1-1483097 installed.

About the logic of ESXi + Hyperthreading on Habré published interesting material "Optimization of the virtual infrastructure based on VMWare vSphere" , I recommend for review.

Several experiments with vcpu sizes, intel HT technology is active, a test video with 480p quality was played.



As can be seen from the results, when using 8 threads on a terminal server, we managed to launch another copy of the movie and get an average increase of 20%. But the difference between virtual processors and virtual cores in the case of a single physical processor is imperceptible.

I fixed the load from the VM, if fixed from the host - the numbers will be different, for some reason the host server records a different result from the VM. Here is how it looks when real users work:



In the following tests, I will turn off HT in the BIOS and play videos with the quality of 480p, 720p and 1080p.



Hyper-V 2012 Results


The server is running OS ws2012 R2 Standart and installed all the updates at the time of testing.
Test VM ported from VMware platform to Microsoft platform.

Performance readings were removed from the host:



Hyper-V 2008 Results


The server is running OS ws2008 R2 Standart and installed all the updates at the time of testing.

The performance readings were removed from the host, however, the Hyper-V 2008 platform with active HT did not allow creating VMs with 8 vcpu, in connection with which strange results were obtained.



After, I could not start the VM in configuration 8, vcpu decided to test the operation of Hyper-V 2008 in conjunction with VDI. Several VMs were created with Windows 7 x86, all updates are installed.

Results for 4 vcpu per VM:



Results for 2 vcpu per VM:



The configuration with 2 vcpu per VM showed better results, very noticeable for the 1080p movie.

Results of the physical server ws2008 R2


These data will be used as reference:



Comparisons of all platforms


For comparison, I will use the results obtained for 480p video:



The following conclusions can be drawn:

Using HT gives a result that can be seen in a lot of flow problems. The benefit of HT in more narrow tasks should be checked.

In the tests, there is no clear leader between the platforms. And licensees ws2008, which are used for Hyper-V, it is worth thinking about the update, if there is a need to use large VM.

To obtain the result as close as possible to the FS, the VDI infrastructure will allow.
I think this result was provided by the RemoteFX 8 codec.

Source: https://habr.com/ru/post/251163/


All Articles