giostat
사용법
giostat [-G fn] [-d dev] [options] file
giostat -O fn -d dev [options] file
giostat -p [-G fn] [-d dev] [options] file
giostat -p -O fn -d dev [options] file
Options are as follows:
-? print this help
-, put a comma in graph number
-0 zero based graph
-B bar graph
-b draw border line
-C bg:c1:c2 colors of the graph, colors must be 6 hex digits:
bg: background color; def: ffffff
c1: foreground color1; def: 0000ff
c2: foreground color2; def: ff0000
-c config configuration file for maximum values and titles
-D directory output directory; def: .
-d dev[,dev] specify IO device name to make graph; def: total
dev: one of 'all' 'total' 'max'
dev: sd0[,sd1]...
dev: all=sd0,sd1...
dev: total=sd0,sd1...
dev: max=sd0,sd1...
-e dot X-axis extension
-f put disk name at graph's subtitle
-G fn[:[[max][-min]][:title]][,fn[:[[max][-min]][:title]]]... draw graphs for the specified fields
(without -p) fn: rw/s,Krw/s,runit,wunit,wait,actv,svc_t,%w,%b,r/s,w/s,kr/s,kw/s
(with -p) fn: rw/s,Krw/s,runit,wunit,wait,actv,wsvc_t,asvc_t,svc_t,%w,%b,r/s,w/s,kr/s,kw/s
-h height height per graph
-i interval interval (second)
-l n draw vertical lines on graph every n'th data
-L toplabel specify top label
-M use common maximum value for each device
-m print maximum values for each field
-N write time info(HH:MM:SS) at the bottom of the graph
-n count count of data to be processed
-O fn[+fn...] print field data line by line
(without -p) fn: r/s w/s kr/s kw/s wait actv svc_t %w %b
(with -p) fn: r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b
-o outfile output file, def: iostat[.gif]
-P print only maximum value and minimum value for each field
-p input file as output of '# iostat -xn'
-s start starting data to be processed. n or HHMMSS or HH:MM:SS
-S skiplist list starting word to skip (separated by comma)
-T title specify title; def: iostat
-t HHMMSS starting time of gathering data
-V show version
-v print data in text without graph
-W generate HTML page
-w width width of the graph
-y skip unknown field name in config file
-x do not make iostat-iotbl.html and iostat-iotbl.txt file
-xx do not make iostat-iotbl.html and iostat-iotbl.txt file, and do not draw 'total' graph and 'max' graph
-X file file that contains device name to be replaced
-z draw graph for unused device
file output of "iostat -x" command, or "iostat -xn" command
설명
giostat는 다음과 같은 옵션을 가지고 수행된 iostat 명령어의 출력을 저장한 file을 읽어 들여,
각 필드에 대하여 GIF 파일포멧의 그래프를 만든다.
iostat -x
iostat -xn
iostat -xz : V7.2 부터 지원
iostat -xnz : V7.2 부터 지원
다음은 60초 간격으로 480 번 iostat 명령어의 데이타를 수집한 예제이다.
# iostat -x 60 480 > iostat.log
iostat -x의 출력은 다음과 같은 형태이다.
extended disk statistics
disk r/s w/s Kr/s Kw/s wait actv svc_t %w %b
md0 0.0 0.1 0.0 0.6 0.0 0.0 33.6 0 0
sd0 0.1 0.4 0.7 2.8 0.0 0.0 94.7 0 1
sd1 0.2 2.4 2.5 19.5 0.0 0.0 22.2 0 3
sd2 0.0 0.6 0.5 3.2 0.0 0.0 43.4 0 1
sd21 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
extended disk statistics
disk r/s w/s Kr/s Kw/s wait actv svc_t %w %b
md0 0.0 0.6 0.0 3.4 0.0 0.0 23.5 0 1
sd0 0.0 1.1 0.0 8.8 0.2 0.0 184.8 1 1
sd1 0.3 4.7 2.1 36.8 0.1 0.1 25.0 1 5
sd2 0.0 2.4 0.0 67.1 0.2 0.1 125.0 1 5
sd21 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
... skip ...
|
iostat -x의 출력물에서 다음과 같은 필드가 선택되어 그래프를 그리는데 사용된다.
r/s, w/s, kr/s, kw/s, wait, actv, svc_t, %w, %b for output of iostat -x
r/s, w/s, kr/s, kw/s, wait, actv, wsvc_t, asvc_t, %w, %b for output of iostat -xn
그래프를 만들 때 사용되는 그래프명은 다음과 같다.
"iostat -x" 명령어의 출력물에서는 다음과 같은 필드가 그래프로 만들어지고,
rw/s Krw/s runit wunit wait actv svc_t %w %b r/s w/s kr/s kw/s
"iostat -xn" 명령어의 출력물에서는 다음과 같은 필드가 그래프로 만들어진다.
rw/s Krw/s runit wunit wait actv wsvc_t asvc_t svc_t %w %b r/s w/s kr/s kw/s
여기서 rw/s는 r/s + w/s이고 Krw/s는 Kr/s + Kw/s이다.
또한 각각의 읽기, 쓰기 당 전송되는 양(KB)을 runit과 wunit에 그래프로 만든다.
runit = Kr/s / r/s
wunit = Kw/s / w/s
iostat 명령어에 -xn 옵션을 사용하여 데이타를 수집하면, svc_t 값은 나오지 않는다.
이 값은 asvc_t와 wsvc_t 시간을 합하여 만든 값을 사용한다.
그래프의 그림에서 actv_disk 그래프는 데이타를 수집한 시점에 I/O가 있는 디스크의 개수를 표시한다.
total 그래프를 만들 때, svc_t 그래프는 I/O가 있는 디바이스(rw/s가 0이 아닌 디바이스)의 서비스 타임(svc_t)을 합하여,
I/O가 있는 디바이스 개수로 나눈 평균 서비스 타임을 보여준다.
(JSparm V10.0 이전에서는 서비스 타임의 합계를 보여주었음)
각각의 필드에 대한 의미는 iostat 메뉴얼 페이지를 참고한다.
# man iostat
iostat -x의 결과물에서 첫번째 데이타는 사용되지 않고, 두번째 데이타부터 사용된다.
첫번째 데이타는 시스템 부팅부터 지금까지 평균이며, 측정한 시점의 데이타에
대한 정확도가 없기 때문에 사용되지 않는다.
여기서 첫번째 데이타란 첫번째 그룹의 md0 에서 sd21 까지 5개 라인을 첫번째
데이타로 간주한다.
-s 옵션을 사용하여 시작하는 데이타의 위치를 지정할 수 있는데, 여기서 -s 10 이라고
지정하면 실제 데이타 파일에서는 11번째 데이타부터 그래프를 그린다.
위에서 설명했듯이 데이타 파일의 첫번째 데이타는 유효한 데이타로 간주하지 않는다.
데이타 파일에 #으로 시작하는 라인이 있으면 그 라인을 스킵한다.
09시 정각에 60초 간격으로 데이타를 수집하였다고 가정하면, 그래프 상에서
09시 01분에 표시된 값은 09시 00분 00초 부터 09시 01분 00초 동안의 초당값이다.
iostat -x의 출력물, iostat.log를 가지고 각 옵션에 대하여 설명한다.
명령어 | 설명 |
# giostat iostat.log |
옵션 없이 그래프를 만든다. -o 옵션을 지정하지 않으면, 디폴트로
iostat.gif 파일을 만든다. -d 옵션은 지정하지 않으면, 디폴트로
모든 개별 디스크에 대한 합계를 사용하여 그래프를 만든다.
"iostat -x"의 출력물에서 플로피 디스크(fd0)와 md 디스크는 제외된다.
(md 디스크는 다른 디스크와 중복으로 계산되기 때문이다)
|
# giostat -d all iostat.log |
-d all 옵션은 모든 디스크에 대하여 그래프를 만든다.
-d 옵션에는 그리고 싶은 디스크를 지정한다. 디스크의 이름(sd0 ..)
과는 별개로 all과 total과 max를 지정할 수 있다.
total은 -d 옵션을 지정하지 않은 경우의 디폴트이며,
각 디스크의 값을 합계한 수치로 그래프를 만든다.
max는 각각의 디스크에서 최대 값만 모아서 그래프를 만든다.
all은 total과 max를 포함하고 각각 디스크에 대하여 그래프를 만든다.
만들어진 그래프의 이름은 iostat_dev.gif이다. 예를 들면,
iostat.gif iostat_max.gif iostat_sd0.gif iostat_sd1.gif ...
-d all 옵션 사용하면, I/O가 있는 각각의 디스크에 대해 그래프를
만들어 주고, 각각의 필드에 대한 최대 값과 일부 합계와 디스크별로 전체 구간동안의
평균 서비스 타임을 정리한
iostat-iotbl.html 파일과
iostat-iotbl.txt 파일을 만들어 준다.
-z 옵션을 지정하면, I/O가 없는 디바이스에 대해서도 그래프를 만들어 준다.
-x 옵션을 지정하면 iostat-iotbl.html, iostat-iotbl.txt 파일을 만들지 않는다.
-xx 옵션을 지정하면 iostat-iotbl.html, iostat-iotbl.txt 파일 뿐만 아니라 'total' 그래프와 'max' 그래프도 만들지 않는다.
디바이스 명에 all 사용되고 -M 옵션을 지정하면, 각각의 디바이스에 대하여 그래프를 만들때, 각각의 그래프에
공통의 최대값, 최소값을 사용한다.
-M 옵션을 지정하지 않으면, 각각의 디바이스에 적절한 최대값, 최소값을 사용한다.
-X file 옵션을 지정하면, 각각의 디바이스 명에 별명을 지정할 수 있다.
file 의 형식은 다음과 같고, 한줄에 하나씩 지정할 수 있다.
device_name alias
공백으로 분리된 첫번째 단어가 디바이스명이 되고 그 나머지는 별명이 된다.
다음은 디바이스명에 별명을 지정한 예제이다.
sd0 c0t0d0s0
sd1 c0t1d0s0
|
-X file 옵션을 사용하기 전의 iostat_sd0.gif 파일의 내용에서 제목은 "iostat [sd0]" 이다.
위에 있는 내용을 사용하여 -X 옵션을 지정하면, iostat_sd0.gif 파일의 내용에서 제목은
"iostat [c0t0d0s0]" 로 표시된다.
디바이스 명에 슬래쉬(/)가 있으면, underline(_)으로 바꾸어 그래프 파일명으로 사용한다.
-d 옵션에 개별 디스크 명을 지정하면, 그 디스크에 대해서만 그래프를 만들어 준다.
디스크 명을 두개 이상 지정하면 iostat-iotbl.html 파일과 iostat-iotbl.txt 파일을 만들어 준다.
# giostat -d ssd0,ssd1,ssd2 iostat.log
|
위의 명령어는 ssd0 ssd1 ssd2 세개의 디스크에 대한 그래프를 만든다.
다음과 같이, 특정 디스크들에 대해서만 합계그래프나 최대값 그래프를 만들 수 있다.
# giostat -d all=ssd0,ssd1,ssd2 iostat.log
|
위의 명령어는 ssd0 ssd1 ssd2 세개의 디스크를 전체 디스크로 가정하고 그래프를 만든다.
all= 이 지정되어 있으므로 total 그래프, max 그래프. 각각 디스크 ssd0 ssd1 ssd2 에 대한 그래프를
만든다.
# giostat -d total=ssd0,ssd1,ssd2 iostat.log
|
위의 명령어는 ssd0 ssd1 ssd2 세개의 디스크를 전체 디스크로 가정하고 total 그래프를 만든다.
# giostat -d max=ssd0,ssd1,ssd2 iostat.log
|
위의 명령어는 ssd0 ssd1 ssd2 세개의 디스크를 전체 디스크로 가정하고 max 그래프를 만든다.
|
# giostat -B iostat.log |
-B 옵션은 막대 그래프를 만든다.
|
# giostat -t 090000 -i 60 iostat.log
# giostat -t 090000 -i 60 -l 0 iostat.log
# giostat -t 090000 -i 60 -N iostat.log
# giostat -t 090000 -i 60 -N -e 5 -n 120 iostat.log
|
-t 090000 -i 60 옵션은 그래프의 X축에 시간을 표시한다.
데이타를 수집한 시작 시간은 09시 00분 00초이고, 시간 간격은 60초이다.
-i 옵션과 함께 -l 0 옵션을 사용하면, 10 분 간격으로 회색 점선을 그린다.
-i 옵션과 함께 -N 옵션을 사용하면,
60 dot 간격으로 그래프의 하단에 시간(HH:MM:SS)을 표시한다.
-e 옵션과 함께 -N 옵션을 사용하면 그래프의 구간을 자세히 볼 수 있다.
|
# giostat -w 200 iostat.log |
-w 200 옵션은 그래프의 폭을 200 dot로 지정한다. 이 옵션이 지정되어
있지 않으면, 데이타의 개수 만큼의 폭을 차지하며, 그 폭이 480 dot 보다
적으면, 480 dot로 사용된다. -w 0 옵션을 지정하면, 실제 데이타 양 만큼의 폭으로 그래프를 만든다.
|
# giostat -s 100 -n 200 iostat.log |
-s 100 옵션은 100 번째 데이타부터 읽어 들인다.
-n 200 옵션은 200개의 데이타에 대해서만 그래프를 만든다.
-i 옵션과 함께 -s 옵션에서 다음과 같이 시간을 지정하면 그 시간부터
그래프를 그린다.
HHMMSS or HH:MM:SS
Exam) # giostat -i 60 -t 090000 -s 10:00:00 iostat.log
|
# giostat -e 10 -n 40 iostat.log
# giostat -e 10 -B -n 40 iostat.log
|
-e 10 옵션은 1 개의 데이타가 X축으로 10 dot의 간격을 가지게 한다.
-n 40 옵션은 40 개의 데이타로 그래프를 만든다.
|
# giostat -h 100 iostat.log |
-h 100 옵션은 각 단위 그래프의 높이가 100 dot의 크기를 가지게 한다.
|
# giostat -T "July 1" iostat.log |
-T "July 1" 옵션은 그래프의 상단에 제목을 쓰는데 사용된다.
-T "" 또는 -T . 옵션을 사용하면, 상단의 제목을 쓰지 않는다.
디폴트는 "iostat [%d]" 이다. %d는 디스크의 이름으로 대치된다.
|
# giostat -G rw/s,krw/s iostat.log |
-G rw/s,krw/s 옵션은 iostat 데이타 중에
rw/s krw/s 필드에 대한 그래프만 그려준다.
-G fn[:[[max][-min]][:title]][,fn[:[[max][-min]][:title]]]...
fn |
필드명을 지정한다.
필드명은 다음과 같다.
rw/s Krw/s runit wunit wait actv wsvc_t asvc_t svc_t
%w %b r/s w/s kr/s kw/s
(r/s, w/s, kr/s, kw/s 그래프는 명시적으로 지정하지 않으면 그래프가 그려지지 않는다)
|
[max][-min] |
그래프의 최대값과 최소값을 지정한다.
|
title |
그래프의 제목을 지정한다. 제목에 "."을 지정하면 그래프의 제목을 표시하지 않는다.
|
-G and -c option 에 대한 자세한 설명
|
# giostat -c gio.conf iostat.log |
-c gio.conf 옵션은 구성파일 gio.conf를
지정한다.
구성파일의 형식은 다음과 같으며, 한 라인에 하나의 필드를 정의한다.
fn[:[[max][-min]][:title]]
구성파일에는 각 그래프의 최대값과 최소값과 그래프 제목을 지정할 수 있다.
공백 라인과 '#' 문자로 시작하는 라인은 스킵된다.
fn |
필드명을 지정한다.
필드명은 다음과 같다.
rw/s Krw/s runit wunit wait actv wsvc_t asvc_t svc_t
%w %b r/s w/s kr/s kw/s
|
[max][-min] |
그래프의 최대값과 최소값을 지정한다.
|
title |
그래프의 제목을 지정한다. 제목에 "."을 지정하면 그래프의 제목을 표시하지 않는다.
|
-G and -c option 에 대한 자세한 설명
다음은 구성파일에 대한 예제이다.
rw/s::Read and Write per Second
rw/s:1000
rw/s:1000-500
rw/s:-500
rw/s:1000-500:Reads and Writes per Second
|
# giostat -C 00ffff:: iostat.log
# giostat -C :ff00ff:00cc00 iostat.log
|
-C 00ffff:: 옵션은 그래프의 배경 색으로 RGB #00ffff를 지정한다.
배경 색에는 transparent를 지정할 수 있다. 이 경우 그래프의 배경 색은
투명하게 된다.
-C :ff00ff:00cc00 옵션은 그래프의 선의 색을 RGB #ff00ff와 #00cc00으로 지정한다.
|
# giostat -W iostat.log |
-W 옵션은 HTML 페이지를 만든다. -o옵션을 사용하지 않으면,
디폴트로 "iostat.html" 파일이 생성된다. 이 HTML 파일에는 각 필드에 대한
최대 값이 하단에 정리되어 있다.
|
-O 옵션을 사용하며 iostat 명령어의 결과파일에서 필요한 필드만 지정한 디바이스 별로
뽑아 낼 수 있다.
# giostat -O r/s -d sd0,sd1,ssd14 iostat.log | head
# FIELD: r/s
sd0 sd1 ssd14
3.0 4.4 2.9
1.7 2.6 0.3
3.2 3.3 3.0
11.3 11.3 5.2
12.4 15.2 19.4
9.5 10.2 9.4
10.2 1.2 10.4
3.0 2.3 9.4
# giostat -O w/s -d sd0,sd1,ssd14 iostat.log | head
# FIELD: w/s
sd0 sd1 ssd14
0.6 2.1 2.4
0.0 2.0 14.3
0.0 1.8 14.3
0.0 1.9 14.3
1.1 3.3 8.5
0.0 1.9 8.5
2.0 2.0 8.5
1.3 1.3 8.5
# giostat -O r/s+w/s -d sd0,sd1,ssd14 iostat.log | head
# FIELD: r/s+w/s
sd0 sd1 ssd14
3.6 6.5 5.3
1.7 4.6 14.6
3.2 5.1 17.3
11.3 13.2 19.5
13.5 18.5 27.9
9.5 12.1 17.9
12.2 3.2 18.9
4.3 3.6 17.9
|
다음의 그래프는 위에 있는 마지막 데이타(r/s+w/s)를 가지고
mkgraph 명령어를 사용하여
각각의 디스크에 대한 데이타를 하나의 그래프에 그렸다.
# mkgraph -1 sum -H -G +::rw/s -e 5 -w 200 -o gr-io io.out
# mkgraph -1 sum -B -H -G +::rw/s -e 5 -w 200 -o gr-io-B io.out
|
|
-,
옵션을 지정하면 그래프의 Y축 숫자에 3자리 마다 콤마를 추가한다.
|
-0 옵션은
그래프의 시작값(Y축)을 0부터 시작한다. 디폴트로 그래프의 시작값은 데이타의 최소값과 최대값에 따라 결정된다.
|
-b
옵션은 츨력되는 이미지에 외곽선을 그린다.
|
-d dev[,dev]...
옵션은 그래프를 만들 디스크 명을 지정한다. 형식은 다음과 같다.
dev: one of 'all' 'total' 'max'
dev: sd0[,sd1]...
dev: all=sd0,sd1...
dev: total=sd0,sd1...
dev: max=sd0,sd1...
디스크 이름 대신에 디스크 이름을 가지고 있는 파일명을 지정할 수 도 있다.
디스크 명이 있을 자리에 '+' 로 시작하는 단어는 파일명으로 간주하여 그 파일에 있는 내용을 읽어들인다.
파일에는 한줄에 하나씩 디스크 명을 지정하여야 한다.
# cat diskfile
ssd1
ssd2
ssd3
# giostat -d +diskfile,ssd10 iostat.log
# giostat -d ssd1,ssd2,ssd3,ssd10 iostat.log
|
위의 두개의 giostat 명령어는 동일한 결과를 갖는다.
|
-f
옵션을 사용하면, 각 필드명 앞에 device 명을 붙인다.
예) svc_t: service time ---> [sd0] svc_t: service time
|
-o outfile
옵션은 출력될 그래프의 파일명을 지정한다. 디폴트는 "iostat"이다.
실제 출력될 파일명에는 ".gif" 가 추가된다. 따라서 디폴트로 생성될 파일명은 "iostat.gif" 가 된다.
|
-D directory
옵션은 출력될 그래프를 만들 디렉토리명을 지정한다. 디폴트는 "."이다.
지정한 디렉토리가 없으면 새로 만들어 준다. 단 최하단의 디렉토리만 만든다.
|
-l n
옵션은 출력될 그래프에 n 간격의 데이타에 회색 점선을 그린다.
n이 0이고 -i 옵션과 함께 사용하면 10 분 간격으로 회색 점선을 그린다.
|
-L toplabel
옵션을 사용하여, 그림의 상단에 배경색을 회색으로 하는 글자를 표시할 수 있다.
|
-m
옵션은 선택된 각 필드에 대한 최대 값을 출력한다.
|
-P
옵션은 각각의 그래프의 우측에 표시될 최대값과 최소값을 다음과 같은 형식으로
표준출력으로 출력한다.
fn:max-min
이때 그래프는 만들지 않는다. 표준출력으로 출력되는 값을 리다이렉트(redirect)하여
파일로 저장하면, -c 옵션에 구성파일로 사용할 수 있다.
iostat 명령어로 여러 개의 파일을 만들었을 경우에 각각에 대하여
그래프를 그리면, 그래프의 최대값과 최소값은 수집된 데이타에 의해 자동으로
의해 결정된다.
만일 3개의 파일이 있다고 가정하면, 각각의 파일들이 최대값과 최소값이 다를 수
있다. 이 경우 3개의 데이타를 그래프 상에서 비교할 때, 최대값과 최소값이 다르기
때문에 비교하기가 어려울 수 있다.
이러한 경우, -P 옵션을 사용하여 각각 수집된 데이타 파일에 대하여 최대값 및 최소값을
구해서 공통된 최대값과 최소값을 구성파일로 만들어 -c 옵션에 구성파일로
지정하여 다시 3개의 파일에 대하여 그래프를 그리면 공통된 최대값과 최소값을
가지는 3개의 그래프 파일을 만들 수 있다.
다음은 -P 옵션을 사용한 결과 화면이다.
# giostat -P iostat.log
rw/s:50-0
Krw/s:500-0
runit:10-0
wunit:10-0
wait:10-0
actv:10-0
svc_t:50-0
%w:100-0
%b:100-0
|
-P 옵션의 결과값을 저장한 파일은 adjmaxmin 명령어에 의해
가공되어 구성파일로 사용될 수 있다.
| -p
옵션은 "# iostat -xn" 명령어로 수집한 데이타에 대하여 그래프를 그린다.
-p 옵션을 지정하지 않아도 파일을 내용을 보고 제대로 처리하여 준다.
|
-S skiplist
-S 옵션을 사용하여 데이타로 사용되지 않는 입력라인을 제거할 수 있다.
file속에 있는 내용 중에 데이타가 아닌 라인이 있을 경우, -S 옵션을 사용하여,
그 라인에서 시작하는 문자열을 지정하여 스킵할 수 있다.
스킵하고 싶은 문자열이 여러 개가 있을 경우에 콤마(,)로 구분한다.
지정한 문자열과 입력 데이타 라인과 비교하여, 일치하면 그 라인을 스킵한다.
입력 라인에서 시작 부분의 whitespace (공백 또는 탭)는 비교되지 않는다.
Solars 11 버전의 iostat 명령어에는 -T 옵션을 사용하여 시간 정보를 출력할 수 있는데,
iostat 명령어에 -T 옵션을 사용하여 데이타를 수집했다면, -S 옵션을 사용하여 그 정보를 제거하여야 한다.
|
-V
-V 옵션을 지정하면, 명령어의 버전 정보를 보여준다.
|
-v
옵션은 그래프를 만들지 않고 데이타 파일에 있는 값을 출력한다.
|
-y
옵션은 -c config 옵션과 함께 사용될 수 있다. 이 옵션을 지정하면 config 파일에
알 수 없는 필드명이 있을 때, 프로세스를 종료하지 않고 그 필드명을 스킵한다.
|
-d all옵션에 -z옵션을 지정하지 않으면 I/O가 없는 디바이스에 대해서는 그래프를 만들지 않는다.
트래픽이 없다는 것은 r/s 과 w/s 컬럼에 값이 모두 0(zero)인 것을 말한다.
|
|