Hello, I recently conducted a test to compare the CPU performance of a physical machine, a high performance VM (pass-through CPU, PIN CPU), and a common VM. 

Here are the results: 

 

1.     Physical machine:

 

# sysbench  --test=cpu --cpu-max-prime=100000000 --threads=2 run

WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.

sysbench 1.0.17 (using system LuaJIT 2.0.4)

 

Running the test with following options:

Number of threads: 2

Initializing random number generator from current time

 

 

Prime numbers limit: 100000000

 

Initializing worker threads...

 

Threads started!

 

CPU speed:

    events per second:     0.01

 

General statistics:

    total time:                          346.0588s

    total number of events:              2

 

Latency (ms):

         min:                               345943.52

         avg:                               346001.09

         max:                               346058.65

         95th percentile:                   100000.00

         sum:                               692002.17

 

Threads fairness:

    events (avg/stddev):           1.0000/0.00

    execution time (avg/stddev):   346.0011/0.06

 

 

2.     High Performance VM:

 

# sysbench  --test=cpu --cpu-max-prime=100000000 --threads=2 run

WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.

sysbench 1.0.17 (using system LuaJIT 2.0.4)

 

Running the test with following options:

Number of threads: 2

Initializing random number generator from current time

 

 

Prime numbers limit: 100000000

 

Initializing worker threads...

 

Threads started!

 

CPU speed:

    events per second:     0.01

 

General statistics:

    total time:                          351.8625s

    total number of events:              2

 

Latency (ms):

         min:                               351416.59

         avg:                               351639.01

         max:                               351861.43

         95th percentile:                   100000.00

         sum:                               703278.02

 

Threads fairness:

    events (avg/stddev):           1.0000/0.00

    execution time (avg/stddev):   351.6390/0.22

 

 

3.     Common VM:

 

# sysbench  --test=cpu --cpu-max-prime=100000000 --threads=2 run

WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.

sysbench 1.0.17 (using system LuaJIT 2.0.4)

 

Running the test with following options:

Number of threads: 2

Initializing random number generator from current time

 

 

Prime numbers limit: 100000000

 

Initializing worker threads...

 

Threads started!

 

CPU speed:

    events per second:     0.01

 

General statistics:

    total time:                          354.9108s

    total number of events:              2

 

Latency (ms):

         min:                               354761.26

         avg:                               354835.99

         max:                               354910.73

         95th percentile:                   100000.00

         sum:                               709671.99

 

Threads fairness:

    events (avg/stddev):           1.0000/0.00

execution time (avg/stddev):   354.8360/0.07

 

 

Result:  

 

There is little difference in CPU performance between these three scenarios, so why distinguish between high performance and regular virtual machines?  I don't think it makes much sense.