CPU performance benchmarks
UnixBench is a common tool used to test and compare the performance of VMs provided by different vendors. The purpose of UnixBench is to provide a basic indicator of the performance of a Unix-like system; hence, multiple tests are used to test various aspects of the system's performance. These test results are then compared to the scores from a baseline system to produce an index value, which is generally easier to handle than the raw scores. UnixBench tests consist of two parts: single-process tests and multi-process tests. UnixBench consists of a number of individual tests that are targeted at specific areas. The detailed information for each individual tests are available at this GitHub project.
In order to validate the performance of VMs running on Sunlight platform, UnixBench is selected to measure and compare the operating system running as VM against on bare-metal machine directly. The results will depend not only on your hardware, but on your operating system, libraries, and even compiler. Thus, the same hardware and operating system is used for the tests in the two setups: (1) the operating system is running on the bare-metal machine; (2) the operating system is running on a VM provisioned by the Sunlight platform, which is running on the bare-metal machine.
A number of different individual tests are selected to run on both setups to provide a comprehensive evaluation, with particular focus about the CPU performance.
Benchmarking results
The same Linux kernel (4.15.0-45-generic) has been used on different setups.
Individual Test | Bare Metal | KVM | Sunlight NexVisor |
---|---|---|---|
Dhrystone 2 using register variables | 3266.4 | 3252.6 | 3118 |
Double-Precision Whetstone | 837.1 | 853.4 | 871.3 |
Execl Throughput | 1168.6 | 997.7 | 1177.1 |
File Copy 1024 bufsize 2000 maxblocks | 1579.7 | 1633 | 1941.8 |
File Copy 256 bufsize 500 maxblocks | 989.1 | 1003.7 | 1219.6 |
File Copy 4096 bufsize 8000 maxblocks | 2936.3 | 2848.4 | 3338 |
Pipe Throughput | 661.9 | 667.4 | 833.5 |
Pipe-based Context Switching | 322.9 | 511.1 | 578.9 |
Process Creation | 189 | 883.7 | 1145.9 |
Shell Scripts (1 concurrent) | 806.7 | 2004.5 | 2283.1 |
Shell Scripts (8 concurrent) | 3340.2 | 1861 | 2119.6 |
System Call Overhead | 337.7 | 329.2 | 498.8 |