Versatile tool for generating system resource statistics.


Display CPU, disk, net, paging and system statistics

$ dstat

Display statistics every 5 seconds and 4 updates only
$ dstat [5] [4]

Display CPU and memory statistics only
$ dstat --cpu --mem

List all available dstat plugins
$ dstat --list

Display the process using the most memory and most CPU
$ dstat --top-mem --top-cpu

Display battery percentage and remaining battery time
$ dstat --battery --battery-remain


dstat [-afv] [options..] [delay [count]]


Dstat is a versatile replacement for vmstat, iostat and ifstat. Dstat overcomes some of the limitations and adds some extra features.

Dstat allows you to view all of your system resources instantly, you can eg. compare disk usage in combination with interrupts from your IDE controller, or compare the network bandwidth numbers directly with the disk throughput (in the same interval).

Dstat also cleverly gives you the most detailed information in columns and clearly indicates in what magnitude and unit the output is displayed. Less confusion, less mistakes, more efficient.

Dstat is unique in letting you aggregate block device throughput for a certain diskset or network bandwidth for a group of interfaces, ie. you can see the throughput for all the block devices that make up a single filesystem or storage system.

Dstat allows its data to be directly written to a CSV file to be imported and used by OpenOffice, Gnumeric or Excel to create graphs.


Users of Sleuthkit might find Sleuthkit’s dstat being renamed to datastat to avoid a name conflict. See Debian bug #283709 for more information.


-c, --cpu

enable cpu stats (system, user, idle, wait), for more CPU related stats also see --cpu-adv and --cpu-use

-C 0,3,total

include cpu0, cpu3 and total (when using -c/--cpu); use all to show all CPUs

-d, --disk

enable disk stats (read, write), for more disk related stats look into the other --disk plugins

-D total,hda

include total and hda (when using -d/--disk)

-g, --page

enable page stats (page in, page out)

-i, --int

enable interrupt stats

-I 5,10

include interrupt 5 and 10 (when using -i/--int)

-l, --load

enable load average stats (1 min, 5 mins, 15mins)

-m, --mem

enable memory stats (used, buffers, cache, free); for more memory related stats also try --mem-adv and --swap

-n, --net

enable network stats (receive, send)

-N eth1,total

include eth1 and total (when using -n/--net)

-p, --proc

enable process stats (runnable, uninterruptible, new)

-r, --io

enable I/O request stats (read, write requests)

-s, --swap

enable swap stats (used, free)

-S swap1,total

include swap1 and total (when using -s/--swap)

-t, --time

enable time/date output

-T, --epoch

enable time counter (seconds since epoch)

-y, --sys

enable system stats (interrupts, context switches)


enable aio stats (asynchronous I/O)


enable advanced cpu stats


enable only cpu usage stats

--fs, --filesystem

enable filesystem stats (open files, inodes)


enable ipc stats (message queue, semaphores, shared memory)


enable file lock stats (posix, flock, read, write)


enable advanced memory stats


enable raw stats (raw sockets)


enable socket stats (total, tcp, udp, raw, ip-fragments)


enable tcp stats (listen, established, syn, time_wait, close)


enable udp stats (listen, active)


enable unix stats (datagram, stream, listen, active)


enable vm stats (hard pagefaults, soft pagefaults, allocated, free)


enable advance vm stats (steal, scanK, scanD, pgoru, astll)


enable zoneinfo stats (d32F, d32H, normF, normH)


enable (external) plugins by plugin name, see PLUGINS for options

Possible internal stats are

aio, cpu, cpu24, cpu-adv, cpu-use, disk, disk24, disk24-old, epoch, fs, int, int24, io, ipc, load, lock, mem, mem-adv, net, page, page24, proc, raw, socket, swap, swap-old, sys, tcp, time, udp, unix, vm, vm-adv, zones


list the internal and external plugin names

-a, --all

equals -cdngy (default)

-f, --full

expand -C, -D, -I, -N and -S discovery lists

-v, --vmstat

equals -pmgdsc -D total


force bits for values expressed in bytes


force float values on screen (mutual exclusive with --integer)


force integer values on screen (mutual exclusive with --float)

--bw, --blackonwhite

change colors for white background terminal


disable colors


disable repetitive headers


disable intermediate updates when delay > 1

--output file

write CSV output to file


show profiling statistics when exiting dstat


While anyone can create their own dstat plugins (and contribute them) dstat ships with a number of plugins already that extend its capabilities greatly. Here is an overview of the plugins dstat ships with:


battery in percentage (needs ACPI)


battery remaining in hours, minutes (needs ACPI)


CPU frequency in percentage (needs ACPI)


number of dbus connections (needs python-dbus)


average queue length of the requests that were issued to the device


average size (in sectors) of the requests that were issued to the device


average service time (in milliseconds) for I/O requests that were issued to the device


number of transfers per second that were issued to the device


percentage of CPU time during which I/O requests were issued to the device (bandwidth utilization for the device)


average time (in milliseconds) for I/O requests issued to the device to be served


show dstat cputime consumption and latency


show dstat advanced cpu usage


show dstat context switches


show dstat advanced memory usage


fan speed (needs ACPI)


per filesystem disk usage


GPFS read/write I/O (needs mmpmon)


GPFS filesystem operations (needs mmpmon)


