gsar

   gsar

  사용법


	gsar [options] file

	Options are as follows:

	-?                   print this help
	-,                   put a comma in graph number
	-0                   zero based graph
	-a                   draw graphs for all the disks
	-B                   bar graph
	-b                   draw border line
	-c config            configuration file for maximum values and titles
	-C bg:c1:c2:c3       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
				 c3: foreground color3; def: 00ff00
	-D directory         output directory; def: .
	-e dot               X-axis extension
	-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                   is obsolete
	-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 prefix            output file prefix; def: 'sar'
	-P                   print only maximum value and minimum value for each field
	-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 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

	file                 output of "sar -A -f sar-data" command
  설명

gsar는 "# /usr/lib/sa/sadc 180 480 output" 명령어 또는 "sar -o output 180 480"의 출력을 저장한 output 파일을
"# sar -A -f output > file" 명령어를 사용하여 만든 file을 읽어 들여, 주요 필드에 대하여 GIF 파일포멧의 그래프와 HTML 페이지를 만든다.

# sar -A -f output > file
# gsar -W -a file
-W 옵션은 각각의 그래프에 대하여 HTML 파일을 만들어 주는데, 상위 HTML 파일은 sar_index.html 파일이다.

sar의 출력파일(file)은 다음과 같은 형태이다.

SunOS dragon 5.6 Generic_105181-11 sun4u    07/07/99

00:00:00    %usr    %sys    %wio   %idle
00:03:00      14       6       0      80
00:06:00      16       7       0      77
00:09:00      16       7       0      77
... skip ...

00:00:00   device        %busy   avque   r+w/s  blks/s  avwait  avserv

00:03:00   sd0               0     0.0       0       0     0.0     0.0
           sd1               0     0.0       0       0     0.0     9.7
           sd2               2     0.2       2      29     0.0   103.7
           sd3               0     0.0       0       0     0.0    17.2

00:06:00   sd0               0     0.0       0       0     0.0     0.0
           sd1               0     0.0       0       0     0.0    16.4
           sd2               2     0.2       2      31     0.0    96.9
           sd3               0     0.0       0       0     0.0    13.5

00:09:00   sd0               0     0.0       0       0     0.0     0.0
           sd1               0     0.0       0       1     0.0    10.1
           sd2               3     0.2       3      49     0.0    67.1
           sd3               0     0.0       0       0     0.0     0.0
... skip ...


00:00:00 runq-sz %runocc swpq-sz %swpocc
00:03:00     1.2      11                
00:06:00     2.4      11                
00:09:00     1.1      10                
... skip ...

00:00:00 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
00:03:00       0      96     100      14      40      66       0       0
00:06:00       0      84     100      14      44      68       0       0
00:09:00       0     105     100      14      43      67       0       0
... skip ...

00:00:00 swpin/s bswin/s swpot/s bswot/s pswch/s
00:03:00    0.00     0.0    0.00     0.0    5418
00:06:00    0.00     0.0    0.00     0.0    5092
00:09:00    0.00     0.0    0.00     0.0    5174
... skip ...

00:00:00 scall/s sread/s swrit/s  fork/s  exec/s rchar/s wchar/s
00:03:00    9603     476     374    4.89    4.93  608001  690975
00:06:00    9772     687     355    5.02    4.90  790254  717396
00:09:00    9894     533     405    5.04    5.33 1133477  770481
... skip ...

00:00:00  iget/s namei/s dirbk/s
00:03:00      84     632     257
00:06:00      85     657     370
00:09:00      92     711     327
... skip ...

00:00:00 rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s
00:03:00       1       0     690       0       0       0
00:06:00       3       0     691       0       0       0
00:09:00       1       0     742       0       0       0
... skip ...

00:00:00  proc-sz    ov  inod-sz    ov  file-sz    ov   lock-sz
00:03:00  337/4106    0 10802/10802    0 3249/3249    0    0/0   
00:06:00  340/4106    0 10802/10802    0 3289/3289    0    0/0   
00:09:00  339/4106    0 10802/10802    0 3236/3236    0    0/0   
... skip ...

00:00:00   msg/s  sema/s
00:03:00    0.00   54.97
00:06:00    0.00   80.29
00:09:00    0.00   69.07
... skip ...

