dstat is a “one-line dashboard” for system statistics. It combines the best parts of tools like vmstat, iostat, netstat, and ifstat into a single, continuously updating view. It's great for spotting CPU, disk, and network bottlenecks at the same time.
Package name is usually dstat (many distros ship it; some replaced it with dool).
# Debian/Ubuntu sudo apt update sudo apt install dstat # RHEL/CentOS/Fedora (varies by version) sudo dnf install dstat # or: sudo yum install dstat # Arch sudo pacman -S dstat
Start it with: dstat. If you want a friendly “all-in-one” view, try: dstat -cdngy (CPU + disk + net + paging + system).
dstat prints groups of columns. You pick which groups to show with flags (or use a preset like -a for “all”).
The magic is watching two things spike together (e.g., disk write + CPU iowait; or net recv + softirq CPU).
1) Basic live view
liveDefault view updates every second.
dstat
Use when: you want a quick “pulse check” while something runs.
2) “All” stats at once
wideShows many common groups together (may be wide).
dstat -a
Use when: you’re not sure which subsystem is the bottleneck yet.
3) CPU + disk + network + paging + system
triageA popular “incident” combo.
dstat -cdngy
Use when: you want the most common correlation view without overwhelming output.
4) Show per-CPU utilization
detailBreak out CPU stats by core (can be wide).
dstat -C total,0,1
Use when: one core is pegged (single-thread hot spot) and you want to see it clearly.
5) Per-disk I/O
storageShow activity per block device.
dstat -dD total,sda,nvme0n1
Use when: you have multiple disks and need to know which one is hot.
6) Per-interface network traffic
networkSee send/recv by interface.
dstat -nN total,eth0,wlan0
Use when: you suspect one NIC is saturated or the wrong interface is being used.
7) Top CPU consumers (process stats)
topShow the most CPU-hungry processes each interval.
dstat --top-cpu
Use when: CPU is high and you want the “who” without switching tools.
8) Top I/O consumers
topShow the processes doing the most disk I/O.
dstat --top-io
Use when: the system feels “stuck” and disk wait is climbing.
9) Log to CSV for later graphing
logWrite stats to a CSV file (handy for spreadsheets or scripts).
dstat -cdngy --output /tmp/dstat.csv 5 120
Use when: you want to capture 10 minutes of data at 5-second intervals.
10) Run for a fixed number of samples
batchInterval then count: SECONDS COUNT.
dstat 2 30
Use when: you want a quick 60-second capture at 2-second resolution.