iostatctl
사용법
iostatctl -V
iostatctl -c config [-S skiplist] file
iostatctl -d file
iostatctl -G groupname=disk1[,disk2...] [-G groupname=disk1[,disk2...] ...] [-S skiplist] file
iostatctl -G groupname=+diskfile [-G groupname=+diskfile ...][-S skiplist] file
iostatctl -p n [-S skiplist] file
iostatctl -s [-i interval][-T] [-m | -g][-S skiplist] file
Options are as follows:
-? print this help
-c config specify configuration file for grouping disks
-d print only disk names in the file
-G groupname=disk1[,disk2,..,] grouping disks, (multi-choice option)
-G groupname=+diskfile diskfile has disks line by line, (multi-choice option)
-g show data in giga byte
-m show data in mega byte
-i interval specify interval
-p n combine n lines into one
-s print sum of each devices
-S skiplist list starting word to skip (separated by comma)
-T print TOTAL values of all disks
-V show version
file output of "iostat -x or iostat -xn" command
Example)
# iostatctl -G /user1=ssd10,ssd11,ssd12,ssd13 -G /user2=ssd100,ssd101,ssd102 iostat.log
# iostatctl -c group_file iostat.log
# iostatctl -p 3 iostat.log
# iostatctl -s iostat.log
# iostatctl -d iostat.log
설명
iostatctl 명령어는 iostat -x" 또는 "iostat -xn" 명령어의 실행결과를 입력으로 받아서
여러 개의 디스크를 하나의 디스크로 변환하여 준다.
예를 들어, /data1 이라는 파일 시스템이 여러 개의 디스크를 striping한 것일 경우에,
/data1 파일 시스템의 I/O 양를 보고 싶을 때, striping된 디스크의 처리량을
모두 합산하여야 한다.
예를 들어, /data1 이라는 파일 시스템이 sd201, sd202, sd203, sd204으로 striping되어 있고,
/data2 파일 시스템은 sd100, sd101로 mirror되어 있는 경우,
다음과 같이 iostatctl 명령어를 사용하여, 그룹핑된 iostat 명령어의 출력물을 얻을 수 있다.
# head -20 iostat.log
extended device statistics
device r/s w/s kr/s kw/s wait actv svc_t %w %b
ssd0 0.1 4.8 0.7 11.6 0.0 0.1 16.2 0 3
ssd2 0.1 4.8 0.7 11.6 0.0 0.1 15.3 0 3
ssd82 303.5 4.0 27682.0 17.6 0.0 2.8 9.0 0 61
ssd83 72.1 6.6 3457.0 372.3 0.0 0.7 8.8 0 45
ssd84 70.8 7.0 3487.4 375.8 0.0 0.7 9.0 0 45
ssd85 71.7 6.8 3460.8 382.9 0.0 0.7 8.9 0 45
ssd86 70.3 6.9 3484.0 377.6 0.0 0.7 9.0 0 44
ssd87 69.6 6.5 3364.5 370.5 0.0 0.7 8.8 0 44
ssd88 69.4 6.8 3440.2 366.4 0.0 0.7 9.0 0 44
extended device statistics
device r/s w/s kr/s kw/s wait actv svc_t %w %b
ssd0 0.0 1.3 0.0 9.3 0.0 0.0 7.5 0 1
ssd2 0.0 1.3 0.0 9.3 0.0 0.0 7.2 0 1
ssd82 9.2 6.0 60.7 28.6 0.0 0.0 0.5 0 1
ssd83 11.3 15.6 707.9 976.9 0.0 0.0 1.3 0 3
ssd84 14.0 19.3 690.4 953.4 0.0 0.0 1.2 0 4
ssd85 11.3 15.6 709.7 983.0 0.0 0.0 1.4 0 3
ssd86 13.8 19.1 687.1 951.6 0.0 0.0 1.3 0 4
# iostatctl -G /data1=ssd0,ssd2 -G /data2=ssd82,ssd83,ssd84 io.log | head -20
# /data1 (2) = ssd0 ssd2
# /data2 (3) = ssd82 ssd83 ssd84
extended device statistics
device r/s w/s kr/s kw/s wait actv svc_t %w %b
/data1 0.2 9.6 1.4 23.2 0.0 0.1 16.2 0 3
/data2 446.4 17.6 34626.4 765.7 0.0 2.8 9.0 0 61
extended device statistics
device r/s w/s kr/s kw/s wait actv svc_t %w %b
/data1 0.0 2.6 0.0 18.6 0.0 0.0 7.5 0 1
/data2 34.5 40.9 1459.0 1958.9 0.0 0.0 1.3 0 4
extended device statistics
device r/s w/s kr/s kw/s wait actv svc_t %w %b
/data1 0.0 4.2 0.0 13.4 0.0 0.0 10.9 0 1
/data2 20.1 42.4 651.3 3016.3 0.0 0.2 3.9 0 3
extended device statistics
device r/s w/s kr/s kw/s wait actv svc_t %w %b
/data1 0.0 5.0 0.0 16.2 0.0 0.0 11.3 0 2
/data2 9.9 69.4 70.1 5375.4 0.0 0.3 4.2 0 4
extended device statistics
device r/s w/s kr/s kw/s wait actv svc_t %w %b
|
이렇게 만들어진 결과물에 대하여 giostat 명령어를 사용하여 그래프를 만들 수 있다.
-G 옵션에 그룹명과 그룹에 포함되는 디스크 명을 지정하면 된다.
-G 옵션을 여러 개 지정이 가능하며, 형식은 다음과 같다.
-G groupname=device,.....
iostatctl 명령어의 결과물의 첫부분은, '#' 으로 시작하는 주석문이 나오며,
이것은 giostat 명령어에서 주석으로 처리된다.
이 주석문의 내용은 그룹명과 이에 해당하는 디스크 개수와 디비이스명으로 되어 있다.
# /data1 (2) = ssd0 ssd2
# /data2 (3) = ssd82 ssd83 ssd84
여기서, 출력되는 각각의 필드는 다음과 같이 계산된다.
필드
|
설명
|
r/s, w/s,
kr/s, kw/s
|
-G 옵션이나 -s 옵션을 사용할 때에는 합산되고,
-p 옵션을 사용할 때에는 합산한 값에 대하여 -p 옵션에
지정된 숫자로 나눈다.
|
wait, actv
svc_t
wsvc_t, asvc_t
|
이 필드들은 최대값을 표시한다. (V10.6 이전 버전과 표시 방법이 변경되었음)
|
-p 옵션을 지정하면 여러 번에 걸처 수집한 데이타를 한번에 보여준다.
예를 들어, -p 3 을 지정하면, 3번에 걸처 수집한 데이타를 1번으로 줄여서 보여준다.
만일 1분 간격으로 데이타를 수집한 결과물을 가지고 있는데, 이것에 대해 -p 3 옵션을 지정하여
iostatctl 명령어를 실행하면, 그 결과 파일은 3분 간격으로 데이타를 수집한 것 처럼 보인다.
iostat 명령어의 결과 파일에서 첫번째 데이타는 그대로 출력하고, 그 나머지 부터 3개씩 묶어서 하나의 데이타로 출력한다.
iostatctl -p 3 io.log | head -20
# -p 3
extended device statistics
device r/s w/s kr/s kw/s wait actv svc_t %w %b
ssd0 0.1 4.8 0.7 11.6 0.0 0.1 16.2 0 3
ssd2 0.1 4.8 0.7 11.6 0.0 0.1 15.3 0 3
ssd82 303.5 4.0 27682.0 17.6 0.0 2.8 9.0 0 61
ssd83 72.1 6.6 3457.0 372.3 0.0 0.7 8.8 0 45
ssd84 70.8 7.0 3487.4 375.8 0.0 0.7 9.0 0 45
ssd85 71.7 6.8 3460.8 382.9 0.0 0.7 8.9 0 45
ssd86 70.3 6.9 3484.0 377.6 0.0 0.7 9.0 0 44
ssd87 69.6 6.5 3364.5 370.5 0.0 0.7 8.8 0 44
ssd88 69.4 6.8 3440.2 366.4 0.0 0.7 9.0 0 44
extended device statistics
device r/s w/s kr/s kw/s wait actv svc_t %w %b
ssd0 0.0 2.0 0.0 8.0 0.0 0.0 11.1 0 2
ssd2 0.0 2.0 0.0 8.0 0.0 0.0 11.3 0 2
ssd82 9.5 37.5 64.2 2711.3 0.0 0.3 4.2 0 4
ssd83 5.4 6.0 335.5 374.0 0.0 0.0 1.4 0 3
ssd84 6.6 7.4 327.1 364.9 0.0 0.0 1.4 0 4
ssd85 5.4 6.0 337.4 375.7 0.0 0.0 1.6 0 3
|
-s 옵션을 지정하면 다음과 같이 각 디스크의 합계를 보여준다.
# iostatctl -s iostat.log
device r/s w/s Kr/s Kw/s wait actv svc_t %w %b cnt r+w/s Kr+w/s sum_wait sum_actv sum_svc_t sum_%w sum_%b
ssd0 0.9 1050.3 9.4 3709.7 0.0 0.1 20.8 0 3 480 1051.2 3719.1 0.0 1.3 5610.1 0 618
ssd2 0.9 1050.3 9.6 3709.7 0.0 0.1 18.2 0 3 480 1051.2 3719.3 0.0 1.1 5444.1 0 604
ssd82 81321.5 18878.0 6076498.4 1333323.7 2.3 13.3 126.6 1 100 480 100199.5 7409822.1 2.3 1012.9 3928.1 1 19868
ssd83 6921.6 286.2 306206.8 16339.5 0.0 2.9 32.9 0 91 321 7207.8 322546.3 0.0 77.5 3184.0 0 5389
ssd84 7031.5 313.6 308078.6 16211.7 0.0 2.8 33.1 0 91 320 7345.1 324290.3 0.0 78.1 3240.6 0 5448
ssd85 6980.1 286.4 307380.0 16431.6 0.0 2.8 33.1 0 91 317 7266.5 323811.6 0.0 78.3 3243.5 0 5430
ssd86 6948.7 313.1 306146.2 16153.3 0.0 2.9 34.1 0 91 320 7261.8 322299.5 0.0 77.3 3190.2 0 5408
ssd87 6979.8 285.4 308511.1 16355.8 0.0 2.8 34.0 0 90 320 7265.2 324866.9 0.0 77.8 3175.2 0 5427
ssd88 6979.4 313.0 306775.7 16167.3 0.0 3.1 34.0 0 92 318 7292.4 322943.0 0.0 78.5 3200.0 0 5449
ssd89 143.1 4781.4 4866.0 93207.8 0.0 14.7 291.7 0 69 378 4924.5 98073.8 0.0 397.9 17817.0 0 2582
|
-s 옵션에 -T 옵선을 추가하면, 마지막 줄에 모든 디스크의 합계를 보여준다.
# iostatctl -s -T iostat.log
device r/s w/s Kr/s Kw/s wait actv svc_t %w %b cnt r+w/s Kr+w/s sum_wait sum_actv sum_svc_t sum_%w sum_%b
ssd0 0.9 1050.3 9.4 3709.7 0.0 0.1 20.8 0 3 480 1051.2 3719.1 0.0 1.3 5610.1 0 618
ssd2 0.9 1050.3 9.6 3709.7 0.0 0.1 18.2 0 3 480 1051.2 3719.3 0.0 1.1 5444.1 0 604
ssd82 81321.5 18878.0 6076498.4 1333323.7 2.3 13.3 126.6 1 100 480 100199.5 7409822.1 2.3 1012.9 3928.1 1 19868
ssd83 6921.6 286.2 306206.8 16339.5 0.0 2.9 32.9 0 91 321 7207.8 322546.3 0.0 77.5 3184.0 0 5389
ssd84 7031.5 313.6 308078.6 16211.7 0.0 2.8 33.1 0 91 320 7345.1 324290.3 0.0 78.1 3240.6 0 5448
ssd85 6980.1 286.4 307380.0 16431.6 0.0 2.8 33.1 0 91 317 7266.5 323811.6 0.0 78.3 3243.5 0 5430
ssd86 6948.7 313.1 306146.2 16153.3 0.0 2.9 34.1 0 91 320 7261.8 322299.5 0.0 77.3 3190.2 0 5408
ssd87 6979.8 285.4 308511.1 16355.8 0.0 2.8 34.0 0 90 320 7265.2 324866.9 0.0 77.8 3175.2 0 5427
ssd88 6979.4 313.0 306775.7 16167.3 0.0 3.1 34.0 0 92 318 7292.4 322943.0 0.0 78.5 3200.0 0 5449
ssd89 143.1 4781.4 4866.0 93207.8 0.0 14.7 291.7 0 69 378 4924.5 98073.8 0.0 397.9 17817.0 0 2582
TOTAL 123307.5 27557.7 7924481.8 1531610.1 2.3 14.7 291.7 1 100 3734 150865.2 9456091.9 2.3 1880.7 52032.8 1 56223
|
iostatctl 명령어에서 출력되는 값은 위에서 설명한 표에 있으며, 그 나머지 필드의 설명은 다음과 같다.
필드
|
설명
|
cnt |
cnt는 I/O가 실제 있었던 횟수를 나타낸다. (r/s + w/s)가 0 보다 컸던 횟수를 나타낸다.
|
r+w/s |
r+w/s 는 r/s와 w/s의 합이다.
|
Kr+w/s |
Kr+w/s 는 Kr/s와 Kw/s의 합이다.
|
sum_wait |
wait 컬럼에 있는 모든 값의 합계를 표시한다.
|
sum_actv |
actv 컬럼에 있는 모든 값의 합계를 표시한다.
|
sum_svc_t |
svc_t 컬럼에 있는 모든 값의 합계를 표시한다.
|
sum_sum_%w |
%w 컬럼에 있는 모든 값의 합계를 표시한다.
|
sum_sum_%b |
%b 컬럼에 있는 모든 값의 합계를 표시한다.
|
-s 옵션을 사용할 때, 첫번째 수집한 데이타는 합산에 포함되지 않는다.
첫번째 수집된 데이타는 시스템 부팅부터의 누적 평균 값이므로 무시한다.
다음은 iostatctl 명령어의 옵션이다.
옵션 | 설명 |
-c config |
-G 옵션에 그룹명과 그 그룹에 포함된 디스크명을 명령어 라인에 지정할 수 있는데, 이것을 명령어 라인에
지정하지 않고 구성파일에 지정할 수 있다.
구성파일명을 지정할 때, -c 옵션을 사용한다.
다음의 두개의 iostatctl 명령어는 동일한 결과를 같는다.
# iostatctl -G vol1=sd100,sd101,sd102 -G vol2=sd200,sd201 io.log > output
|
# cat vol.conf
vol1 = sd100, sd101, sd102
vol2 = sd200, sd201
# iostatctl -c vol.conf io.log > output
|
구성파일의 형식은 다음과 같으며, 한줄에 하나씩 디스크 그룹명을 지정한다.
groupname = disk1[,disk2....]
groupname = +diskfile
그룹에 속하는 디스크가 많아서 한줄에 쓰기 힘들면 라인의 끝에 백슬래쉬(\)를 표시하고 그 다음 줄에
디스크명를 지정해도 된다.
vol3 = sd300, sd301, sd302, sd303, sd304, sd305
위의 내용을 다음과 같이 두 줄에 표시할 수 있다.
vol3 = sd300, sd301, sd302, sd303 \
sd304, sd305
또한, 디스크명을 별도의 파일을 만들어 한줄에 하나씩 지정한 다음에
그 파일명 앞에 "+" 표시하여 다음과 같이 표시할 수 있다.
vol3 = +file_vol2
"+" 표시와 파일명 사이에 공백이 있으면 안 된다.
"#"으로 시작하는 라인은 주석으로 처리된다.
|
-d |
-d 옵션을 지정하면, 입력파일의 내용을 읽어서 그 파일에 들어 있은 디스크명을 한줄에 하나씩 출력한다.
# iostatctl -d iostat.log
ssd0
ssd2
ssd82
ssd83
ssd84
ssd85
ssd86
ssd87
ssd88
ssd89
|
|
-G groupname=disk1[,disk2,..,]
-G groupname=+diskfile |
그룹명과 그 그룹에 포함된 디스크명을 지정한다.
디스크 그룹명이 여러 개 있을 경우, -G 옵션을 여러 번 지정하여야 한다.
그룹에 해당하지 않은 디스크 정보는 보여주지 않는다.
디스크명을 명령어 라인에 직접 쓰지 않고 한줄에 하나씩 디스크명을 지정하고 그 파일명을
+ 표시와 함께 사용할 수 있다.
|
-i interval -m -g
|
이 옵션들은 -s 옵션을 사용할 때 같이 사용할 수 있다.
-i 옵션에 데이타를 수집한 시간 간격(초단위: iostat 명령어를 실행할 때 지정한 값)을 지정하면
r/s, w/s, kr/s, kw/s 필드에 시간 간격을 곱한 결과를 출력한다.
이렇게 interval로 곱하게 되면 구간동안에 실제 발생한 I/O 양을 알 수 있다.
곱하기 전에는 초당값(value per second)의 합계이다.
-m 옵션을 사용하면 kr/s, kw/s 필드를 Mega byte 단위로 표시하고,
-g 옵션을 지정하면 Giga byte 단위로 표시한다.
|
-p n |
-p 옵션을 지정하여, 여러 차례(n) 수집한 데이타를 한번으로 압축하여 보여준다.
-p 2 옵션을 지정하면 두 차례 수집한 데이타를 하나의 데이타로 변환하여 출력한다.
예를 들에, 1분 간격으로 iostat 명령어를 실행하였다면, -p 2를 지정하면 2분 간격으로 데이타를
수집한 것과 유사한 효과를 볼 수 있다.
iostat 명령어로 1 분 간격으로 24 시간 동안 데이타를 수집하여 giostat 명령어로
그래프를 만들면 그래프의 X축이 1440이 된다. 이 그래프는 커서 한 페이지에 보기 불편할 수 있다.
이것을 -p 2 옵션을 사용하여 iostatctl 명령어로 가공하여 그래프를 만들면 그래프의 X 축이 반으로 준다.
|
-s |
-s 옵션을 지정하면 개별 디스크에 대한 합계를 보여준다.
|
-T |
-T 옵션을 -s 옵션과 합께 사용하면, 마지막 줄에 전제 디스크에 대한 합계를 보여준다.
|
-V |
-V 옵션을 지정하면, 명령어의 버전 정보를 보여준다.
|
|