Watch System Resources Live with btop
btop is the terminal monitor you reach for when a box feels slow and top's tiny numbers are not cutting it. In about ten minutes you will launch it, work out whether CPU, memory, storage, network or a specific process is the bottleneck, and leave without changing system state. The installed package needs no elevated privileges.
The route
Jump straight to the step you need, or tick off Done means at the end.
Before you start
- Use a reasonably wide terminal window. btop is an interactive terminal interface, so a graphical terminal or a real TTY beats a narrow log viewer.
- Prefer a UTF-8 locale. The project recommends a font with the relevant box-drawing and braille characters, and a terminal that supports 24-bit colour. If those are unavailable, btop has lower-colour and TTY modes.
Check what is actually installed:
$ command -v btop
/usr/bin/btop
$ btop --version
btop version: 1.3.0
Checkpoint
The executable above is version 1.3.0 on this system. The installed btop(1) manpage is labelled 1.1.3 and does not list every option in the newer executable, so treat your own btop --help as the final word for version-specific options.
1. Start the monitor
Launch it as your normal user:
$ btop
The screen presents live statistics for the processor, memory, disks, network and processes. Select a process to inspect it, scroll the process list, and use the highlighted controls or mouse buttons the interface shows. The process view can be filtered, reordered and switched to a tree view; those actions only change btop's display until you choose an action that sends a signal.
Tip
Look for a sustained high value rather than a single spike. CPU activity is not automatically a memory problem, and a full filesystem is different from a busy disk. Read the relevant graph and its units before deciding what to investigate.
2. Make the display fit the terminal
If colours or graph characters look wrong, start with the compatibility modes:
$ btop -lc
$ btop --tty_on
$ btop --tty_off
-lcconverts truecolour output to 256 colours.--tty_onforces a 16-colour, TTY-friendly display.--tty_offforces that mode off.
These flags affect presentation, not the measurements. If btop refuses to start because it cannot detect UTF-8, check the locale first:
$ locale | grep '^LANG='
Only override detection once you have confirmed the terminal can render the required characters:
$ btop --utf-force
A forced start can produce unreadable graphs when the font is missing the required glyphs. Going back to --tty_on or fixing the terminal locale is the recovery.
3. Start with a repeatable preset
btop accepts an integer preset from 0 to 9, useful when you regularly need a known starting layout:
$ btop --preset 2
The preset chooses the initial view; it does not create a service, edit a system configuration or save a monitoring session. If the layout is not useful, exit and try another number. Do not infer that preset 2 is better than preset 1: the useful choice depends on what you need to see first.
The interface also exposes configuration options and custom presets through its menu. Check that the values and panels suit the terminal where you will use them before saving a layout, and keep plain btop available as the simplest fallback.
4. Inspect a suspicious process safely
Warning
When a process looks responsible, select it and inspect its detailed statistics before taking action. Confirm its command, resource use and whether it is expected. Sending a signal can stop work, interrupt a service or lose unsaved data, so treat any kill or signal control as a destructive action: identify the process twice and prefer the application's own shutdown procedure.
The command-line -p option is for a preset, not a process ID. There is no verified process-ID launch option in the installed help, so use the process list inside btop. Verify a candidate's identity outside the monitor first:
$ ps -p 12345 -o pid=,comm=,args=
Replace 12345 with a real process ID. The older local manpage documents -p, --preset <id>; the installed 1.3.0 help adds an update-rate option but still does not document a process-ID selector.
5. Enable diagnostics only when needed
For a display or collection problem, run debug mode and watch the timing information:
$ btop --debug
Debug mode shows microsecond timers for information collection and screen drawing, and raises the log level to debug. It is noisier, not a performance improvement. Stop it with the normal interactive exit control, then return to plain btop.
Common traps
- One busy core looks like a busy machine. A high process percentage may describe one CPU core rather than the whole system. Compare it with the processor panel and the number of logical CPUs.
- Rendering problems mimic broken measurements. Terminal resizing, missing fonts and non-UTF-8 locales can look like a real fault. Test a compatibility mode before changing the system.
- btop is a live UI, not a logger. Capturing its screen as ordinary text will not give you a useful report.
- Root is rarely needed. Do not run btop as root merely to observe ordinary process and system statistics; elevate only when a specific permission error proves it necessary.
Done means
- Matched
btop --versionandbtop --helpto the executable you are using. - Identified which resource panel supports your diagnosis.
- Have a fallback for terminal rendering:
-lcor--tty_on. - Verified a process before sending any signal.
- Returned to the default display with plain
btop.