Show per-service resource usage with systemd-cgtop
Find which systemd service eats CPU, memory or I/O, grouped by control group instead of raw process.
01Command
$ systemd-cgtop --order=cpu --depth=202What it does
top shows individual processes, but a browser spawns dozens of them and a service may fork workers. systemd-cgtop aggregates usage by control group, so all processes of docker.service or user.slice appear as one line. Press m or i to sort by memory or I/O, and 1 to see individual tasks instead of groups.
03Risk
04Undo
✓No undo needed — this command does not change persistent state.
05Sources
- systemd-cgtop(1) — Debian bookwormEvidence: Same synopsis systemd-cgtop [OPTIONS...]; describes ordering by CPU, memory or I/O load and the --depth= cut-off.
- systemd-cgtop(1) - Linux manual pageEvidence: Documents systemd-cgtop [OPTIONS...] with options --order=, --depth=, -P, -m showing task/CPU/memory/I/O usage per control group.
Last verified: 2026-09-19 · Category: System & Settings
06Related solutions
Use free -h to see used, free, and available memory plus swap in GB/MiB instead of raw kilobytes.
timedatectl lists, sets, and verifies the system timezone and NTP sync status on systemd distributions.
hostnamectl sets the static, transient, and pretty hostname in one step on systemd distros, no reboot required.