00:00:00  atch/s  pgin/s ppgin/s  pflt/s  vflt/s slock/s
00:03:00    0.03   19.84   28.43  444.43  467.56    0.00
00:06:00    0.01   22.25   32.26  483.62  512.78    0.00
00:09:00    0.01   20.07   28.36  464.61  483.71    0.00
... skip ...

00:00:00  pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf
00:03:00     0.00     0.00     0.00     0.00    60.24
00:06:00     0.00     0.00     0.00     0.00    74.97
00:09:00     0.00     0.00     0.00     0.00    70.82
... skip ...

00:00:00 freemem freeswap
00:03:00   20421 10448179
00:06:00   20193 10442873
00:09:00   19585 10436763
... skip ...

00:00:00 sml_mem   alloc  fail  lg_mem   alloc  fail  ovsz_alloc  fail
00:03:00 33095680 26229688     0 77578240 69259656     0    13025280     0
00:06:00 33095680 26342468     0 77586432 69958296     0    13025280     0
00:09:00 33095680 26275412     0 77602816 70462712     0    13025280     0
... skip ...

각각의 필드에 대한 의미는 sar 메뉴얼 페이지를 참고한다.(# man sar)

sar의 출력물에서 다음과 같은 필드가 선택되어 그래프를 만드는데 사용된다.

CPU & Process
cpu(%usr+%sys), runq-sz, swpq-sz, proc-sz
Memory & Paging Activity
freemem, freeswap, pgio/s(pgin/s+pgout/s), ppgio/s(ppgin/s+ppgout/s), pgfree/s, pgscan/s
I/O   [all I/Os]
%busy, avque, r+w/s, blks/s, avwait, avserv
System Call
scall/s, srw/s(sread/s+swrit/s),
fork/s, exec/s, rwchar/s(rchar/s+wchar/s)
Buffer Activity
read/s(bread/s+lread/s), %rcache, writ/s(bwrit/s+lwrit/s),
%wcache, prw/s(pread/s+pwrit/s)
IPC
msg/s, sema/s
Kernel Memory Allocation
sml_mem, alloc, fail,
lg_mem, alloc, fail
ovsz_alloc, fail
Swapping & Switching Activity
swpin/s, bswin/s, swpot/s, bswot/s
pswch/s
File Access
iget/s, namei/s, dirbk/s
TTY Device Activity
rawch/s, canch/s, outch/s, rcvin/s, xmtin/s, mdmin/s
Process & Inode & File table
proc-sz, ov, inod-sz, ov, file-sz, ov, lock-sz
 

  "# sar -A -f output"의 출력물, sar.log를 가지고 각 옵션에 대하여 설명한다.

명령어 설명
# gsar sar.log 옵션 없이 그래프를 만든다. -o 옵션을 지정하지 않으면, 디폴트로 prefix가 sar_가 붙는 gif 파일들을 만들어 준다.
	sar_ba.gif      sar_io.gif      sar_mem.gif
	sar_swap.gif	sar_cpu.gif     sar_ipc.gif
	sar_pif.gif     sar_tty.gif	sar_fa.gif
	sar_kma.gif     sar_scall.gif
-W 옵션을 사용하지 않으면, HTML 파일을 만들지 않는다.
# gsar -B sar.log -B 옵션은 막대 그래프를 만든다.
# gsar -t 090000 -i 30 sar.log -t 090000 -i 30 옵션은 데이타를 수집한 시간을 명시적으로 지정한다. 이 옵션이 없으면, 시작 시간과 간격을 파일에서 찾아낸다. 데이타를 수집한 시작 시간은 09시 00분 00초이고, 시간 간격은 30초이다.
# gsar -w 200 sar.log -w 200 옵션은 그래프의 폭을 200 dot로 지정한다. 이 옵션이 지정되어 있지 않으면, 데이타의 개수 만큼의 폭을 차지하며, 그 폭이 480 dot 보다 적으면, 480 dot로 사용된다. -w 0 옵션을 지정하면, 실제 데이타 양 만큼의 폭으로 그래프를 만든다.
# gsar -s 100 -n 200 sar.log -s 100 옵션은 100 번째 데이타부터 읽어 들인다. -n 200 옵션은 200개의 데이타에 대해서만 그래프를 만든다.

-i 옵션과 함께 -s 옵션에서 다음과 같이 시간을 지정하면 그 시간부터 그래프를 그린다.

HHMMSS or HH:MM:SS Exam)     # gsar -i 30 -t 090000 -s 10:00:00 sar.log
# gsar -e 10 -n 40 sar.log -e 10 옵션은 1 개의 데이타가 X축으로 10 dot의 간격을 가지게 한다. -n 40 옵션은 40 개의 데이타로 그래프를 만든다.
# gsar -h 100 sar.log -h 100 옵션은 각 단위 그래프의 높이가 100 dot의 크기를 가지게 한다.
# gsar -C 00ffff::: sar.log

