documentation 여기서 설명하는 것 이상으로 유용한 command 및 lsof에서 출력하는 정보에 대한 내용이 써져 있으니 궁금하면 찾아보자.
CPU 및 각종 장치의 input/output 관련 통계를 모니터링 할 때 사용된다. 평균 transfer rate를 기반으로, 각 장치들이 input/output 처리를 위해 얼마나 작동하고 있는지를 판별하는데, 이 통계를 기반으로 각 장치들 사이의 input/output의 균형이 있을 수 있도록 시스템 구성을 바꾸는 등의 조치를 할 수가 있다.
sysstat
이라는 package를 필요로 하며, 이게 없을 경우 Ubuntu 기준 밑 command 수행 필요.
$ sudo apt-get install sysstat
$ iostat
Linux 5.10.102.1-microsoft-standard-WSL2 (DESKTOP-4RPUOID) 12/16/23 _x86_64_ (12 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.05 0.00 0.06 0.00 0.00 99.90
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
sda 0.86 0.02 436.75 0.00 225 4195192 0
sdb 0.68 18.01 25.19 22.18 173037 241940 213068
먼저 CPU 관련 항목을 살펴보면
그 다음 밑의 장치 관련 항목을 보면
/dev
상에 있는, 장치 이름통계를 낼 때의 범위는 booting 시간 기준 이후 모든 것들에 대해서다...
통계를 낼 때 다음 파일들도 활용한다.
/proc/stat
: 시스템 관련 통계/proc/uptime
: 시스템 가동 시간/proc/diskstats
: 디스크 관련 통계/sys
: block 장치 관련 통계. block device란 block 단위로 데이터를 전달하는 장치로 보통 하드디스크 등이 해당./proc/self/mountstats
: 네트워크 파일 시스템 관련 통계/dev/disk
: persistent device의 이름을 보유함. persistent device란 전원이 꺼져도 본인이 저장한 data가 유지되는 장치들을 일컫는 말이다.iostat -x
iostat -c
iostat -d
sda
장치에 관한 통계만 보게 된다.iostat -d sda
-x
+ -d
라고 생각하면 된다.iostat -xd
iostat -k
iostat -m
iostat -p
iostat -N
-k
는 앞의 KB option이랑 동일한 역할을 한다. 중요한건 뒤의 숫자인데, 첫번째인 2
는 2초마다를 의미하고, 두번재인 3
은 3번을 의미한다. 즉 2초마다 3번, iostat을 수행하라는 것이다.iostat -k 2 3
앞에서 통계를 낼 때 기준이 booting 이후 전부라고 했는데, 위와 같이 여러번을 연속으로 실행하도록 command를 입력하면, 2번째 이후부터는 마지막 iostat 이후의 기간동안의 통계를 기반으로 결과를 낸다. 그래서 밑과 같은 결과가 나오게 된다.
-k
option 뿐만 아니라 다른 option도 사용 가능. 밑의 경우 CPU 관련 정보를 2초마다 2번 출력한다. 범위 기준은 이전과 동일.
iostat -c 2 2
sda
장치에 대해서만, 2초마다 3번 iostat을 출력한다.iostat -d sda 2 3