Table of Contents
Linux Servers Benchmarking System is a tool that was designed to measure the loss of performance of a workload executed on a server, a VM, a container or a combination of these. for example: application in k8s on vm on hyper-v.
Benchmarks where conducted on three different systems with 17 combination of hypervisors and/or container runtimes.
The tests are these:
- HPL
- DGEMM
- Stream
- Random Access
- FIO
- Blender classroom render
- Deep learning model training
- Database operations
- REST API
The system is composed of a control plane and one or more tested systems. a tested system is made of one or more targets with the exact same configuration. this can be used to accelerate the benchmarks but it can also reduce the iperf and rest benchmark accuracy.
the control plane uses a docker file with multiple docker container. It should be in the same network as the target systems.
To use the automated installation, you need ansible on your local machine and the possibility to connect to the control plane machine with a non-root user with an ssh key. this user must have password-less sudo permission. The OS must be Rocky Linux >=8.6.
To install Docker and run the control plane, update the values in Control-plane/inventory.yaml
and change the ip addresse of CPIP
in Control-plane/files/docker-compose.yaml
. Then, run
ansible-playbook -i Control-plane/inventory.yaml Control-plane/docker.yaml
The web-interface should be available at http://IP_OR_FQDN/.
The Database can be managed at http://IP_OR_FQDN:8080/ with user root and password example.
To mannualy install the control plane, prepare a machine with docker and docker compose. Follow the official documentation. Once done, use this command to setup the control plane:
cd Control-plane && docker compose up -d
The web-interface should be available at http://IP_OR_FQDN/.
The Database can be managed at http://IP_OR_FQDN:8080/ with user root and password example.
The target system must be installed with an ubuntu 20.04 LTS. Once installed, create the file /root/.ssh/authorized_keys
and put the following public key inside:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM4HXzVtsfkJm+xNcT17O0LZNWi6EWDOWvI6LqeJVNHJ [email protected]
It is recommended to reinstall the OS each time another type of benchmark is used. for example when going from bare-metal to docker on bare-metal.
Be carefull to always install it the exact same way. Use a full ISO as a base and avoid all updates to ensure the packages versions are the same.
To use the system, First open a web browser on the control plane. you can then add your systems and targets. Then you can go on schedule and choose what benchmark you want to execute. Benchmarks on a same target will be executed sequentially. Finally, onc they are done, you can visualize the results.
First off, thanks for taking the time to contribute! Contributions are what makes the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.
Please try to create bug reports that are:
- Reproducible. Include steps to reproduce the problem.
- Specific. Include as much detail as possible: which version, what environment, etc.
- Unique. Do not duplicate existing opened issues.
- Scoped to a Single Bug. One bug per report.
This project is licensed under the MIT license. Feel free to edit and distribute this template as you like.
See LICENSE for more information.