DOOL(1)
okay bestie, welcome to the DOOL(1) manual page for dool, the versatile tool for generating system resource statistics ๐
โจ
๐ NAME ๐
dool โ versatile tool for generating system resource statistics. That's the whole assignment, and she eats every time ๐
๐ธ SYNOPSIS ๐ธ
dool [-afv] [options..] [delay [count]]
๐ฆ DESCRIPTION ๐ฆ
Okay so dool is a versatile replacement for vmstat, iostat and ifstat. She overcomes some of the limitations and adds some extra features โ not me showing up with the glow-up ๐ฅ
dool lets you view all of your system resources instantly. Like, 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). Bestie, same interval is the moment ๐
Also, dool 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. Periodt ๐
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. That's main character energy for your storage ๐ซถ
And yes, 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. Graphs? Obsessed ๐โจ
๐ OPTIONS ๐
-c,--cpuโ enable cpu stats (system, user, idle, wait), for more CPU related stats also see--cpu-advand--cpu-use-C 0,3,totalโ include cpu0, cpu3 and total (when using-c/--cpu); useallto show all CPUs-d,--diskโ enable disk stats (read, write), for more disk related stats look into the other--diskplugins-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-advand--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, seePLUGINSfor options--listโ list the internal and external plugin names-a,--allโ equals-cdngy(default)-f,--fullโ expand-C,-D,-I,-Nand-Sdiscovery 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--outputto 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
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
๐ PLUGINS โจ
okay so bestie, here's the tea: literally anyone can make their own dool plugins (and contribute them back, we love a community moment ๐). but dool already ships with a whole squad of plugins that highkey extend what it can do. here's the full rundown, no skips, no cuts:
--batteryโ battery percentage (needs ACPI)--battery-remainโ how much battery you got left, in hours and minutes (needs ACPI)--cpufreqโ CPU frequency, as a percentage (needs ACPI)--dbusโ how many dbus connections are out here (needspython-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 (needsmmpmon)--gpfs-opsโ GPFS filesystem operations (needsmmpmon)--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 fromDOOL_SNMPSERVER--snmp-loadโ show load stats using SNMP fromDOOL_SNMPSERVER--snmp-memโ show memory stats using SNMP fromDOOL_SNMPSERVER--snmp-netโ show network stats using SNMP fromDOOL_SNMPSERVER--snmp-net-errโ show network errors using SNMP fromDOOL_SNMPSERVER--snmp-sysโ show system stats (interrupts and context switches) using SNMP fromDOOL_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 (needspython-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
like, that's the whole menu bestie, go wild ๐
๐งฎ ARGUMENTS ๐
delayโ the delay in seconds between each updatecountโ the number of updates to display before exiting
the default delay is 1, and count is unspecified (which means unlimited, she just goes and goes ๐
โณ INTERMEDIATE UPDATES ๐ธ
okay so this is such a cute detail. when you invoke dool with a delay greater than 1 and you don't pass the --noupdate option, it shows you intermediate updates โ like, the first time it's a 1 sec average, the second update is a 2 second average, etc., all the way until it hits your delay.
so if you specified a delay of 10, those 9 intermediate updates are NOT snapshots, bestie โ they're averages over the time that passed since the last final update. the end result? you get a 10 second average on a new line, just like with vmstat. iconic behavior honestly โจ
๐ 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 (yes she's self-aware, main character energy):
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 ๐ญ
so real talk: since it is practically impossible to test dool on every possible permutation of kernel, python or distribution version, the maintainer needs 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. (iykyk ๐)
๐ 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 โ like, say, if you have a black-on-white terminal (we don't judge, but likeโฆ okay we kinda do ๐):
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
๐ฅ๏ธ Xorg related tools
๐ 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 (yes, again, she said it twice and she's right) โญ
Scott Baker <scott@perturb.org>
- Author.
๐ NOTES ๐
dag@wieers.commailto:dag@wieers.comscott@perturb.orgmailto:scott@perturb.orgapollock@debian.orgmailto:apollock@debian.org
and that's the whole page bestie, you ate that ๐ซถ this lil beauty is 1.3.0, dated October 2024, and it lives at DOOL(1) โ go forth and monitor your little heart out ๐
โจ๐
๐ฆ where this page comes from
- arch rolling: dool 1.3.8-1 ยท GPL-3.0-only
- nixos 26.05: dool 1.3.8
- nixpkgs unstable: dool 1.3.8
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms