Skip to content

VM Performance

Real-time per-disk I/O monitoring for running QEMU virtual machines — bytes read/written, operations and derived rates per second.

Features

  • Per-device I/O


    Bytes read/written and read/write IOPS exposed per virtual disk device, not just per VM.

  • Derived Rates


    Read/Write bytes/sec and IOPS/sec computed from the delta between two consecutive samples.

  • Grouped View


    Results grouped by Node and then by VM ID — drill straight to the noisy disk.

  • On-demand Refresh


    Click refresh to take a new sample — the next reading recomputes per-second rates against the previous one.

Why

Why a separate VM I/O view when PVE already shows VM activity?

Per-disk granularity

PVE summarises VM I/O as a single number. This view splits it per virtual device (scsi0, virtio1, …) so you can tell which disk is the hot one.

IOPS, not just bytes

Both throughput (B/s) and operations (IOPS/s) are exposed — useful when latency, not bandwidth, is the bottleneck.

QEMU Monitor direct

Data comes straight from info blockstats on the QEMU Monitor — bypasses the RRD aggregation window, so spikes are visible.

QEMU running only

The view lists running QEMU VMs. LXC containers and stopped VMs do not appear here — there is no blockstats source for them.

Sections

  • Status — grid of every running QEMU VM with its block devices: cumulative read/write bytes, read/write IOPS, and the per-second rates derived against the previous refresh. Grouped by Node → VM ID

How rates are computed

Read/Write bytes/sec and IOPS/sec are computed as (current - previous) / elapsed_seconds. The first sample shows raw counters only; the per-second columns populate from the second refresh onwards.