Hello world example dstat plugin


show innodb buffer stats


show innodb I/O stats


show innodb operations counters


show lustre I/O throughput


show software raid (md) progress and speed


show the number of hits and misses from memcache


show the MySQL5 command stats


show the MySQL5 connection stats


show the MySQL5 innodb stats


show the MySQL5 I/O stats


show the MySQL5 keys stats


show the MySQL I/O stats


show the MySQL keys stats


show the number of packets received and transmitted


show NFS v3 client operations


show extended NFS v3 client operations


show NFS v3 server operations


show extended NFS v3 server operations


show extended NFS v4 server operations


show NFS v4 stats


show NTP time from an NTP server


show postfix queue sizes (needs postfix)


show power usage


show total number of processes


show qmail queue sizes (needs qmail)

--redis: show redis stats


show RPC client calls stats


show RPC server calls stats


show sendmail queue size (needs sendmail)


show CPU stats using SNMP from DSTAT_SNMPSERVER


show load stats using SNMP from DSTAT_SNMPSERVER


show memory stats using SNMP from DSTAT_SNMPSERVER


show network stats using SNMP from DSTAT_SNMPSERVER

--snmp-net-err: show network errors using SNMP from DSTAT_SNMPSERVER


show system stats (interrupts and context switches) using SNMP from DSTAT_SNMPSERVER


show number of ticks per second


show squid usage statistics


show test plugin output


system temperature sensors


show most expensive block I/O process


show most expensive block I/O process (incl. pid and other stats)


show process waiting for child the most


show most expensive CPU process


show most expensive CPU process (incl. pid and other stats)


show process using the most CPU time (in ms)


show process with the highest average timeslice (in ms)


show most frequent interrupt


show most expensive I/O process


show most expensive I/O process (incl. pid and other stats)


show process with highest total latency (in ms)


show process with the highest average latency (in ms)


show process using the most memory


show process that will be killed by OOM the first


show number of utmp connections (needs python-utmp)


show VMware CPU stats from hypervisor


show VMware memory stats from hypervisor


show advanced VMware memory stats from hypervisor


show VMware ESX kernel vmhba stats


show VMware ESX kernel interrupt stats


show VMware ESX kernel port stats


show CPU usage per OpenVZ guest


show I/O usage per OpenVZ guest


show OpenVZ user beancounters


wireless link quality and signal to noise ratio


show ZFS arc stats


show ZFS l2arc stats


show ZFS zil stats


delay is the delay in seconds between each update

count is the number of updates to display before exiting

The default delay is 1 and count is unspecified (unlimited)


When invoking dstat with a delay greater than 1 and without the --noupdate option, it will show intermediate updates, ie. the first time a 1 sec average, the second update a 2 second average, etc. until the delay has been reached.

So in case you specified a delay of 10, the 9 intermediate updates are NOT snapshots, they are averages over the time that passed since the last final update. The end result is that you get a 10 second average on a new line, just like with vmstat.


Using dstat to relate disk-throughput with network-usage (eth0), total CPU-usage and system counters:

dstat -dnyc -N eth0 -C total -f 5

Checking dstat’s behaviour and the system impact of dstat:

dstat -taf --debug

Using the time plugin together with cpu, net, disk, system, load, proc and top_cpu plugins:

dstat -tcndylp --top-cpu

this is identical to

dstat --time --cpu --net --disk --sys --load --proc --top-cpu

Using dstat to relate advanced cpu stats with interrupts per device:

dstat -t --cpu-adv -yif


Since it is practically impossible to test dstat on every possible permutation of kernel, python or distribution version, I need your help and your feedback to fix the remaining problems. If you have improvements or bugreports, please send them to:[1]


Please see the TODO file for known bugs and future plans.


Paths that may contain external dstat_*.py plugins:

(path of binary)/plugins/


Dstat will read additional command line arguments from the environment variable DSTAT_OPTS. You can use this to configure Dstat’s default behavior, e.g. if you have a black-on-white terminal:

export DSTAT_OPTS="--bw --noupdate"

Other internal or external plugins have their own environment variables to influence their behavior, e.g.






Performance tools htop(1), ifstat(1), iftop(8), iostat(1), mpstat(1), netstat(8), nfsstat(8), perf(1), powertop(1), rtacct(8), top(1), vmstat(8), xosview(1) Process tracing lslk(8), lsof(8), ltrace(1), pidstat(1), pmap(1), ps(1), pstack(1), strace(1) Binary debugging ldd(1), file(1), nm(1), objdump(1), readelf(1) Memory usage tools free(1), memusage, memusagestat, ps_mem(1), slabtop(1), smem(8) Accounting tools acct(2), dump-acct(8), dump-utmp(8), lastcomm(1), sa(8) Hardware debugging tools dmidecode(8), ifinfo(1), lsdev(1), lshal(1), lshw(1), lsmod(8), lspci(8), lsusb(8), numactl(8), smartctl(8), turbostat(8), x86info(1) Application debugging mailstats(8), qshape(1) Xorg related tools xdpyinfo(1), xrestop(1) Other useful info collectl(1), proc(5), procinfo(8)


Written by Dag Wieers[1]

Homepage at

This manpage was initially written by Andrew Pollock[2] for the Debian GNU/Linux system.


Dag Wieers <>


Copied to clipboard