VM Benchmarking is a test suite used to evaluate performance of VMs on libvirt. It contains a collection of scripts that can test predefined benchmarks:
- Compression (uses pbzip2 and pigz)
- NPB (NAS Parallel Benchmarks)
- PostgresSQL
- Wildfly Testsuite
- Apache DayTrader used together with Apache JMeter
These benchmarks can be further configured and run in batches. Please look at the benchmarking guide for more details.
Testing needs a predefined fully installed VM which will be then cloned, and initialized with a desired benchmark. SSH connection is then used to run and monitor these images while benchmarking.
It is possible to specify different testing scenarios, settings and libvirt.xml for the runs (scripts in ./benchmarking/bin/bench/setup
)
- Clone VM and its disk.
- Compile test run script with benchmark specific and global settings.
- Compile auxiliary test run script (optional and only used by Apache DayTrader when starting Apache JMeter).
- Set swappiness to 0 and clear swap.
- Flush file system buffers.
- Clear page cache, dentries and inodes.
- Flush disk hardware buffers.
- Apply test's libvirt XML to the VM's definition.
- Start the VM.
- Start auxiliary VM (optional).
- Run test script on the VM.
- Run auxiliary test script on auxiliary VM (optional).
- Wait for benchmark to finish.
- Gather and save results.
- Delete the VMs.
Measuring of performance and plotting graphs can be configured and is done with the help of sysstat
There is already a directory with results from 2 machines. These can be safely deleted.