Post Written by Ivan Dabić
Last modified on June 26th, 2020 at 1:31 pm
top, iotop, iostat and many other commands are used on daily basis to help sysadmins keep the system up and running at all times. It seemed appropriate to bring up the top command overview closer for it to serve as a cheat sheet for most juniors in this industry. Top is used to show the system health, in a way, by displaying key metrics like CPU load, Memory usage, processes, etc. Going from top to bottom I wanted to describe each line in top response and how to interpret each parameter.
Breaking down the logical segments we see General, Tasks, CPU, Memory and Processes and below are details for each:
This line shows:
Current time
uptime for this machine/system
Logged in users
Load average showing three values - one minute load, 5 minute load and 15 minute load
Tasks segment is showing numbers for currently processed tasks/processes on the system:
Total number of tasks including all states (running, sleeping, stopped and zombie processes) - in this case, 102 total
Number of running tasks - in this case, 2 running
Number of sleeping tasks - in this case, 100 sleeping
Number of stopped tasks - in this case, 0 stopped
Number of inactive or zombie tasks - in this case, 0 zombie
CPU segment describes the CPU "health" with following details:
A percentage showing CPU usage for user processes - in this case, 0.0 us
A percentage showing CPU usage for system processes - in this case, 0.3 sy
This value is showing percentage for processes with upgraded priority (this value is called nice) - in this case, 0.0 ni
A percentage showing CPU availability - in this case, 99.7 id
Percentage of CPU processes waiting for I/O tasks to complete - in this case 0.0 wa
Percentage of CPU processes serving hardware interrupts - in this case, 0.0 hi
Percentage of CPU time used by processes serving software interrupts - in this case, 0.0 si
The last one is the total amount of CPU percentage taken (or stolen - "st") by the hypervisor for another process or processes outside this virtual machine. If there is no virtualization (bare metal server) this amount will always be 0. On virtualized environments, we can see either 0 or amount of CPU actually delegated to some other tasks in this case 0.0 st
Memory segment prints out basic information in regards to RAM usage:
Total RAM size - in this case 1017220KB (or 1GB)
KB of RAM available (out of total size) - in this case, 69376
Amount of RAM used (out of total size) - in this case, 678044
Amount of RAM used for buffers and cache (page cache) - in this case, 269800
Swap segment displays obvious swap usage details such as:
The total amount of swap memory available - in this case, 0 total
Total free swap memory out of total size - in this case, 0 free
Used swap memory by tasks or processes - in this case, 0 used
Since on this server we don't have swap enabled (obviously) there is only number that signifies allocation size for swap we could choose to use if we enabled swap - in this case 144672 avail Mem
Processes segment lists processes by CPU usage (unless changed to another order parameter) with columns as follows:
PID is the process ID assigned to it after the fork - in this case, 27013
USER represents user scope under which this process was created - in this case, root
PR represents the process priority - in this case, 20
NI is the nice value of the process in question - in this case, 0 (range goes from -20 to 19)
VIRT represents the amount of virtual memory used by process - in this case, 157692KB
RES represents the amount of physical memory used by this process - in this case, 2256KB
SHR represents the amount of shared memory used by the process in question - in this case, 1576KB
S represents process status where flags available are S for Sleep, Z for Zombie and R for Running - in this case, R
%CPU represents percentage CPU has been engaged in this process - in this case, 0.3
%MEM represents the percentage of RAM used by this process - in this case, 0.2
TIME+ represents time this process has been active for (and this is the time process spent in R - running - status) - in this case 0:00.02 (2 seconds)
COMMAND represents the command ran for this process to be created or, it can be looked at as the name of the process
Contact Us
Fill out the enquiry form and we'll get back to you as soon as possible.
GDPR Privacy Contact Form
Fill out the enquiry form and we'll get back to you as soon as possible.
This website uses cookies to function properly . Optionally, you can set Google Analytics cookies to help us to improve our website.