Emergency server help: get in touch

htop vs btop vs Glances vs atop vs top: Which Process Monitor for a Server? (Measured)

We installed htop, btop, Glances, atop and top on the same AlmaLinux 9.8 cPanel server and measured what each one costs and what it can show: history, web dashboard and API, per-process disk and network, and which version your distribution ships.

Published 5 min read

Short answer: keep htop as the everyday “what is running now” tool. Install atop with logging switched on, because it is the only one here that records history, so you can find what caused a load spike after the fact. Use Glances when you want a browser dashboard or a JSON API without setting up a monitoring system. btop is the nicest to look at and light on CPU, but it adds nothing a server admin cannot get from htop and atop. top is always there when nothing can be installed.

Applies to AlmaLinux 9.8 (EPEL): htop 3.3.0, btop 1.4.7, Glances 3.4.0.5, atop 2.7.1, procps-ng top 3.3.17; Debian 12: htop 3.2.2, btop 1.2.13, Glances 3.3.1, atop 2.8.1; lab test 11 Oct 2026

We installed all five on the same server, our cPanel lab (AlmaLinux 9.8, 4 cores, 3.8 GB RAM), on 11 October 2026. We ran each one in a 200×50 terminal for 40 seconds and read its memory (RSS) and CPU with ps three times.

Measured on the same server

Tool (version)Memory (RSS)CPU while openDefault refresh
top (procps-ng 3.3.17)4.3 MB0.2%3 s
htop 3.3.05.1 MBabout 2%1.5 s
btop 1.4.76.9 MB0.2%2 s
Glances 3.4.0.5 (Python)34 MBabout 5%2 s
atop 2.7.1228 MB shown, 5 MB its own0.5%10 s

CPU is a percentage of one core. atop’s figure looks alarming, but /proc/PID/status showed the same 228 MB as VmLck and only 5.4 MB as RssAnon: atop locks its pages in RAM so it keeps working when memory runs out. None of these tools is heavy enough to matter on a real server, except Glances on very small VPSs.

What each one can do

tophtopbtopGlancesatop
Installed by defaultYesOften (not always)NoNoNo
Mouse, colours, tree viewBasicYesYes, with graphsYesText only
Filter and kill from the screenYesYesYesYes (k kills)Yes
History (what happened earlier)NoNoNoOnly by exporting to a databaseYes, built-in log files
Per-process disk I/ONoYes (columns, as root)YesYesYes
Per-process networkNoNoNoNoOnly with the netatop kernel module
Web dashboardNoNoNoYes (glances -w)No
JSON/REST APINoNoNoYesParseable text output (-P)
Containers (Docker/Podman)NoShows processesShows processesYes, per containerShows processes
GPUNoNoYesYesYes (with atopgpud)
LicenceGPLGPLv2+Apache-2.0LGPLv3GPLv2

Versions you get from the package manager

ToolAlmaLinux 9 (EPEL)Debian 12Newest upstream
htop3.3.03.2.23.5 (May 2026)
btop1.4.71.2.131.4.x
Glances3.4.0.53.3.14.x (web UI, REST API, MCP server)
atop2.7.12.8.12.x

We read the AlmaLinux and Debian versions from dnf repoquery and apt-cache policy on our labs. The distribution packages are older, but they get security updates with the rest of the system. That is usually the better trade on a production server than installing with pip or from a release tarball.

htop: the everyday tool

htop is fast and small, and every admin knows it. It has filter (F4), tree (F5), per-user view (u), and kill and renice from the screen. --readonly lets you give someone a safe look. See htop explained for every column and key.

atop: the one with history

atop records every process at a set interval in daily files. In our test it named a CPU burner minute by minute after the burner had already finished, which sar’s 10-minute averages could not do. The catch is that on AlmaLinux 9 the logging service is installed disabled, so turn it on: find past high load with atop and sar.

Glances: a dashboard and API without a monitoring stack

glances -w -B 127.0.0.1            # web UI on http://127.0.0.1:61208/ (Glances 3.4)
curl -s http://127.0.0.1:61208/api/3/load
{"min1":0.49,"min5":0.29,"min15":0.16,"cpucore":4}
glances --stdout cpu.total,mem.percent,load.min1 -t 2

The web server answered with HTTP 200 and the API returned JSON on our lab. Glances 3.4 uses API version 3; Glances 4 moved to /api/4. The web UI has no login by default. Bind it to 127.0.0.1 and open it through an SSH tunnel (ssh -L 61208:127.0.0.1:61208 root@server), or set a password with --password. Never leave port 61208 open to the internet. The web mode needs python3-bottle; on our lab EPEL installed it together with Glances.

btop: good looking, not essential

btop draws graphs for CPU, memory, disks and network in the terminal, supports the mouse and was light on CPU in our test. On a server it overlaps with htop. Choose it if you prefer it, but it is not a reason to install something extra. Over a slow SSH link or a basic console, btop -t (tty mode) uses simpler symbols.

top: when you cannot install anything

top -c                 # full command lines
top -o %MEM            # sort by memory
top -u site1           # one user
top -b -n 1 | head -20 # one snapshot as text, for scripts and tickets

top -b -n 1 is useful for pasting into a ticket or saving from cron. Inside top, 1 shows each core, M and P sort by memory and CPU, and k kills.

What we recommend for a hosting server

  • Every server: htop, plus atop with logging enabled, plus sysstat (sar), which cPanel servers usually already have.
  • Want a quick browser view of one or two servers: Glances on 127.0.0.1 behind an SSH tunnel.
  • Several servers, alerts, history graphs: use a monitoring system instead: Netdata, Zabbix or a lightweight hub-and-agent tool. That is a separate decision from the process viewer.
  • Disk or network per process: add iotop-c (disk) and nethogs (network); none of the five does network per process out of the box.

Frequently asked questions

Is btop better than htop?

It looks better and has graphs, and in our test it used slightly more memory (6.9 MB vs 5.1 MB) and less CPU. For server work they do the same job; htop is more common and already installed on many servers.

Which Linux process monitor keeps history?

atop. Its logging service writes snapshots of every process to /var/log/atop, which you read later with atop -r or atopsar. htop, btop, top and Glances only show the present unless you export Glances data to a database.

Does Glances have a web interface?

Yes. glances -w starts a web server on port 61208 with a dashboard and a REST API. It has no password by default, so bind it to 127.0.0.1 and use an SSH tunnel, or set --password.

Why does atop use so much memory?

It locks its pages into RAM so it keeps running under memory pressure. On our lab, ps showed 228 MB but only 5 MB was its own memory.

Which process monitor uses the least resources?

top and htop, at about 4 to 5 MB of memory in our test. Glances, written in Python, used about 34 MB and the most CPU.

Reading a lot of our guides? Go ad-free with srvScripts Pro for $6 a month. It also pays for new guides. Cancel any time.

Share this guide

Free website test

Is your website set up right?

Check SSL, security headers, redirects, robots.txt, sitemap, llms.txt and security.txt in one test. It takes about 30 seconds.