Gauging system activity on Linux with dstat
Default dstat options
Were you to use the dstat command with no options, the output would include a lot more details than you might expect and would look more like what you see below.
$ dstat You did not select any stats, using -cdngy by default. ----total-usage---- -dsk/total- -net/total- ---paging-- ---system-- usr sys idl wai stl| read writ| recv send| in out | int csw 1 1 96 1 0| 16k 1128k| 54B 674B| 0 0 | 195 295 0 0 99 0 0| 0 4093B| 54B 354B| 0 0 | 129 208 1 0 99 0 0| 0 0 | 500B 354B| 0 0 | 115 170 0 0 99 0 0| 0 0 | 54B 354B| 0 0 | 65 111 1 1 99 0 0| 0 0 | 54B 354B| 0 0 | 99 157 0 0 99 0 0| 0 0 | 54B 354B| 0 0 | 63 113^c
Notice that this output includes stats usage, disk read and write, network activity, paging and system stats. The output from using dstat without options is the same as using dstat with the “cdngy” options (dstat -cdngy).
To get eight lines of this information in 2-second intervals, add the numeric arguments as shown in this command:
$ dstat 2 8 You did not select any stats, using -cdngy by default. ----total-usage---- -dsk/total- -net/total- ---paging-- ---system-- usr sys idl wai stl| read writ| recv send| in out | int csw 0 0 99 0 0| 0 0 | 298B 541B| 0 0 | 123 197 0 0 99 0 0| 0 0 | 54B 346B| 0 0 | 64 114 0 0 99 0 0| 0 0 | 87B 515B| 0 0 | 66 117 0 0 99 0 0| 0 0 | 54B 346B| 0 0 | 78 125 1 0 100 0 0| 0 0 | 277B 346B| 0 0 | 62 113 1 1 99 0 0| 0 0 |3893B 411B| 0 0 | 110 144 5 0 85 10 0| 0 128k| 54B 346B| 0 0 | 213 152 1 0 98 0 0| 0 180k| 54B 354B| 0 0 | 92 149
Getting help
Note that the dstat command doesn’t always come with a man page. However, you can get a list of the command’s options and what each option represents using the dstat –help command.
$ dstat --help Usage: dstat [-afv] [options...] [delay [count]] Versatile tool for generating system resource statistics Dstat options: -c, --cpu enable cpu stats -C 0,3,total include cpu0, cpu3 and total -d, --disk enable disk stats -D total,sda include sda and total --dm, --device-mapper enable device mapper stats -L root,home,total include root, home and total --md, --multi-device enable multi-device driver stats -M total,md-0 include md-0 and total --part, --partition enable disk partition stats -P total,sdb2 include sdb2 and total -g, --page enable page stats -i, --int enable interrupt stats -I 9,CAL include int9 and function call interrupts -l, --load enable load stats -m, --mem enable memory stats -n, --net enable network stats -N eth1,total include eth1 and total -p, --proc enable process stats -r, --io enable io stats (I/O requests completed) -s, --swap enable swap stats -S swap1,total include swap1 and total -t, --time enable time/date output --time-adv enable time/date output (with milliseconds) -T, --epoch enable time counter (seconds since epoch) --epoch-adv enable time counter (milliseconds since epoch) -y, --sys enable system stats --aio enable aio stats --fs, --filesystem enable fs stats --ipc enable ipcstats --lock enable lockstats --raw enable rawstats --socket enable socketstats --tcp enable tcpstats --udp enable udpstats --unix enable unixstats --vm enable vmstats --vm-adv enable advanced vm stats --list list all available plugins --plugin enable external plugin by name, see --list -a, --all equals -cdngy (default) -f, --full automatically expand -C, -D, -I, -N and -S lists -v, --vmstat equals -pmgdsc -D total --bits force bits for values expressed in bytes --float force float values on screen --integer force integer values on screen --bw, --blackonwhite change colors for white background terminal --color force colors --nocolor disable colors --noheaders disable repetitive headers --noupdate disable intermediate updates --nomissed disable missed ticks warnings -o file, --output=file write CSV output to file
Using other options
The cdngy arguments (as you can tell from the output above) represent cpu, disk, network, paging and system stats. To display used and free memory with dstat, use a command like this:
$ dstat -s ---total--- used free 768k 3783M 768k 3783M 768k 3783M 768k 3783M 768k 3783M 768k 3783M
To display top CPU usages, you could use a command like this: