기존에는 시스템 모니터링을 하려면 메모리는 vmstat, IO 는 iostat 를 사용해야 했고 각각의 출력이 달라서 해석하는데도 어려움이 있었습니다.


linux dstat 명령어는 python 으로 작성한 vmstat, iostat, sar, ifstat 명령어의 대체제로 IO, CPU, Network 의 정보를 통합해서 모니터링할 수 있으며 plugin 을 통해서 기능을 확장할 수도 있는 다재다능한 도구입니다.


dstat 를 사용하려면 패키지 관리자를 이용해서 설치하면 됩니다.

RHEL/CentoOS

$ sudo yum install dstat
BASH

Ubuntu

$ sudo apt install dstat
BASH

RHEL/CentOS 용 dstat 는 plugin 구성이 달라서 동작 안 하는 경우가 많습니다.



사용

기본 

옵션없이 실행하면  -cdngy 옵션을 준 것과 동일하며 CPU, disk, network, paging, system 정보를 갱신하면서 보여줍니다.

$ sudo dstat
BASH


갱신 주기 지정

$ sudo dstat 
BASH


plugin 사용

--list 옵션을 사용하면 전체 플러그인 목록을 볼 수 있습니다.

$ sudo dstat --list

internal:
        aio,cpu,cpu-adv,cpu-use,cpu24,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
/usr/share/dstat:
        battery,battery-remain,condor-queue,cpufreq,dbus,disk-avgqu,disk-avgrq,disk-svctm,disk-tps,disk-util,
        disk-wait,dstat,dstat-cpu,dstat-ctxt,dstat-mem,fan,freespace,fuse,gpfs,gpfs-ops,helloworld,ib,
        innodb-buffer,innodb-io,innodb-ops,jvm-full,jvm-vm,lustre,md-status,memcache-hits,mongodb-conn,
        mongodb-mem,mongodb-opcount,mongodb-queue,mongodb-stats,mysql-io,mysql-keys,mysql5-cmds,mysql5-conn,
        mysql5-innodb,mysql5-innodb-basic,mysql5-innodb-extra,mysql5-io,mysql5-keys,net-packets,nfs3,nfs3-ops,
        nfsd3,nfsd3-ops,nfsd4-ops,nfsstat4,ntp,postfix,power,proc-count,qmail,redis,rpc,rpcd,sendmail,
        snmp-cpu,snmp-load,snmp-mem,snmp-net,snmp-net-err,snmp-sys,snooze,squid,test,thermal,top-bio,
        top-bio-adv,top-childwait,top-cpu,top-cpu-adv,top-cputime,top-cputime-avg,top-int,top-io,top-io-adv,
        top-latency,top-latency-avg,top-mem,top-oom,utmp,vm-cpu,vm-mem,vm-mem-adv,vmk-hba,vmk-int,vmk-nic,
        vz-cpu,vz-io,vz-ubc,wifi,zfs-arc,zfs-l2arc,zfs-zil
BASH

plugin 은 콤마로 구분되며 사용하려면 dash 를 2개 사용해서 플러그인 이름을 지정해 주면 됩니다.

예로 cpu 를 많이 쓰는 프로세스들을 보여주는 top-cpu 플러그인을 사용하려면 다음과 같이 CPU 정보를 보는 정보인 -c 뒤에 top-cpu 플러그인을 지정해 주면 됩니다.

$ sudo dstat -c --top-cpu
BASH

CPU

CPU 정보 보기

-c 옵션으로 CPU 정보만 볼 수 있습니다.

$ sudo dstat -c
BASH


top-cpu 

가장 CPU 를 많이 쓰는 프로세스별로 보기

$ sudo dstat -c --top-cpu
BASH


Disk

-d 옵션으로 Disk정보만 볼 수 있습니다.

$ sudo dstat -d
BASH


top-bio (block io)

block device 의 IO 를 많이 사용하는 프로세스와 정보를 표시합니다.

$ sudo dstat -d --top-bio
BASH


top io &  latency

IO 를 많이 사용하고 높은 레이턴시를 가지는 프로세스와 정보를 표시합니다.

$ sudo dstat -d --top-io  --top-latency
BASH


Network

Network 부하 보기

-n

$ sudo dstat -n
BASH


파일로 저장

--output 옵션을 사용해서 dstat 의 결과를 파일로 저장할 수 있습니다

$ sudo dstat --output ~/dstat-log.csv -cdnpmrt
BASH


Ref