1. System Monitor
One of the simplest ways to look at your system resource usage is through the built-in GUI system monitor. Most Desktop Environments come with one, and they’re generally good for getting a decent look at your resource usage. Most of them have several tabs, much like the Windows Task Manager, and that can make each given view more simple and less overwhelming. However, if you’re the kind of person who wants to see everything on one screen, these generally aren’t for you. Also, they can tend to be inaccurate, so use them with some caution and verify your information.
2. Ytop
Top is a command-line tool for monitoring system resources and is pre-installed in almost every Linux distro. However, it is a very basic tool. Ytop is a program that is far superior to top. It has an excellent CPU graph at the top; an easy-to-read memory graph; reports filesystem usage, network usage, and CPU temperature; and moves a list of running processes to the very bottom so that it’s out of the way and doesn’t distract you. It refreshes quickly and makes it very easy to quickly glance at your system resource usage while staying out of your way. It’s also very light on resources itself, so it’s a great candidate for an older or weaker system that needs to be careful with how it allocates its energy. Overall, ytop is one of the best system monitors on the list, and I highly recommend giving it a try.
3. Cockpit
We’ve already written an article on how to manage your Linux system using Cockpit, but it’s such a great tool that it bears mentioning again. Cockpit is a great web-based tool for managing remote systems as well, but when used on a local system, it gives you a dead simple user interface for managing your systems. On the main Overview page there’s an option to view system resource usage graphs. The graphs are pretty simple, but there are so many options available to dive deeply into disk I/O, network usage, and more. It’s also useful for managing things like virtual machines and containers as well.
4. Netdata
Another web-based system monitor for Linux, Netdata is an incredible tool. This is easily the most granular of all the tools on the list, automatically pulling in information on hardware usage across the machine as well as per-core CPU usage graphs, network packet tracing separated by IPv4 vs. IPv6, and so much more. One of the great parts is that, aside from dependencies needed, it’s essentially one command to install. Additionally, it’s available to install as a container via Docker, so those who are interested are more than welcome to pull down the container and run it with a simple command. Netdata is an amazing tool that gives you very fine-tuned resource usage statistics with the option to set up alerts as well.
Honorable Mentions
These are great tools that didn’t quite make the list for one reason or another.
1. Htop
Htop is a tool that builds a little on top without making it too complicated. It’s become something of a standard in the community as a show of performance on a system.
2. BashTOP
BashTOP is quite similar to ytop, but there’s a pretty significant difference in terms of user experience. It has a particular look and feel to it, and overall I think ytop is a little more usable. However, the CPU usage reporting in BashTOP is really great, and I recommend it for that.
3. Glances
Glances is another tool that has a slightly complicated interface but gives a lot of great information on your system. It’s supposed to be everything “at a glance,” hence the name. It reports on usage simply, but this is the simplest tool to track network sessions (here it’s reporting on TCP connections), which can be useful, depending on your usage. Now that you know how to check system resource usage, make sure to check out our guides on how to find the cause of poor Linux system performance, how to improve Linux PC performance, and how to monitor your Nvidia GPU in Linux.