The VM guest OS is under sustained memory pressure (low usable memory with elevated major page faults and/or swap I/O), risking thrashing, swapping, or OOM kills.
vmi_pod label):
kubevirt_vmi_info{vm="<vm-name>", namespace="<namespace>",
phase="running"}
2) Headroom (usable/available) < 5% indicates pressure:
sum by (name, namespace) (
kubevirt_vmi_memory_usable_bytes{
name="<vmi_pod>", namespace="<namespace>"
}
) /
sum by (name, namespace) (
kubevirt_vmi_memory_available_bytes{
name="<vmi_pod>", namespace="<namespace>"
}
)
3) Major page faults are elevated:
sum by (name, namespace) (
rate(
kubevirt_vmi_memory_pgmajfault_total{
name="<vmi_pod>", namespace="<namespace>"
}[5m]
)
)
4) Swap traffic is elevated (bytes/s):
sum by (name, namespace) (
rate(
kubevirt_vmi_memory_swap_in_traffic_bytes{
name="<vmi_pod>", namespace="<namespace>"
}[5m]
) +
rate(
kubevirt_vmi_memory_swap_out_traffic_bytes{
name="<vmi_pod>", namespace="<namespace>"
}[5m]
)
)
To increase VM memory in the VM spec:
# Edit the VM and adjust spec.template.spec.domain.resources.{requests,limits}.memory
kubectl edit vm <vm-name> -n <namespace>
If a restart is required to apply the change, gracefully stop the VM when appropriate:
# Stop the VM (you can start it again from your usual workflow)
virtctl stop <vm-name> -n <namespace>
Start the VM after updating the memory:
virtctl start <vm-name> -n <namespace>
If you cannot resolve the issue, see the following resources: