iostatctl

   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 옵션을 지정하면, 명령어의 버전 정보를 보여준다.