---
name: "dool"
section: "1"
platform: "linux"
package: "dool"
version: "1.3.8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/dool"
---

# dool(1)

versatile tool for generating system resource statistics

## NAME

dool - versatile tool for generating system resource statistics

## SYNOPSIS

dool \[-afv\] \[options..\] \[delay \[count\]\]

## DESCRIPTION

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

Dool 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).

Dool 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.

Dool 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.

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

## OPTIONS

- \-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,sda

  include total and sda (when using --disk)

- \--diskset diskset\_name:dev1,dev2,dev3,etc...

  group several disks together and report aggregate stats (when using --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)

- \--aio

  enable aio stats (asynchronous I/O)

- \--cpu-adv

  enable advanced cpu stats

- \--cpu-use

  enable only cpu usage stats

- \--fs, --filesystem

  enable filesystem stats (open files, inodes)

- \--ipc

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

- \--lock

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

- \--mem-adv

  enable advanced memory stats

- \--raw

  enable raw stats (raw sockets)

- \--socket

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

- \--tcp

  enable tcp stats (listen, established, syn, time\_wait, close)

- \--udp

  enable udp stats (listen, active)

- \--unix

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

- \--vm

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

- \--vm-adv

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

- \--zones

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

\--\<plugin-name\>

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

  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

- \--bits

  force bits for values expressed in bytes

- \--bytes

  force bytes for values expressed in bits

- \--float

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

- \--integer

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

- \--color

  force 256 color output (default)

- \--color16

  force 16 color

- \--bw, --blackonwhite

  change colors for white background terminal

- \--nocolor

  disable colors

- \--noheaders

  disable repetitive headers

- \--noupdate

  disable intermediate updates when delay \> 1

- \--output file

  write CSV output to file

- \--display

  output tabular data to the display. Useful in conjunction with **--output** to display on screen and write to a file at the same time

- \--dstat

  enable legacy Dstat output mode

- \--profile

  show profiling statistics when exiting dool

- \--ascii

  output table data in ascii instead of ANSI

## PLUGINS

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

\--battery

battery in percentage (needs ACPI)

\--battery-remain

battery remaining in hours, minutes (needs ACPI)

\--cpufreq

CPU frequency in percentage (needs ACPI)

\--dbus

number of dbus connections (needs python-dbus)

\--disk-avgqu

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

\--disk-avgrq

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

\--disk-svctm

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

\--disk-tps

number of transfers per second that were issued to the device

\--disk-util

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

\--disk-wait

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

\--dool

show dool cputime consumption and latency

\--dool-cpu

show dool advanced cpu usage

\--dool-ctxt

show dool context switches

\--dool-mem

show dool advanced memory usage

\--fan

fan speed (needs ACPI)

\--freespace

per filesystem disk usage

\--gpfs

GPFS read/write I/O (needs mmpmon)

\--gpfs-ops

GPFS filesystem operations (needs mmpmon)

\--helloworld

Hello world example dool plugin

\--innodb-buffer

show innodb buffer stats

\--innodb-io

show innodb I/O stats

\--innodb-ops

show innodb operations counters

\--lustre

show lustre I/O throughput

\--lnet

show lustre network I/O stats

\--md-status

show software raid (md) progress and speed

\--memcache-hits

show the number of hits and misses from memcache

\--mysql5-cmds

show the MySQL5 command stats

\--mysql5-conn

show the MySQL5 connection stats

\--mysql5-innodb

show the MySQL5 innodb stats

\--mysql5-io

show the MySQL5 I/O stats

\--mysql5-keys

show the MySQL5 keys stats

\--mysql-io

show the MySQL I/O stats

\--mysql-keys

show the MySQL keys stats

\--net-packets

show the number of packets received and transmitted

\--nfs3

show NFS v3 client operations

\--nfs3-ops

show extended NFS v3 client operations

\--nfsd3

show NFS v3 server operations

\--nfsd3-ops

show extended NFS v3 server operations

\--nfsd4-ops

show extended NFS v4 server operations

\--nfsstat4

show NFS v4 stats

\--ntp

show NTP time from an NTP server

\--postfix

show postfix queue sizes (needs postfix)

\--power

show power usage

\--proc-count

show total number of processes

\--qmail

show qmail queue sizes (needs qmail)

\--redis: show redis stats

\--rpc

show RPC client calls stats

