How to monitor VPS CPU load

CPU usage value shows how much server CPU time was consumed by this process within alotted period.

Let's say you have 100 processes running, meaning CPU should split its core time between all these processes within a period of time (1 second, for example). If we assume all processes receive equivalent parts of core time, 1 process should receive 1/100 second during each second (0.01) and use it to work on its inner queue of tasks.

Thus said, if this operation takes 0.005 seconds, it will be shown as 50% load. If completion  of certain process takes 0.03 seconds, it will be shown as 300% load. However, as other processes usually operate faster, average picture will be quite appropriate.

One of the most important parameters is "load average" for 1, 5 and 15 minutes respectively. A normal load for a sible CPU core would be 1.00, meaning this CPU's core time is used 100% (don't mistake it with CPU load). Thus said, load average for quad-core CPU would be 4.00. Different systems make different calcualtions of average load, accceptable values for average user are 10-15 per minute.

Sometimes it is possible to notice CPU overload visually - if CPU is under heavy load, even letters are typed with delay in SSH session.

Another important parameter is RAM usage. These are monitoring results for zKVM VPS plan actively using 364 of its 512 Mb of RAM:

root@user ~]# free -m

total   used free shared buffers cached

Mem: 1001   994   7      0        4       643

-/+ buffers/cache: 346 655

Swap: 2047 0 2047

[root@user ~]#

You should keep an eye to notice if "used" value becomes bigger than the amount of allocated RAM, as it will result in swap memory usage and slowinh down the VPS.
Our current technologies of SSD-powered caching allow greatly reducing swap usage, as more than 50% of read hits is done from SSD cache.

Read also