Skip to content

VM Performance

EEPer cluster

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

Per-device I/O

Bytes read/written and read/write operations shown for each virtual disk device, not only for each VM.

Derived Rates

Read/Write bytes/sec and IOPS/sec computed from the difference between the current counters and the ones of the previous reading.

Grouped View

Results are grouped by Node and then by VM ID, so the busiest disk is quick to find.

On-demand Refresh

Click Refresh to take a new sample and recompute the per-second rates. There is no automatic refresh.

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 busiest.

IOPS, not just bytes

Both throughput (bytes per second) and operations per second are exposed. Latency is not measured.

Live counters

Data comes from the current status of each VM (its block statistics), not from the RRD graphs. It 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 are no block statistics for them.

  • Overview: short description of the module
  • Status: grid with one row for each block device of every running QEMU VM of the cluster, grouped by Node and then by VmId

The module has no settings. It has two permissions: VM Performance gives access to the module and to its Overview page, Status gives access to the Status page. Status lists only the VMs the user can read (VM: Read, see Security).

Column Content
Status Status icon of the VM
Device Block device name as reported by QEMU
Read Bytes, Write Bytes Cumulative bytes read and written (QEMU counters rd_bytes and wr_bytes)
Read IOPS, Write IOPS Cumulative number of read and write operations (QEMU counters rd_operations and wr_operations)
Read Bytes Sec, Write Bytes Sec Bytes per second
Read IOPS Sec, Write IOPS Sec Operations per second
Node, VmId, Name Hidden by default, can be shown from the column picker

The toolbar has Refresh and Export (Excel file with the list). The grid can be filtered, sorted and regrouped.

Data is read when the page opens and each time you click Refresh: there is no automatic refresh. Each read asks Proxmox VE for the current status of every running VM, so it takes longer on clusters with many VMs.

How rates are computed: At every Refresh the per-second columns are computed as (current counter - previous counter) / seconds since the previous reading, so they are the average rate between the last two readings. The cumulative columns show the counters of the last reading. Until the first Refresh the per-second columns are 0. A VM that is no longer running, or a disk that is no longer there, leaves the list at the next Refresh.

The module reads the current status of the VMs: the QEMU Monitor is not used.

Proxmox VE privileges: the base (PVEAuditor) is enough.

The base and the rules common to all modules are in Proxmox VE Permissions.