# gsar -C :ff00ff:00cc00:ff00ff sar.log

-C 00ffff::: 옵션은 그래프의 배경 색으로 RGB #00ffff를 지정한다. 배경 색에는 transparent를 지정할 수 있다. 이 경우 그래프의 배경 색은 투명하게 된다.

-C :ff00ff:00cc00:ff00ff 옵션은 그래프의 선의 색을 RGB #ff00ff와 #00cc00과 #ff00ff로 지정한다.

# gsar -W sar.log -W 옵션은 HTML 페이지를 만든다. -o옵션을 사용하여 prefix를 지정하지 않으면, 디폴트로 "sar_" 라는 prefix가 붙는다. 이 HTML 파일에는 각 필드에 대한 최대 값이 하단에 정리되어 있다.
sar_index.html이 gsar의 top page이다.
# gsar -a -W sar.log -a 옵션은 각 디스크에 대한 그래프도 함께 만들어 준다. 각 디스크에서 최대 값만을 모아서 만든 가상의 max 그래프도 포함되어 있다.
-, 옵션을 지정하면 그래프의 Y축 숫자에 3자리 마다 콤마를 추가한다.
-0 옵션은 그래프의 시작값(Y축)을 0부터 시작한다. 디폴트로 그래프의 시작값은 데이타의 최소값과 최대값에 따라 결정된다.
-b 옵션은 츨력되는 이미지에 외곽선을 그린다.
-c sar.conf 옵션은 구성파일를 지정한다.

	# gsar -c sar.conf file 

구성파일의 형식은 다음과 같으며, 한 라인에 하나의 필드를 정의한다.

fn[:[[max][-min]][:title]] 구성파일에는 각 그래프의 최대값과 최소값과 그래프 제목을 지정할 수 있다. 공백 라인과 '#' 문자로 시작하는 라인은 스킵된다.

fn 필드명을 지정한다. 필드명은 다음과 같다.

