Monitor system resources
System administrators need to monitor their server to ensure proper functioning. The practice enables administrators to detect possible issues in advance and recover the system, before it causes any trouble.
There are plenty of commands on Linux to monitor different system resources like cpu usage, memory usage, network, disk usage and so on. Popular ones are top, htop, iostat, nethogs etc.
In this post we are talking about simple command line tools that can monitor multiple system resources like cpu, memory, network, disk, processes etc all together in a real-time and interactive manner.
These tools present a whole lot of statistical information on a single screen that is constantly updated.
The Top command is the most popular tool to check the cpu and memory utilization processwise. It shows a sorted list of processes with the most resource intensive processes on the top.
Along with the process list it also shows cpu and memory usage.
Press 'h' while top is running, to display the help page.
Press 'q' to quit.
This is your all time favorite tool. Similar to top, but much refined and carries a load of extra features along with a very good looking user interface.
It is not installed by default, but is available in the default repositories of distros like Ubuntu, Debian and Fedora.
CentOS users need to use an additional repository like epel or rpmforge to install it.
Here are some shortcuts to configure htop output interactively.
M: Sort processes by memory usage P: Sort processes by processor usage ?: Access help k: Kill current/tagged process F2: Setup htop. You can choose display options here. /: Search processes
Refer to the man page to learn more about htop.
Atop is a tool to monitor system resources and processes. It shows the current usage levels of cpu, memory, disk and network along with a list of processes sorted by cpu usage in descending order. Similar to top and htop.
Nmon is another very easy to use tool to monitor cpu, memory, networ, disk usage and process list on a single screen.
Nmon works well as a reporting only tool but does not have any other feature or option to manage processes or modify the report display. It can save the statistics to a spreadsheet file.
Check out our previous post on Nmon.
Written in python, Glances is a reporting tool similar to Nmon that report statistics on cpu, memory, network, disk and processes. Apart from reporting the statistics, glances does not support any other feature or function.
Check our previous post on how to monitor system resources with Glances.
Press 'h' while glances is running to access the help page.
Saidar is the simplest of all tools. The output includes statistics on CPU, processes, load, memory, swap, network I/O, disk I/O, and file system information. The output does not mention the running processes at all.
Check our previous post on how to monitor system resources with saidar.
Those were some of the basic tools for monitoring system resources on Linux. They are very useful when you are working on a server and need to monitor its performance.
For example, if the cpu or memory usage is going unusually high, it could indicate a problem with some software or application that needs to be fixed.
Commands like top and htop display the process list along with how much memory and cpu each is using. You can terminate a particular process if needed.
For monitoring network usage, a different tool called nethogs can be used. Nethogs displays list of processes along with how much data each process is sending and receiving on the network.
If you need to monitor disk IO (read/write) done by each process on the system, use the iotop command. Iotop displays the process list along with how much data is being read and written by each process.
So if you come across any other similar tool then let us know in the comment box below.
Have a great day!