\--rpcd

show RPC server calls stats

\--sendmail

show sendmail queue size (needs sendmail)

\--snmp-cpu

show CPU stats using SNMP from DOOL\_SNMPSERVER

\--snmp-load

show load stats using SNMP from DOOL\_SNMPSERVER

\--snmp-mem

show memory stats using SNMP from DOOL\_SNMPSERVER

\--snmp-net

show network stats using SNMP from DOOL\_SNMPSERVER

\--snmp-net-err: show network errors using SNMP from DOOL\_SNMPSERVER

\--snmp-sys

show system stats (interrupts and context switches) using SNMP from DOOL\_SNMPSERVER

\--snooze

show number of ticks per second

\--squid

show squid usage statistics

\--test

show test plugin output

\--thermal

system temperature sensors

\--top-bio

show most expensive block I/O process

\--top-bio-adv

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

\--top-childwait

show process waiting for child the most

\--top-cpu

show most expensive CPU process

\--top-cpu-adv

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

\--top-cputime

show process using the most CPU time (in ms)

\--top-cputime-avg

show process with the highest average timeslice (in ms)

\--top-int

show most frequent interrupt

\--top-io

show most expensive I/O process

\--top-io-adv

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

\--top-latency

show process with highest total latency (in ms)

\--top-latency-avg

show process with the highest average latency (in ms)

\--top-mem

show process using the most memory

\--top-oom

show process that will be killed by OOM the first

\--utmp

show number of utmp connections (needs python-utmp)

\--vm-cpu

show VMware CPU stats from hypervisor

\--vm-mem

show VMware memory stats from hypervisor

\--vm-mem-adv

show advanced VMware memory stats from hypervisor

\--vmk-hba

show VMware ESX kernel vmhba stats

\--vmk-int

show VMware ESX kernel interrupt stats

\--vmk-nic

show VMware ESX kernel port stats

\--vz-cpu

show CPU usage per OpenVZ guest

\--vz-io

show I/O usage per OpenVZ guest

\--vz-ubc

show OpenVZ user beancounters

\--wifi

wireless link quality and signal to noise ratio

\--zfs-arc

show ZFS arc stats

\--zfs-l2arc

show ZFS l2arc stats

\--zfs-zil

show ZFS zil stats

## ARGUMENTS

**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)

## INTERMEDIATE UPDATES

When invoking dool 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.

## EXAMPLES

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

```
dool -dnyc -N eth0 -C total -f 5
```

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

```
dool -taf --debug
```

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

```
dool -tcndylp --top-cpu
```

this is identical to

```
dool --time --cpu --net --disk --sys --load --proc --top-cpu
```

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

```
dool -t --cpu-adv -yif
```

## BUGS

Since it is practically impossible to test dool 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: **dag@wieers.com**\[1\]

**Note**\

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

## FILES

Paths that may contain external dool\_\*.py plugins:

```
~/.dool/
(path of binary)/plugins/
/usr/share/dool/
/usr/local/share/dool/
```

## ENVIRONMENT VARIABLES

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

```
export DOOL_OPTS="--bw --noupdate"
```

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

```
DOOL_NTPSERVER
```

```
DOOL_MYSQL
DOOL_MYSQL_HOST
DOOL_MYSQL_PORT
DOOL_MYSQL_SOCKET
DOOL_MYSQL_USER
DOOL_MYSQL_PWD
```

```
DOOL_SNMPSERVER
DOOL_SNMPCOMMUNITY
```

```
DOOL_SQUID_OPTS
```

```
DOOL_TIMEFMT
```

## SEE ALSO

### 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)
```

## AUTHOR

Dool is maintained by Scott Baker **scott@perturb.org**\[2\]

Homepage at **https://github.com/scottchiefbaker/dool**

dstat originally written by Dag Wieers **dag@wieers.com**\[1\]

Homepage at **http://dag.wieers.com/home-made/dstat/**

This manpage was initially written by Andrew Pollock **apollock@debian.org**\[3\] for the Debian GNU/Linux system.

## AUTHOR

**Scott Baker** \<scott@perturb.org\>

Author.

## NOTES

- 1\.

  dag@wieers.com

  mailto:dag@wieers.com

- 2\.

  scott@perturb.org

  mailto:scott@perturb.org

- 3\.

  apollock@debian.org

  mailto:apollock@debian.org
