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: [email protected][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
Process tracing
Binary debugging
Memory usage tools
free(1), memusage, memusagestat, ps_mem(1), slabtop(1), smem(8)
Accounting tools
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
AUTHOR
Dool is maintained by Scott Baker [email protected][2]
Homepage at https://github.com/scottchiefbaker/dool
dstat originally written by Dag Wieers [email protected][1]
Homepage at http://dag.wieers.com/home-made/dstat/
This manpage was initially written by Andrew Pollock [email protected][3] for the Debian GNU/Linux system.
AUTHOR
Scott Baker <[email protected]>
Author.
NOTES
- 1.
-
mailto:[email protected]
- 2.
-
mailto:[email protected]
- 3.
-
mailto:[email protected]