Linux vmstat command used to check memory usage on linux .
# vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 4 0 42116 15386132 1304192 18180176 0 0 4 22 0 1 2 1 97 0 0
r column
r: The number of processes waiting for run time or placed in run queue or are already executing (running)
Whenever the value of the ‘ r ‘ exceeds the number of CPUs on the server, tasks are forced to wait for execution.
To find number of CPU cores on a server, run
cat /proc/cpuinfo | grep processor | wc -l
b column
b: The number of processes in uninterruptible sleep. (b=blocked queue, waiting for resource (e.g. filesystem I/O blocked, inode lock))
si/so column
This is for data written to swap.
if server is using swap, this is because too many process running or server under load. This is not good, on a healthy server, value of this column should be 0.
bi/bo column
This is Block Input/Output, that is data written and read from Hard disk.
The bi (bytes in) and bo (bytes out) column show disk I/O (including swapping memory to/from disk) on your server.
CPU Usage: (us sy id)
The us (user), sy (system) and id (idle) show the amount of CPU your server is using. The higher the idle value, the better.