Intel Hyper-Threading and Virtual Machine Performance

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

    The moment has come when the vSphere Standart license allowed creating and running virtual machines with the number of virtual processors equal to 8. Read more about what this threatens with an installed processor with 4 physical cores and Hyper-Threading support.

    I think this material should be considered 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 part of the processor resources are used when executing program code. Unused resources can also be loaded with work - for example, used to run another application in parallel or another thread of the same application.

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

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

    The test bench was assembled from the HP ML350 G6 server with 1pcs Intel Xeon E5620 processor .

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

    I'll start with ESXi results

    The ESXi server version 5.1-1483097 is installed on the server.

    About the logic of work of ESXi + Hyperthreading on Habré, an interesting material was published "Optimization of the virtual infrastructure based on VMWare vSphere" , I recommend that you familiarize yourself with it.

    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 the terminal server, it was possible to launch another copy of the film and get an average increase of 20%. But the difference between virtual processors and virtual cores is not noticeable in the case of one physical processor.

    I fixed the load from the VM, if fixed from the host - the numbers will be different, for some reason the host server captures a result different from the VM. Here's what it looks like when working with real users:

    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

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

    Performance indications were taken from the host:

    Hyper-V 2008 Results

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

    Performance readings were taken from the host, however, the Hyper-V 2008 platform with active HT did not allow creating a VM with 8 vcpu, and therefore strange results were obtained.

    After I was unable to start the VM in configuration 8, vcpu decided to check the operation of Hyper-V 2008 in conjunction with VDI. Several VMs with Windows 7 x86 were created, 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.

    Ws2008 R2 physical server results

    This data will be used as reference:

    Comparisons of all platforms

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

    We can draw the following conclusions:

    Using HT gives a result that can be seen in many stream tasks. The benefits of HT in narrower tasks need to be verified.

    In our tests, there is no clear leader between the platforms. And ws2008 licensees that are used for Hyper-V should consider updating if there is a need to use large VMs.

    Get the result as close to the FS as possible VDI infrastructure.
    I think this result was provided by the RemoteFX 8 codec .

    Also popular now: