mkrep.sh
사용법
mkrep.sh [options] { overview | simple | simple_each } [title]
mkrep.sh [options] [-I][-K][-M][-S] stat [title]
mkrep.sh [options] -G fn[,fn...] custom [title]
mkrep.sh [options] -P
overview HTML top page (index_overview.html)
simple HTML top page (index_simple.html)
simple_each HTML top page (index_simple.html)
stat HTML top page (index_stat.html)
custom HTML top page (index_custom.html)
Options:
-I make all device graphs for iostat when using stat
-K make all network interface graphs for netinfo when using stat
-M make all CPU graphs for mpstat when using stat
-S make HTML page with detailed values using psinfo.log when using stat
-0 zero based graph
-, put a comma in graph number
-B bar graph
-b draw border line
-c config configuration file
-D outdir output directory; def: .
-e dots X-axis extension
-G fn[,fn,...] draw graphs for the specified fields
fn (in vmstat.log): cpu r b w swap free re mf pio fr de sr in sy cs
fn (in iostat.log): rw/s krw/s runit wunit wait actv svc_t %w %b
fn (in mpstat.log): mpcpu minf mjf xcal intr ithr csw icsw migr smtx srw syscl
fn (in netinfo.log): pkt data err coll
fn (in psinfo.log): proc start end zomb run lwp load allcpu ptime maxwcpu allhs maxhs maxsz maxrss d-allcpu d-maxwcpu
-h height height per graph
-i index index file name; def: index_???.html
-l n draw vertical line on graph every n'th data
-N write time info(HH:MM:SS) at the bottom of the graph
-n count count of data to be processed
-P print only maximum value and minimum value for each field
-r preserve temporary file(t1_psinfo.tmp) of psinfo.log
-s start starting data to be processed
-v print commands to be run for making graphs
-w width width of the graph
-x abort on errors
-z draw graph for unused device
설명
mkrep.sh는 getdata 명령어로 수집한 데이타에 대하여
HTML 페이지를 만들어 준다.
mkrep.sh는 getdata 명령어로 데이타를 수집한 디렉토리 안에서 실행하여야
하며 그 디렉토리에는 "data_info" 라는 파일이 있어야 한다.
이 파일은 getdata 명령어에
의해 생성되며, mkrep.sh가 사용할 수 있는 정보가 들어 있다.
이 파일이 없을 경우에 다음과 같은 오류 메세지가 출력된다.
# mkrep.sh simple Junsoft
ERROR: there is no control file
|
title은 생성될 HTML의 제목으로 사용된다.
다음은 getdata 명령어로 데이타를 수집하여 mkrep.sh로
가공하는 예제이다.
# getdata -A -i 60 -t 8
Start to gather system info: interval 60 seconds, time: 8
Collecting data: vmstat mpstat iostat netinfo psinfo
Data directory: ./data.20070308.090000.60
# ls -F
data.20070308.090000.60/
# cd data.20070308.090000.60
# mkrep.sh simple Junsoft
Top web page is index_simple.html
|
mkrep.sh 명령어는 getdata
명령어로 수집한 데이타에 대하여, GIF 파일과 HTML 파일을 현재 디렉토리에 만들어
준다.
그 중에 index_simple.html 파일은 전체를 보여주는
HTML 파일이다.
시스템에 netscape가 있을 경우, 다음과 같은 명령어로
index_simple.html 파일을 볼 수 있다.
# netscape file:///`pwd`/index_simple.html
리모트 시스템에서 이 파일을 액세스하려면, 다음과 같이 미니
웹 서버(gwserv)를 실행하여 액세스할 수 있다.
# gwserv
gwserv is started on port 8008
|
gwserv는 현재 디렉토리를 도큐멘트 루트 디렉토리로 사용하여 TCP 포트 8008 번에
미니 웹서버를 실행한다.
이 경우에 리모트 시스템에서는 다음과 같은 URL로 index_simple.html을
액세스할 수 있다.
(이 시스템 명은 dragon이다.)
http://dragon:8008/index_simple.html
mkrep.sh는 vmstat.log, mpstat.log, iostat.log netinfo.log, psinfo.log에 대해서만 처리해준다.
sadc.log는 gsar 명령어로 직접 처리하여야 한다.
getdata 명령어는 디폴트로 vmstat, mpstat, iostat netinfo 명령어의
결과를 저장해 준다.
psinfo나 sar에 대한 데이타도 수집하고 싶으면 getdata 명령어의
-G 옵션을 사용하여 지정할 수 있다.
-G 옵션에 'p' 를 추가하거나 -p 옵션을 지정하면,
psinfo.log에는 CPU 사용량이 많은 순으로 5개와 heap+stack의 값이 큰 순서로 5개의 프로세스의
정보가 저장된다. getdata 명령어에서 -A 옵션을 지정하면
모든 프로세스의 정보를 저장한다.
vmstat.log, mpstat.log, iostat.log netinfo.log, psinfo.log 파일은 각각
gvmstat,
gmpstat,
giostat,
gnetinfo,
gpsinfo
명령어를 사용하여 직접 처리할 수 있다.
data_info 파일이 있는 경우, start_time과 interval 정보를 이 파일에서 얻어온다.
다음은 data_info파일의 예제이다.
#
# Do NOT edit it manually
#
HOST: dragon
OS_VERSION: 5.8
START_DATE: 20027/03/08.090000
INTERVAL: 60
TIME: 8
COUNT: 480
SELOPT: vminp
END_DATE: 2007/03/08.170000
STATUS: SUCCESS
|
그 중에 HOST, START_DATE, INTERVAL은 mkrep.sh 명령어가 HTML 페이지를 만드는데
사용된다.
gvmstat,
gmpstat
giostat,
gnetinfo,
명령어로
09시 정각에 60초 간격으로 데이타를 수집하였다고 가정하면, 그래프 상에서
09시 00분 60초에 표시된 값은 09시 00분 00초 부터 09시 00분 60초 동안의 초당값이다.
psinfo 명령어의 경우는 초당 값이 아니고 해당 시간에 측정한 값이다.
데이타를 수집한 후에 맨 먼저 "# mkrep.sh stat" 명령어로 가공하여 각각의
그래프에 대하여 살펴보고, 개략적인 문제가 무엇인지 파악하고, 문제점이
발견되었으면, 리포트 자료를 만들기 위해서 필요한 그래프만을 뽑아서
보고서를 만들면 된다.
이때 mkrep.sh 명령어의 -G 옵션에 그리고 싶은 그래프 명을
콤마로 분리하여 지정하고 custom 키워드를 지정하면 선택된 그래프만
그려준다.
다음과 같이 getdata 명령어로 수집한 데이타에 대하여
mkrep.sh 의 사용 예제이다.
# mkrep.sh overview |
vmstat, iostat, netinfo 명령어의 결과 파일에서, 다음과 같은 필드를
선택하여 하나의 HTML 페이지로 만들어 준다.
cpu, r, free, swap, sr, (vmstat)
rw/s, krw/s, (iostat)
pkt, data (netinfo)
생성된 HTML 페이지 파일명은 "index_overview.html" 이다.
|
# mkrep.sh simple |
simple은 vmstat, iostat, netinfo 명령어의 결과 파일을 가공하여
다음과 같은 내용을 하나의 HTML 페이지로 보여준다.
- CPU & Process
- Memory
- Total I/O
- Network
- Process
simple_each은 가공한 파일을 각각의 HTML 페이지로 보여준다.
생성된 HTML 페이지 파일명은 "index_simple.html" 이며, 시스템
사용현황에 대한 리포트로 알맞다.
|
# mkrep.sh stat |
getdata 명령어는 디폴트로
vmstat, iostat, netinfo, mpstat 명령어의 결과를 파일로 저장한다.
다음과 같은 페이지로 보여준다.
- vmstat
- iostat
- netinfo
- mpstat
- psinfo
생성된 HTML 페이지 파일명은 "index_stat.html" 이다.
iostat에는 전체 I/O 디바이스에 있는 값을 모두 더하여 하나의 그래프로 만든다.
netinfo에는 전체 network interface에 있는 값을 모두 더하여 하나의 그래프로 만든다.
mpstat에는 전체 CPU이 있는 값을 모두 더하여 하나의 그래프로 만든다
(그러나 [cpu: cpu usage] 필드는 백분률로 나타낸다).
-I 옵션을 사용하면 iostat.log 파일을 사용하여 각각의 I/O 디바이스에 대한
그래프를 추가적으로 그려준다.
I/O 디바이스가 많을 경우에 상당히 많은 시간이 걸린다. 개별 디스크 하나에 대한 그래프를
만들 때마다 iostat.log 파일을 전부 읽어 들이기 때문이다.
iostat   [all I/Os]
현재 디렉토리에 diskname 파일이 있으면 giostat 명령어를 실행할 때, -X 옵션의 인수로
사용한다. 즉, diskname 파일에 디스크명의 별병을 지정할 수 있다.
-K 옵션을 사용하면 netinfo.log 파일을 사용하여 각각의 network interfavce에 대한
그래프를 추가적으로 그려준다.
netinfo [all interfaces]
현재 디렉토리에 interfacename 파일이 있으면 gnetinfo 명령어를 실행할 때, -X 옵션의 인수로
사용한다. 즉, interfacename 파일에 네트웍 인터페이스명의 별병을 지정할 수 있다.
-M 옵션을 사용하면 각각의 CPU에 대한 그래프를 추가적으로 그려준다.
mpstat   [all CPUs]
-S 옵션을 사용하면 psinfo.log 파일을 사용하여 시간대 별로 세부적인 데이타를 보여준다.
psinfo [process detail]
다음은 -I -K -M -S 내개의 모든 옵션을 사용하여 그래프를 만든 예제이다.
# mkrep.sh -I -K -M -S stat
Top web page is index_stat.html
|
|
# mkrep.sh -G fn[,fn,..] custom |
stat를 지정하여 vmstat, mpstat, iostat, netinfo, psinfo 명령어의 결과물에 대하여 그래프를 그렸는데,
그 중에 몇몇의 값만 추출하여 그래프를 많을 경우에 custom이 사용된다.
custom이 지정되었을 경우 반드시 -G 옵션에 그리고 싶은 그래프 필드명을 지정하여야 한다.
필드명은 다음과 같다.
(in vmstat.log): cpu r b w swap free re mf pio fr de sr in sy cs
(in iostat.log): rw/s krw/s runit wunit wait actv svc_t %w %b
(in mpstat.log): mpcpu minf mjf xcal intr ithr csw icsw migr smtx srw syscl
(in netinfo.log): pkt data err coll
(in psinfo.log): proc start end zomb run lwp load allcpu ptime maxwcpu allhs maxhs maxsz maxrss d-allcpu d-maxwcpu
예를 들어, vmstat에 있는 cpu, b, swap, free 와 iostat에 있는 rw/s, Krw/s와
netinfo에 있는 pkt에 대해서만 그래프를 한 페이지로 만들려면 다음과 같이 할 수 있다.
# mkrep.sh -G cpu,b,swap,free,rw/s,Krw/s,pkt custom Junsoft
Top web page is index_custom.html
|
생성된 HTML 페이지 파일명은 "index_custom.html" 이다.
|
다음은 각 옵션에 대한 설명이다.
옵션 | 설명 |
-I |
-I 옵션을 지정하면, iostat.log 파일을 사용하여 개별 I/O 디바이스에 대해 각각 그래프를 만든다.
|
-K | -K 옵션을 지정하면, netinfo.log 파일을 사용하여
개별 네트웍 인터페이스에 대해서 그래프를 만들어 준다.
|
-M |
-M 옵션을 사용하면 mpstat.log 파일을 사용하여 각각의 CPU에 대한 그래프를 추가적으로 그려준다.
|
-S |
-S 옵션을 사용하면, psinfo.log 파일을 가공하여 시간대별로 자세한 정보를 보여주는 HTML 파일을
만들어 준다. 생성되는 파일명은 psinfo_detail.html 이다.
|
|
-0 |
그래프의 시작값(Y축)을 0부터 시작한다. 디폴트로 그래프의 시작값은 데이타의 최소값과 최대값에 따라 결정된다.
|
-, |
-, 옵션을 지정하면 그래프의 Y축 숫자에 3자리 마다 콤마를 추가한다.
|
-B | 막대 그래프를 만든다. |
-b | 옵션은 츨력되는 이미지에 외곽선을 그린다. |
-c config |
구성파일의 형식은 다음과 같으며, 한 라인에 하나의 필드를 정의한다.
fn[:[[max][-min]][:title]]
구성파일에는 각 그래프의 최대값과 최소값과 그래프 제목을 지정할 수 있다.
공백 라인과 '#' 문자로 시작하는 라인은 스킵된다.
fn |
필드명을 지정한다.
필드명은 다음과 같다.
cpu r b w swap free re mf pio fr de sr in sy cs
rw/s krw/s runit wunit wait actv svc_t %w %b
mpcpu minf mjf xcal intr ithr csw icsw migr smtx srw syscl
pkt data err coll
proc zomb run lwp allcpu ptime load allhs maxhs maxsz maxrss maxwcpu
|
[max][-min] |
그래프의 최대값과 최소값을 지정한다.
|
title |
그래프의 제목을 지정한다. 제목에 "."을 지정하면 그래프의 제목을 표시하지 않는다.
|
-G and -c option 에 대한 자세한 설명
|
-D outdir |
이 옵션은 출력될 그래프를 만들 디렉토리명을 지정한다. 디폴트는 "."이다.
지정한 디렉토리가 없으면 새로 만들어 준다. 단 최하단의 디렉토리만 만든다.
|
-e dot | 1개의 데이타가 차지하는 X축의 크기(dot) 지정한다. |
-h height | 그래프의 높이를 지정한다. |
-i index | 출력될 index 파일명을 지정한다.
디폴트는 지정한 인수에 따라 다음과 같다.
overview --> index_overview.html
simple --> index_simple.html
simple_each --> index_simple.html
stat --> index_stat.html
custom --> index_custom.html
# mkrep.sh -i junsoft.html simple Junsoft
|
|
-N |
-i 옵션과 함께 -N
옵션을 사용하면, 그래프의 하단에 일정 간격으로 시간(HH:MM:SS)을 표시한다.
|
-l n |
이 옵션은 출력될 그래프에 n 간격의 데이타에 회색 점선을 그린다.
n이 0이고 -i 옵션과 함께 사용하면 10 분 간격으로 회색 점선을 그린다.
|
-n count | 그래프의 그릴 데이타의 개수를 지정한다. |
-P |
-P 옵션은 각각의 그래프의 우측에 표시될 최대값과 최소값을 다음과 같은 형식으로
표준출력으로 출력한다. 이때 그래프는 만들어지지 않는다.
fn:max-min
표준출력으로 출력되는 값을 리다이렉트(redirect)하여
파일로 저장하면, -c 옵션에 구성파일로 사용할 수 있다.
getdata 명령어로 여러 번 데이타를 수집하여
그래프를 만들었을 경우에 각각에 대하여
그래프를 그리면, 그래프의 최대값과 최소값은 수집된 데이타에 의해 자동으로
결정된다.
만일 세번 데이타를 수집했다면, 각각의 파일들의 최대값과 최소값이 다를 수
있다. 이 경우 3개의 데이타를 그래프 상에서 비교할 때, 최대값과 최소값이 다르기
때문에 비교하기가 어려울 수 있다.
이러한 경우, -P 옵션을 사용하여 각각 수집된 데이타 파일에 대하여 최대값 및 최소값을
구해서 공통된 최대값과 최소값을 구성파일로 만들어 -c 옵션에 구성파일로
지정하여 다시 세차례 수집한 데이타에 대하여 그래프를 그리면 공통된 최대값과 최소값을
가지는 그래프 파일들이 만들어진다.
-P 옵션을 사용하여 츨력된 결과값을 저장한 파일을 adjmaxmin 명령어로 가공하여
-c 옵션에서 구성파일로 사용할 수 있다.
다음은 -P 옵션을 사용하는 예제이다.
# ls
data.20080301.000000.60
data.20080302.000000.60
data.20080303.000000.60
# cd data.20080301.000000.60
# mkrep.sh -P > ../max
# cd ../data.20080302.000000.60
# mkrep.sh -P >> ../max
# cd ../data.20080303.000000.60
# mkrep.sh -P >> ../max
# cd ..
# adjmaxmin max > max.conf
# cd data.20080301.000000.60
# mkrep.sh -c ../max.conf stat
# cd ../data.20080302.000000.60
# mkrep.sh -c ../max.conf stat
# cd ../data.20080303.000000.60
# mkrep.sh -c ../max.conf stat
|
|
-r |
psinfo.log 파일을 가공하여 그래프를 만들때, 그래프를 만들기 위한 중간파일을 만드는데
이 파일은 그래프를 만들고 나면 지워진다.
-r 옵션을 지정하면 이 파일을 지우지 않고 남겨둔다.
이 파일명은 t1_psinfo.tmp 이다.
|
-s start | 시작할 데이타를 지정한다.
|
-w width | 그래프의 폭을 지정한다. |
-v |
mkrep.sh 는 수집한 데이타에 대해 그 데이타를 가공할 수 있는 명령어를 실행하여 그래프를 만든다.
-v 옵션을 지정하면 수행되는 명령어를 다음과 같이 표준출력에 출력한다.
# mkrep.sh -v stat
gvmstat -T "vmstat - 2008/05/04" -D . -i 60 -t 012159 -W vmstat.log
giostat -T "iostat [%d] - 2008/05/04" -D . -i 60 -t 012159 -W iostat.log
gnetinfo -T "netinfo [%i] - 2008/05/04" -D . -i 60 -t 012159 -W netinfo.log
gmpstat -T "mpstat [%c] - 2008/05/04" -D . -i 60 -t 012159 -W mpstat.log
psparse -F psinfo.log > t1_psinfo.tmp
mkgraph -T "psinfo - 2008/05/04" -D . -i 60 -t 012159 -o psinfo
-F /opt/JSparm/config/process.cfg t1_psinfo.tmp
Top web page is index_stat.html
|
|
-x | -x 옵션을 지정하면, 명령어를 실행하는 도중에 오류가 발생하면
더 이상 진행하지 않고 실행을 멈춘다.
|
-z | -I 옵션을 사용하면 각각의 디스크에 대하여
그래프를 만드는데 이때 I/O가 없는 디바이스에 대해서는 그래프를 만들지 않는다.
-K 옵션을 지정하면 개별 네트웍 인터페이스에 대하여 그래프를 만드는데, 트래픽이 없는
네트웍 인터페이스에 대해서는 그래프를 만들지 않는다.
-z옵션을 지정하면 I/O가 없는 디바이스나 트래픽이 없는 네트웍 인터페이스에 대해서도
그래프를 만든다.
|
|