cpu runq-sz swpq-sz freemem freeswap pgio/s ppgio/s pgfree/s pgscan/s scall/s
srw/s fork/s exec/s rwchar/s read/s %rcache writ/s %wcache prw/s msg/s
sema/s sml_mem sml_alloc sml_fail lg_mem lg_alloc lg_fail ovsz_alloc
ovsz_fail swpin/s bswin/s swpot/s bswot/s pswch/s iget/s namei/s dirbk/s
rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s proc-sz porc-ov inod-sz
inod-ov file-sz file-ov lock-sz %busy avque r+w/s blks/s avwait avserv
[max][-min] 그래프의 최대값과 최소값을 지정한다.
title 그래프의 제목을 지정한다. 제목에 "."을 지정하면 그래프의 제목을 표시하지 않는다.

  • -G and -c option 에 대한 자세한 설명
  • 다음은 구성파일에 대한 예제이다.
    
    pgio/s::PIO - Page In/Out
    pgio/s:1000
    pgio/s:1000-500
    pgio/s:-0
    pgio/s:1000-500: Page In/Out
    -o prefix 옵션은 출력될 그래프의 파일명 및 HTML 파일명 앞에 붙을 prefix을 지정한다.
    -D directory 옵션은 출력될 그래프를 만들 디렉토리명을 지정한다. 디폴트는 "."이다.
    -l n 옵션은 출력될 그래프에 n 간격의 데이타에 회색 점선을 그린다.
    n이 0이고 -i 옵션과 함께 사용하면 10 분 간격으로 회색 점선을 그린다.
    -L toplabel 옵션을 사용하여, 그림의 상단에 배경색을 회색으로 하는 글자를 표시할 수 있다.
    -m 옵션은 각 필드에 대한 최대 값을 출력한다.
    cpu에 대한 최대 값은 %usr + %sys이다(%wio는 포함되지 않는다).
    -M V7.0 이전 버전에서 옵션은 -D 옵션에 지정된 디렉토리가 없을 경우에 만들어 준다. 그러나 V7.0 부터는 이 옵션이 없어도 디폴트로 -D 옵션에 지정된 디렉토리를 만들어 준다.
    -i 옵션과 함께 -N 옵션을 사용하면, 60 dot 간격으로 그래프의 하단에 시간(HH:MM:SS)을 표시한다.
    -P 옵션은 각각의 그래프의 우측에 표시될 최대값과 최소값을 다음과 같은 형식으로 표준출력으로 출력한다.

    fn:max-min

    이때 그래프는 만들지 않는다. 표준출력으로 출력되는 값을 리다이렉트(redirect)하여 파일로 저장하면, -c 옵션에 구성파일로 사용할 수 있다.
    sar 명령어로 여러 개의 파일을 만들었을 경우에 각각에 대하여 그래프를 그리면, 그래프의 최대값과 최소값은 수집된 데이타에 의해 자동으로 의해 결정된다. 만일 3개의 파일이 있다고 가정하면, 각각의 파일들이 최대값과 최소값이 다를 수 있다. 이 경우 3개의 데이타를 그래프 상에서 비교할 때, 최대값과 최소값이 다르기 때문에 비교하기가 어려울 수 있다.
    이러한 경우, -P 옵션을 사용하여 각각 수집된 데이타 파일에 대하여 최대값 및 최소값을 구해서 공통된 최대값과 최소값을 구성파일로 만들어 -c 옵션에 구성파일로 지정하여 다시 3개의 파일에 대하여 그래프를 그리면 공통된 최대값과 최소값을 가지는 3개의 그래프 파일을 만들 수 있다.

    다음은 -P 옵션을 사용한 결과 화면이다.
    
    
    # gsar -P sar.log
    cpu:100-0
    runq-sz:30-0
    swpq-sz:10-0
    freemem:40000-0
    freeswap:10600000-9800000
    pgio/s:100-0
    ppgio/s:200-0
    pgfree/s:150-0
    pgscan/s:100-0
    scall/s:70000-0
    srw/s:70000-0
    fork/s:90-0
    exec/s:90-0
    rwchar/s:4000000-0
    read/s:2000-0
    %rcache:100-0
    writ/s:1250-0
    %wcache:100-0
    prw/s:100-0
    msg/s:50-0
    sema/s:400-0
    sml_mem:34000000-33000000
    sml_alloc:28000000-23000000
    sml_fail:10-0
    lg_mem:90000000-70000000
    lg_alloc:80000000-60000000
    lg_fail:10-0
    ovsz_alloc:13500000-13000000
    ovsz_fail:10-0
    swpin/s:50-0
    bswin/s:100-0
    swpot/s:50-0
    bswot/s:100-0
    pswch/s:8000-0
    iget/s:900-0
    namei/s:3000-0
    dirbk/s:1250-0
    rawch/s:100-0
    canch/s:100-0
    outch/s:6000-0
    rcvin/s:100-0
    xmtin/s:100-0
    mdmin/s:100-0
    proc-sz:500-300
    porc-ov:100-0
    inod-sz:15000-10000
    inod-ov:100-0
    file-sz:4000-0
    file-ov:100-0
    lock-sz:100-0
    %busy:100-0
    avque:10-0
    r+w/s:50-0
    blks/s:200-0
    avwait:10-0
    avserv:150-0
    

    -P 옵션의 결과값을 저장한 파일은 adjmaxmin 명령어에 의해 가공되어 구성파일로 사용될 수 있다.

    -S skiplist -S 옵션을 사용하여 데이타로 사용되지 않는 입력라인을 제거할 수 있다.

    file속에 있는 내용 중에 데이타가 아닌 라인이 있을 경우, -S 옵션을 사용하여, 그 라인에서 시작하는 문자열을 지정하여 스킵할 수 있다. 스킵하고 싶은 문자열이 여러 개가 있을 경우에 콤마(,)로 구분한다.
    지정한 문자열과 입력 데이타 라인과 비교하여, 일치하면 그 라인을 스킵한다. 입력 라인에서 시작 부분의 whitespace (공백 또는 탭)는 비교되지 않는다.

    -V -V 옵션을 지정하면, 명령어의 버전 정보를 보여준다.
    -v 옵션은 그래프를 만들지 않고 데이타 파일에 있는 값을 출력한다.
    cpu 컬럼에 나오는 값은 %usr + %sys 값이다. %wio는 포함되지 않는다.