System Administration

Essential System Tools: gtop – System monitoring dashboard for the terminal

This is the second in our series of articles highlighting essential system tools. These are small utilities, useful for system administrators as well as regular users of Linux based systems. The series examines both graphical and text based open source utilities. For details of all tools in this series, please check the table in the summary section.

We previously covered ps_mem, a really useful memory utility. This time, another console utility is under the spotlight. It’s called gtop.

gtop is an open source system monitoring utility written in JavaScript. Our Group Test covered alternatives to top. In particular, htop is a remarkable system monitoring tool. gtop receives far less exposure than htop, but deserves more publicity. Why? Let’s see.

Installation

Installing gtop is trivial; clone the project’s GitHub repository, and install the software using npm, the package manager for JavaScript.

git clone https://github.com/aksakalli/gtop.git
cd gtop
sudo npm install gtop -g

Voilà! gtop is installed.

Snaps are universal software packages. If you prefer using snaps, there’s a snap available which can be installed at a shell:

sudo snap install --edge gtop --devmode

You’ll need to append the -devmode flag as the publisher considers the snap is meant for development or testing only.

In operation

Unusually for text-based software, gtop doesn’t have any command-line options.

Here’s example output of gtop.

gtop

As you can see, there are sections illustrating CPU usage history, memory and swap history, network history, as well as a process table showing running processes detailing CPU and RAM usage for each process.

The process table can be sorted by process, CPU usage, or memory usage. In the example above, the process table is sorted by CPU usage.

What sets gtop apart from htop and top. Well, you’ll notice the useful graph history of your CPU usage, memory and swap. At a glance, you receive practical information about what’s been happening on your system, rather than a mere current snapshot. If you like dashboards, you’ll like gtop.

gtop is written in JavaScript and needs Node.js, a JavaScript runtime built on Chrome’s V8 JavaScript engine. Node.js really shines in building fast, scalable network applications, but what about small system utilities? It’s true gtop comes with a significant memory overhead. This is illustrated using the wonderful ps_mem utility.

gtop-memory-

Look at the amount of memory consumed by top and htop when compared to gtop (gtop is the node line). gtop uses over 100MB of RAM. And it guzzles cpu cycles on machines with feeble processors, such as popular single-board computers.

Summary

If your system has a frugal dollop of RAM or a feeble CPU, I’d recommend htop rather than gtop. gtop is also missing some useful functionality such as killing, filtering and searching processes, and there’s no configuration options. But the software offers a very different perspective to the state of a system, and complements htop rather splendidly.

Website: github.com/aksakalli/gtop
Support: Developer’s Other Projects
Developer: Can Güney Aksakalli
License: MIT License

gtop is written in JavaScript. Learn JavaScript with our recommended free books and free tutorials.


All the essential tools in this series:

Essential System Tools
AlacrittyInnovative, hardware-accelerated terminal emulator
BleachBitSystem cleaning software. Quick and easy way to service your computer
btop++Monitor usage and stats for CPU, memory, disks, network and processes
catfishVersatile file searching software
ClonezillaPartition and disk cloning software
CPU-XSystem profiler with both a GUI and text-based
CzkawkaFind duplicate files, big files, empty files, similar images, and much more
ddrescueData recovery tool, retrieving data from failing drives as safely as possible
dustMore intuitive version of du written in Rust
f3Detect and fix counterfeit flash storage
Fail2banBan hosts that cause multiple authentication errors
fdupesFind or delete duplicate files
FirejailRestrict the running environment of untrusted applications
GlancesCross-platform system monitoring tool written in Python
GPartedResize, copy, and move partitions without data
GreenWithEnvyNVIDIA graphics card utility
gtopSystem monitoring dashboard
gWakeOnLANTurn machines on through Wake On LAN
hyperfineCommand-line benchmarking tool
inxiCommand-line system information tool that's a time-saver for everyone
journalctlQuery and display messages from the journal
kmonManage Linux kernel modules with this text-based tool
KrusaderAdvanced, twin-panel (commander-style) file manager
NeofetchSystem information tool written in Bash
NmapNetwork security tool that builds a "map" of the network
nmonSystems administrator, tuner, and benchmark tool
nnnPortable terminal file manager that's amazingly frugal
petSimple command-line snippet manager
PingnooGraphical representation for traceroute and ping output
ps_memAccurate reporting of software's memory consumption
TimeshiftSimilar to Windows' System Restore functionality, Time Machine Tool in Mac OS
QDirStatQt-based directory statistics
QJournalctlGraphical User Interface for systemd’s journalctl
TLPMust-have tool for anyone running Linux on a notebook
UnisonConsole and graphical file synchronization software
VeraCryptStrong disk encryption software
VentoyCreate bootable USB drive for ISO/WIM/IMG/VHD(x)/EFI files
Share this article

One comment

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.