Physical or virtualization? Continued tests Intel Xeon 6242R

In the previous article, we talked about the baseline performance evaluation of new servers in our cloud project on the example of Gilev’s test for 1C and 7zip in a physical “native” environment.
Now that we have prepared the servers for working in our virtualized cluster, we can share the test results in comparison with the results of similar tests when installing the OS on a physical server without using virtualization. Thus, we will try to see if there is a decrease in performance and how critical it is (if any). So let’s get started!

First, we describe what was compared with what in our small experiment.
The physical server used was the same – Dell PowerEdge R640 (2x Intel Xeon Gold 6242R, 12x64GB DDR4 3200MHz, 2x240GB SSD) factory-assembled. The OS in which the tests were carried out was the same on the physical server and on the virtual machine further – this is CentOS 8 (4.18.0-240.1.1.el8_3.x86_64). For tests in a virtual environment, we used VMware ESXi 6.7.0, build 15160138.

As for the characteristics of the compared configurations, we get the following:
1. Physical server:

  • 2 processors with 20 physical / 40 virtual cores (Hyper-Threading)
  • 768 GB of RAM (in fact, the volume does not play a critical role)
  • About 240GB of usable space on the C drive

2. Virtual machine:

  • 2 virtual processors with 40 virtual cores
  • 64 GB of RAM (enough for tests)
  • About 200GB of usable space on the C drive

What tests are we going to check?
We will restrict ourselves here to the following set of tests:

  1. Sysbench
  2. 7zip
  3. Geekbench

An important point: all tests were run with Turbo Boost enabled and maximum performance settings in BIOS. The power mode for ESXi is Balanced (default).

So, what are the results:
1. “sysbench –test = cpu –num-threads = 40 run”

On a physical server …

sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 40
Initializing random number generator from current time

Prime numbers limit: 10000

Initializing worker threads...

Threads started!

CPU speed:
events per second: 47238.17

General statistics:
total time: 10.0009s
total number of events: 472487

Latency (ms):
min: 0.68
avg: 0.85
max: 1.46
95th percentile: 0.99
sum: 399892.63

Threads fairness:
events (avg/stddev): 11812.1750/824.36
execution time (avg/stddev): 9.9973/0.00

On a virtual machine …

sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 40
Initializing random number generator from current time

Prime numbers limit: 10000

Initializing worker threads...

Threads started!

CPU speed:
events per second: 46474.85

General statistics:
total time: 10.0009s
total number of events: 464850

Latency (ms):
min: 0.74
avg: 0.86
max: 53.87
95th percentile: 1.01
sum: 398802.05

Threads fairness:
events (avg/stddev): 11621.2500/1156.95
execution time (avg/stddev): 9.9701/0.02

In short, the results can be summarized in the following table:

ParameterServerVMDifference
Events per second47238.1746474.85-1.62%
Latency (avg)0.85 ms0.86 ms+ 1.2%

It’s not that big of a difference … Let’s see what happens next.

2.7zip

On a physical server …

7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,80 CPUs Intel(R) Xeon(R) Gold 6242R CPU @ 3.10GHz (50657),ASM,AES-NI)

Intel(R) Xeon(R) Gold 6242R CPU @ 3.10GHz (50657)
CPU Freq: - - - - - - - - -

RAM size: 772271 MB, # CPU hardware threads: 80
RAM usage: 17650 MB, # Benchmark threads: 80

Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS

22: 219383 7214 2959 213417 | 2433655 7750 2678 207532
23: 207598 7028 3010 211518 | 2418901 7873 2660 209301
24: 204763 7174 3069 220162 | 2364952 7826 2652 207568
25: 198526 7168 3162 226669 | 2384016 7909 2682 212138
---------------------------------- | ------------------------------
Avr: 7146 3050 217941 | 7839 2668 209135
Tot: 7493 2859 213538

On a virtual machine …

7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,80 CPUs Intel(R) Xeon(R) Gold 6242R CPU @ 3.10GHz (50657),ASM,AES-NI)

Intel(R) Xeon(R) Gold 6242R CPU @ 3.10GHz (50657)
CPU Freq: 3769 3775 3772 3772 3773 3771 3772 3772 3772

RAM size: 64134 MB, # CPU hardware threads: 80
RAM usage: 17650 MB, # Benchmark threads: 80

Compressing | Decompressing
Dict Speed Usage R/U Rating | Speed Usage R/U Rating
KiB/s % MIPS MIPS | KiB/s % MIPS MIPS

22: 190208 6089 3039 185035 | 2001333 6449 2646 170665
23: 179252 5785 3157 182637 | 2077835 6995 2570 179789
24: 184889 6251 3181 198793 | 2069792 7037 2582 181662
25: 192625 6794 3237 219932 | 2157590 7441 2580 191990
---------------------------------- | ------------------------------
Avr: 6230 3154 196599 | 6981 2595 181027
Tot: 6605 2874 188813

Results in brief:

ParameterServerVMDifference
Total CPU usage%74936605-11.8%
Total R / U MIPS (normalized 100% CPU usage)28592874+ 0.5%
Total MIPS213538188813-11.6%

Here the results are more interesting. We see that MIPS is directly correlated with the Usage indicator. Perhaps 7zip somehow takes into account the processor frequency that the guest OS determines. Since Turbo Boost is a hardware technology, it is not translated to the OS level of virtual machines, but is available only to the hypervisor. However, the actual usable frequency of each VM core can easily reach Turbo Boost frequencies. This can be seen in esxtop

3. The last one is next in line today – Geekbench 5. Let’s see what happened.
Physical server: browser.geekbench.com/v5/cpu/5147653

Virtual machine: browser.geekbench.com/v5/cpu/5261298

ParameterServerVMDifference
Single-Core Score11861052-11.3%
Multi-Core Score3109328872-7.1%

These are the results. It is difficult to draw any specific conclusions from this. You can only notice that the final performance of a particular application depends on many factors and a properly configured virtual environment and guest OS will not always give a performance drawdown, as we can see in the Sysbench results.
And, of course, do not forget about the advantages of virtualization in general (higher density of services placement, lower capital and operating costs, energy optimization, speed of deployment and recovery of services).

I hope the article was interesting and useful for you. Well, we went to add this host to our cluster!

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *