Skip to content

Benchmark Hosts & Storage

The Benchmarks tab (Super Admins only) measures what a host's storage, CPU and network can really do, and tracks it over time so a slowdown gets noticed. It runs standard tools on the hosts themselves:

Test Tool Measures
Storage fio (or rados bench for Ceph) Read and write IOPS, throughput, latency
Compute sysbench CPU events per second
Network iperf3, between two hosts Throughput in Gbps

This is real load

A benchmark competes with every VM already running on the host. Run them in a maintenance window on production hosts, or on a host in Maintenance mode.

Run a benchmark

Storage (fio): pick the target type, the host and the target, then the Size (MB) and Duration (seconds), and Run.

Target What's tested
Local path A scratch file under the host's VM storage folder (default /var/lib/libvirt/images). The file is always deleted afterwards.
ZFS pool A scratch file on the pool's mountpoint.
LINSTOR (DRBD) The resource's raw block device, with no filesystem in the way. Refused if any VM's disk is on that resource, with no override, because the test writes real data to the device.
Ceph pool rados bench from the Ceph cluster's monitor node, with temporary test objects that are cleaned up after. It never touches a VM's disk image. It measures the monitor-to-OSD path, which may differ from a compute host's own path to Ceph.

Compute (sysbench): pick the host, Threads (0 means one per CPU) and Duration, then Run.

Network (iperf3): pick the two hosts (from → to) and Duration, then Run.

Before a run on a host that has VMs running, the console asks you to confirm and says how many are running. A host in Maintenance, or with nothing running, starts straight away. If the console can't tell what's running, it treats the host as busy.

Results land in the run table (type, host, peer, status, result, who ran it). Export CSV downloads the whole history.

fio, sysbench and iperf3 are installed on hosts when they're added, and by Repair Worker on older hosts.

Trends charts results over time. Pick Storage (IOPS), Compute (events/sec) or Network (Gbps), then the host (and the peer for network).

Scheduled benchmarks

To track a host over time, add a schedule under Scheduled benchmarks: pick the test, its target, a time (UTC) and Daily or Weekly on a given day, then Add Schedule. Scheduled runs don't ask for the confirmation above. Creating the schedule counts as that confirmation, so pick a quiet hour. A LINSTOR schedule still checks for attached VMs each time it fires.

Regression alerts

Every finished run is compared with the median of the last 10 runs against the same target: the same host and path, pool or resource, or the same pair of hosts. A drop of 20% or more raises an alarm and sends the Benchmark regression notification (see Notifications & Alarms).

A target needs at least 3 earlier runs before it can alert, so a new target's first runs only build the baseline. A schedule gives the comparison a steady baseline. One-off runs at busy times can trigger false alarms.

See also