How to Monitor System Resources and Process Trees in Linux Using btop

Monitoring system health on Linux servers and developer workstations has traditionally relied on utilities like top and htop. While functional, legacy tools lack granular per-core CPU frequency scaling graphs, modern GPU sensor integration, automated disk I/O metrics, and customisable responsive layouts capable of scaling cleanly across terminal window resizes.

The btop utility (the modern C++ reimplementation of bashtop and bpytop) delivers a resource-efficient, visually rich terminal monitor. Featuring full mouse click support, responsive UI panels, detailed per-process memory maps, live network bandwidth graphs, and GPU monitoring for NVIDIA, AMD, and Intel hardware, btop provides instant diagnostic visibility directly within the Linux terminal.

Installing btop on Linux Distributions

Because btop is compiled in native C++, it offers low CPU overhead and is packaged across modern repositories:

  1. On Ubuntu (22.04 LTS and later) and Debian:
sudo apt update && sudo apt install -y btop
  1. On Fedora, RHEL 9, and Rocky Linux:
sudo dnf install -y btop
  1. On Arch Linux and Manjaro:
sudo pacman -S btop
  1. Via Snap on older distributions:
sudo snap install btop

Launching and Navigating the btop Interface

To start monitoring your system, execute the command:

btop

The interface renders four primary modular panels:

  • CPU Box: Shows per-core clock frequencies, temperatures, load percentages, and real-time history graphs.
  • Memory Box: Displays RAM utilisation, cached buffers, available free memory, and swap space consumption.
  • Disks Box: Shows filesystem mount points, total versus used gigabytes, and real-time read/write I/O velocity.
  • Processes Box: Lists active processes with PID, user, CPU usage, memory consumption, and thread count.

Using Mouse Navigation and Keyboard Controls

Unlike traditional CLI tools, btop natively supports mouse interactions inside compatible terminal emulators:

  • Clicking Panels: Click any header or button to trigger actions directly.
  • Scrolling: Scroll the mouse wheel inside the process list to navigate through hundreds of running threads.
  • h Key: Displays the comprehensive built-in help and keybinding reference.
  • m Key: Toggles the display mode of the CPU box between detailed graphs and compact mini-bars.
  • p Key: Toggles process tree grouping, organising child processes beneath their parent daemons.
  • q Key: Quits btop.

Filtering, Searching, and Terminating Processes

To locate rogue processes consuming excessive CPU or RAM:

  1. Press f (or click the Filter button at the top of the process list).
  2. Type a process name or keyword (for example, nginx or python).
  3. The process list updates instantly to show only matching entries.
  4. Use the arrow keys to select a frozen or unresponsive process.
  5. Press t to send a gentle termination signal (SIGTERM), or press k to force-kill the process immediately (SIGKILL).

Customising Themes and Low-Overhead Operation

To adjust visual styling and performance parameters:

  1. Press Esc to open the master Options menu.
  2. Navigate to Options using the arrow keys and press Enter.
  3. Browse themes (such as nord, gruvbox, tokyo-night, or monokai).
  4. Adjust Update timer: Set the polling interval from 100 ms up to 2,000 ms to reduce CPU cycles on resource-constrained virtual machines.
  5. Press Esc again to save parameters and resume real-time monitoring.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.