Loadavg

From OpenVZ Virtuozzo Containers Wiki
Jump to: navigation, search

Load average is a traditional UNIX metric. Its value is the average number of processes that are either in a runnable or uninterruptable state during a particular time period.

A process in a runnable state (shown with status of R in top utility) is either using the CPU or waiting to use the CPU. A process in uninterruptable state (shown with status of D in top utility) is waiting for some I/O access, eg waiting for disk.

The averages are taken over the three time intervals: 1, 5 and 15 minutes. Load averages are not normalized for the number of CPUs in a system, so a load average of 1 means a single CPU system is loaded all the time while on a 4 CPU system it means it was idle 75% of the time.

How to get container's load average

For a single specific container:

vzctl exec $CTID cat /proc/loadavg

For all running (or some specified) containers

vzlist -o ctid,laverage [CTID ...]

See vzlist(8) for details on vzlist.

Reasons for high load average

Two reasons for high load average is lack of CPU time or disk I/O bandwidth. For container, it can also be because of its limits, such as the CPU limit or low disk I/O priority.

For VSwap-enabled containers, one case is the lack of RAM (physpages). Whenever a RAM shortage occurs, system will start doing virtual swapping, delaying a given container to emulate the effect of a real swap-out.