[Research/Ubuntu] - [Linux/Ubuntu 시스템 관리] CPU 사용량 모니터링 (iostat, dstat)에서 cpu 사용량 체크를 하였다. 이제 disk 사용에 대한 모니터링을 해보자.
disk 사용 모니터링은 아래와 같이 iostat을 사용할 수 있다(필요한 경우 sudo apt-get install sysstat 실행).
~$ iostat 3
Linux 2.6.38-8-generic (greenfish-virtual-machine) 12/26/2013 _i686_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.51 0.04 0.34 0.39 0.00 98.73
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.01 0.05 0.00 856 0
sdb 6.07 136.48 282.56 2486324 5147416
avg-cpu: %user %nice %system %iowait %steal %idle
1.68 0.00 39.26 59.06 0.00 0.00
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
sdb 1129.87 71508.72 71863.09 213096 214152
avg-cpu: %user %nice %system %iowait %steal %idle
2.35 0.00 29.19 68.46 0.00 0.00
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
sdb 1101.34 68083.22 71081.88 202888 211824
...
vmstat 명령으로 확인할 수 있다.
~$ vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
ram0 0 0 0 0 0 0 0 0 0 0
ram1 0 0 0 0 0 0 0 0 0 0
ram2 0 0 0 0 0 0 0 0 0 0
...
loop7 0 0 0 0 0 0 0 0 0 0
sr0 0 0 0 0 0 0 0 0 0 0
sda 107 0 856 100 0 0 0 0 0 0
sdb 71969 27636 3556116 210176 56937 730120 6296464 9890772 0 163
fd0 0 0 0 0 0 0 0 0 0 0
~$
아래는 read/write 정보를 표기한 것이다. 몇몇 장치(LVM, RAID, ...)에서는 동작하지 않는다.
~$ vmstat -p sdb5
sdb5 reads read sectors writes requested writes
71405 3550450 56866 6280640
~$
아래와 같이 현재 열려있는 file이나 directory를 표시한다.
~$ sudo lsof | less
다음과 같이 진행된다.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 8,21 4096 2 /
init 1 root rtd DIR 8,21 4096 2 /
init 1 root txt REG 8,21 124704 1439034 /sbin/init
init 1 root mem REG 8,21 79672 524137 /lib/i386-linux-gnu/libnsl-2.13.so
init 1 root mem REG 8,21 243400 524106 /lib/i386-linux-gnu/libdbus-1.so.3.5.4
init 1 root mem REG 8,21 117960 524084 /lib/i386-linux-gnu/ld-2.13.so
init 1 root mem REG 8,21 29984 523327 /lib/libnih-dbus.so.1.0.0
init 1 root mem REG 8,21 1434180 524097 /lib/i386-linux-gnu/libc-2.13.so
init 1 root mem REG 8,21 75040 523329 /lib/libnih.so.1.0.0
init 1 root mem REG 8,21 38500 524147 /lib/i386-linux-gnu/libnss_nis-2.13.so
init 1 root mem REG 8,21 26400 524139 /lib/i386-linux-gnu/libnss_compat-2.13.so
init 1 root mem REG 8,21 42580 524143 /lib/i386-linux-gnu/libnss_files-2.13.so
:
...
~$
bash shell에 의해 열려있는 파일을 확인한다.
~$ lsof -c bash
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 5158 greenfish cwd DIR 8,21 4096 1177348 /home/greenfish
bash 5158 greenfish rtd DIR 8,21 4096 2 /
bash 5158 greenfish txt REG 8,21 822420 2093060 /bin/bash
bash 5158 greenfish mem REG 8,21 223468 523323 /lib/libncurses.so.5.7
...
~$
각 프로세스의 각각 현재 directory를 표기한다.
~$ sudo lsof -d cwd
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/greenfish/.gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 8,21 4096 2 /
kthreadd 2 root cwd DIR 8,21 4096 2 /
ksoftirqd 3 root cwd DIR 8,21 4096 2 /
...
sudo 5336 root cwd DIR 8,21 4096 1177348 /home/greenfish
lsof 5338 root cwd DIR 8,21 4096 1177348 /home/greenfish
lsof 5339 root cwd DIR 8,21 4096 1177348 /home/greenfish
~$
사용자별 열린 file과 directory를 표기한다.
~$ lsof -u greenfish
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
gnome-key 1809 greenfish cwd DIR 8,21 4096 2 /
gnome-key 1809 greenfish rtd DIR 8,21 4096 2 /
...
lsof 5501 greenfish 4r FIFO 0,8 0t0 176972 pipe
lsof 5501 greenfish 7w FIFO 0,8 0t0 176973 pipe
~$
/mnt/sda1를 열은 process를 나열한다.
~$ lsof /mnt/sda1
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
file_lock 5655 greenfish 3w REG 8,1 0 11660 /mnt/sda1/lock.dmy
file_lock 5655 greenfish 4r REG 8,1 0 11660 /mnt/sda1/lock.dmy
~$
/mnt/sda1/test_lock 하부 경로를 열은 process를 나열한다.
~$ lsof +d /mnt/sda1/test_lock/
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
file_lock 5723 greenfish 3w REG 8,1 0 11667 /mnt/sda1/test_lock/lock.dmy
file_lock 5723 greenfish 4r REG 8,1 0 11667 /mnt/sda1/test_lock/lock.dmy
~$
[출처 : http://greenfishblog.tistory.com/187]
'Academy I > Tech Academy' 카테고리의 다른 글
[Linux]file system 검사하기 (0) | 2015.01.02 |
---|---|
[Linux]file system mount, unmount (0) | 2015.01.02 |
[Linux]Boot process 관리하기 (0) | 2015.01.02 |
[Linux]시간 관리하기 (date, cal, hwclock, ntp) (0) | 2015.01.02 |
[Linux]CPU 사용량 모니터링 (iostat, dstat) (0) | 2015.01.02 |
[Linux]메모리 체크 (free, top, vmstat, slabinfo, slabtop) (0) | 2015.01.02 |
[Linux]process(프로세스) 관련 명령들 (0) | 2015.01.02 |
[Linux]ps, top을 이용하여 프로세스(process) 관리하기 (0) | 2015.01.02 |