Using a pre-built container

For convenience a pre-build container with Run-perf is available. The usage is similar to installed run-perf, the only difference is that you need a shared directory to store the results when using a container. The same stored directory can be used to add your hosts definitions.

Warning

The container is intended for only testing, it comes with a pre-generated ssh key that will be deployed to the testing machine(s). Use it for disposable machines only.

You can get a simple help by running the container:

podman run --rm -it ldoktor/fedora-runperf

Let’s define a target machine $NAME (details about hosts in Hosts):

cd $YOUR_SHARED_DIR
mkdir hosts
cat > hosts/$HOST_NAME.yaml << \EOF
---
hugepage_kb: 2048
numa_nodes: 1
host_cpus: 8
guest_cpus: 4
guest_mem_m: 2048
arch: x86_64
EOF

Note

If you are using selinux, you also need to set the context for the shared directory via chcon -Rt svirt_sandbox_file_t .

And now let’s run linpack 2 times on that machine and generate a comparison:

podman run --rm -it -v `pwd`:/results ldoktor/fedora-runperf run-perf -vvv --hosts $HOST_NAME  --distro Fedora-33 --default-password $PASSWORD --profiles DefaultLibvirt --paths /results -- linpack:'{"threads": "32"}'
podman run --rm -it -v `pwd`:/results ldoktor/fedora-runperf run-perf -vvv --hosts $HOST_NAME  --distro Fedora-33 --default-password $PASSWORD --profiles DefaultLibvirt --paths /results -- linpack:'{"threads": "32"}'
podman run --rm -it -v `pwd`:/results ldoktor/fedora-runperf compare-perf --html comparison.html result_*

An example of upstream qemu bisection using a built-in contrib script:

podman run --rm -it -v `pwd`:/results ldoktor/fedora-runperf upstream_qemu_bisect.sh /results/qemu 5.1.0 5.2.0 run-perf -vvv --hosts $HOST_NAME  --distro Fedora-33 --default-password $PASSWORD --profiles DefaultLibvirt --paths /results -- linpack:'{"threads": "32"}'