#iostat -xtc 3
:- 가장 중요한 것은 서비스 시간(svc_t), 드라이브에 대한 입,출력 요구의 서비스
에 소요된 시간을 나타탬. 이 시간에 다른 요구가 처리중에 있기 때문에 큐에
대기하는 시간포함, 30초의 평균사용률이 30%을 넘는 디스크는 점검 요.
[v700:/]#iostat -xtc 3
extended device statistics tty cpu
device r/s w/s kr/s kw/s wait actv svc_t %w %b tin tout us sy wt id
fd0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 1 0 0 0 100
sd0 0.1 0.7 0.8 5.4 0.0 0.0 5.3 0 0
sd2 0.0 0.0 0.4 0.0 0.0 0.0 12.5 0 0
sd6 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
nfs1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
.r/s : 초 당 Read
.w/s : 초 당 Write
.kr/s : 초 당 Read(KB)
.kw/s : 초 당 Write(KB)
.wait : 서비스를 위한 Transaction Waiting 의 평균값
.actv : 실질적으로 서비스된 Transaction 의 평균값
.svc_t : 서비스 시간의 평균값(milliseconds)
.%w : Queue가 비어있지 않은 시간의 백분율
.%b : 디스크가 busy 상태인 시간이 백분율
#iostat -D 3
:- 시스템의 I/O 가 가장 활발히 운용되고 있을 때 측정하여 I/O 편중됨을 측정.
각 디스크의 사용도(util)가 어느 정도인지 측정, 60%이상이면 과부하.
[v700:/]#iostat -D 3
fd0 sd0 sd2 sd6
rps wps util rps wps util rps wps util rps wps util
0 0 0.0 0 1 0.1 0 0 0.0 0 0 0.0
0 0 0.0 0 0 0.0 0 0 0.0 0 0 0.0
0 0 0.0 0 0 0.0 0 0 0.0 0 0 0.0
util < 5% : White
5% < util < 35% : Green
35% < util < 65% : Amber
65% < util : RED
4. SAR(System Activity Reporter)
sar [option] [-o file] t [n]
sar [opotion] [-s time] [-e time] [-i sec] [-f file]
#sar 3 5
[v700:/]#sar 3 5
SunOS v700 5.7 Generic_106541-17 sun4u 10/12/01
11:18:21 %usr %sys %wio %idle
11:18:24 0 0 0 99
11:18:27 0 0 0 100
11:18:30 0 0 0 100
11:18:33 0 0 0 100
11:18:36 0 0 0 100
Average 0 0 0 100
.-a : Check file access operation
.-b : Report buffer activity
.-c : Report system calls
.-d : Report block device activity
.-g : Report paging activity(page-out & memory freeing)
.-k : Report kernel memory allocation(KMSA) activity
.-m : Report message & semaphore activity
.-p : Report paging acitivity(page-in & fault activity)
.-q : Report average queue length while occupied & percent of time occupied
.-r : Report unused memory pages & disk blocks
.-u : Report CPU utilization
.-v : Report status of process, i-node, file tables
.-x : Report remote file-sharing & switching activity
.-w : Report system swapping & switching activity
.-y : Report TTY device activity
.-A : Report all data
#CPU 에 관한 점검사항
#sar 3 5
SunOS v700 5.7 Generic_106541-17 sun4u 10/12/01
11:18:21 %usr %sys %wio %idle
11:18:24 0 0 0 99
11:18:27 0 0 0 100
11:18:30 0 0 0 100
11:18:33 0 0 0 100
11:18:36 0 0 0 100
Average 0 0 0 100
[v700:/]#sar -o /tmp/sar_1.file 3 5
SunOS v700 5.7 Generic_106541-17 sun4u 10/12/01
11:26:01 %usr %sys %wio %idle
11:26:04 0 0 0 100
11:26:07 0 0 0 100
11:26:10 0 0 0 100
11:26:13 0 0 0 100
11:26:16 0 0 0 100
Average 0 0 0 100
[v700:/]#ls -l /tmp/sar_1.file
-rw-r--r-- 1 root other 26064 10월 12일 11:26 /tmp/sar_1.file
[v700:/]#sar -f /tmp/sar_1.file
SunOS v700 5.7 Generic_106541-17 sun4u 10/12/01
11:26:01 %usr %sys %wio %idle
11:26:04 0 0 0 100
11:26:07 0 0 0 100
11:26:10 0 0 0 100
11:26:13 0 0 0 100
11:26:16 0 0 0 100
Average 0 0 0 100
#Buffer Activity
#sar -b 3 5
[v700:/]#sar -b 3 5
SunOS v700 5.7 Generic_106541-17 sun4u 10/12/01
11:27:09 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
11:27:12 0 0 100 0 0 100 0 0
11:27:15 0 0 100 0 0 100 0 0
11:27:18 0 0 100 0 0 100 0 0
11:27:21 0 0 100 0 0 100 0 0
11:27:24 0 3 100 3 6 53 0 0
Average 0 1 100 1 1 53 0 0
:- %rcache 와 %wcache는 시스템 버퍼의 실질적인 유효값으로, 만약 %rcache 가
90%이하로 떨어지거나, %wcache 값이 65% 이하이면 버퍼스페이스 증가할 것
#Disk I/O 점검
#sar -d 10 3
[v700:/]#sar -d 5 3
SunOS v700 5.7 Generic_106541-17 sun4u 10/12/01
11:29:06 device %busy avque r+w/s blks/s avwait avserv
11:29:11 fd0 0 0.0 0 0 0.0 0.0
nfs1 0 0.0 0 0 0.0 0.0
sd0 0 0.0 0 0 0.0 0.0
sd0,a 0 0.0 0 0 0.0 0.0
sd0,b 0 0.0 0 0 0.0 0.0
sd0,c 0 0.0 0 0 0.0 0.0
sd0,d 0 0.0 0 0 0.0 0.0
sd0,f 0 0.0 0 0 0.0 0.0
sd0,g 0 0.0 0 0 0.0 0.0
sd0,h 0 0.0 0 0 0.0 0.0
sd2 0 0.0 0 0 0.0 0.0
sd2,c 0 0.0 0 0 0.0 0.0
sd2,d 0 0.0 0 0 0.0 0.0
sd2,f 0 0.0 0 0 0.0 0.0
sd2,h 0 0.0 0 0 0.0 0.0
sd6 0 0.0 0 0 0.0 0.0
#Memory 와 page-out 점검
#sar -g 10 3
:- pgscan/3 는 초 당 페이지 수를 나타낸 것, 높으면 부족함
sar -g 10 3
SunOS v700 5.7 Generic_106541-17 sun4u 10/12/01
11:30:50 pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf
11:31:00 0.00 0.00 0.00 0.00 0.00
11:31:10 0.00 0.00 0.00 0.00 0.00
11:31:20 0.00 0.00 0.00 0.00 0.00
Average 0.00 0.00 0.00 0.00 0.00
#Process 점검
#sar -q 10 3
:-q OPTION 을 사용하면 얼마나 많은 수의 프로세스가 실행 대기 큐에 있는지 검색
할 수 있다. runq-sz 은 메모리 상에 대기중인 Process Thread 수, 2 이상이면
CPU 가 한계치에 다다른 것. %runocc 는 어떤 run queue 숫자가 작을수록 우선
순위가 높다.
[v700:/]#sar -q 10 3
SunOS v700 5.7 Generic_106541-17 sun4u 10/12/01
11:33:27 runq-sz %runocc swpq-sz %swpocc
11:33:37
11:33:47
11:33:57
Average
#Swap Memory 와 Swap-file disk block
#sar -r 10 3
:- 가용 메모리가 인스톨된 메모리의 6%보다 계속해서 작으면 가용 메모리가 부족함
잠재적인 병목 현상
[v700:/]#sar -r 10 3
SunOS v700 5.7 Generic_106541-17 sun4u 10/12/01
11:34:12 freemem freeswap
11:34:22 9469 2318629
11:34:32 9478 2320944
11:34:42 9478 2320944
Average 9475 2320172
5. netstat
#netstat-i 5
[v700:/]#netstat -i 5
input le0 output input (Total) output
packets errs packets errs colls packets errs packets errs colls
82959 4 3691 37 17 84638 4 5370 37 17#netstat -i
7 0 1 0 0 7 0 1 0 0
5 0 2 0 0 5 0 2 0 0
6 0 2 0 0 6 0 2 0 0
2 0 2 0 0 2 0 2 0 0
#netstat -i
[v700:/]#netstat -i
Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue
lo0 8232 loopback localhost 1679 0 1679 0 0 0
le0 1500 v700 v700 83015 4 3717 37 17 0
:- Network Collision Rate(%) 는 Collision 수를 Output Packet 수를 나눈 것으로
(Network Collision Rate = Collis/Opkts)으로, 앞의 사항을 예로 하면 Network
Collision RAte = 17/3717=0.0046% 이다. 이 때 Collision Rate 가 5%보다 크고
10%에 가까워지면 Network Overload 가 초래됨,
:- Input Packet Error Rate(%)는 Input Error 수를 전체 Input Packet 수로 나누며
(Input Packet Error Rate = Ierrs/Ipkts), Output Packet Error Rate(%) 는 Output
Error 수를 전체 Output Packet Error 수로 나눈 것(Output Packet Error Rate =
Oerrs/Opkts)으로, 이때 Input Rate 가 0.25%보다 크게 되면 시스템은 패킷을
드롭하게 된다.
6.snoop
#snoop -o /tmp/a
[v700:/]#snoop -o /tmp/a
Using device /dev/le (promiscuous mode)
189 ^C
[v700:/]#snoop -i /tmp/a | more
1 0.00000 211.47.158.167 -> dos TELNET C port=1034 f
2 0.00051 dos -> 211.47.158.167 TELNET R port=1034 f
3 0.01138 211.47.237.143 -> 211.47.158.144 TCP D=3129 S=139 Ack=141984171 Seq=9703528 Len=0 Win=8760
4 0.00146 211.47.158.144 -> 211.47.237.143 TCP D=139 S=3129 Ack=9703528 Seq=141990011 Len=1460 Win=8022
5 0.00122 211.47.158.144 -> 211.47.237.143 TCP D=139 S=3129 Ack=9703528 Seq=141991471 Len=1460 Win=8022
6 0.01544 211.200.131.241 -> 211.47.158.140 UDP D=9001 S=9785 LEN=25
7 0.00592 211.47.237.143 -> 211.47.158.144 TCP D=3129 S=139 Ack=141987091 Seq=9703528 Len=0 Win=8760
8 0.00146 211.47.158.144 -> 211.47.237.143 TCP D=139 S=3129 Ack=9703528 Seq=141992931 Len=1460 Win=8022
9 0.00123 211.47.158.144 -> 211.47.237.143 TCP D=139 S=3129 Ack=9703528 Seq=141994391 Len=1460 Win=8022
10 0.02105 211.47.237.143 -> 211.47.158.144 TCP D=3129 S=139 Ack=141990011 Seq=9703528 Len=0 Win=8760
11 0.00146 211.47.158.144 -> 211.47.237.143 TCP D=139 S=3129 Ack=9703528 Seq=141995851 Len=1460 Win=8022
12 0.00123 211.47.158.144 -> 211.47.237.143 TCP D=139 S=3129 Ack=9703528 Seq=141997311 Len=1460 Win=8022
13 0.01199 211.47.158.146 -> cheesy XWIN R port=36490
14 0.00394 211.47.158.167 -> dos TELNET C port=1034
15 0.00051 dos -> 211.47.158.167 TELNET R port=1034
16 0.00782 211.47.237.143 -> 211.47.158.144 TCP D=3129 S=139 Ack=141992931 Seq=9703528 Len=0 Win=8760
17 0.00146 211.47.158.144 -> 211.47.237.143 TCP D=139 S=3129 Ack=9703528 Seq=141998771 Len=1460 Win=8022
18 0.00123 211.47.158.144 -> 211.47.237.143 TCP D=139 S=3129 Ack=9703528 Seq=142000231 Len=1460 Win=8022
19 0.01835 211.47.237.143 -> 211.47.158.144 TCP D=3129 S=139 Ack=141995851 Seq=9703528 Len=0 Win=8760
20 0.00145 211.47.158.144 -> 211.47.237.143 TCP D=139 S=3129 Ack=9703528 Seq=142001691 Len=1460 Win=8022
21 0.00122 211.47.158.144 -> 211.47.237.143 TCP D=139 S=3129 Ack=9703528 Seq=142003151 Len=1460 Win=8022
22 0.02392 notebook -> v700 TELNET C port=1235
23 0.00007 v700 -> notebook TELNET R port=1235 Using device /dev/le
24 0.00035 211.47.237.143 -> 211.47.158.144 TCP D=3129 S=139 Ack=141998771 Seq=9703528 Len=0 Win=8760
25 0.00147 211.47.158.144 -> 211.47.237.143 TCP D=139 S=3129 Ack=9703528 Seq=142004611 Len=1460 Win=8022
26 0.00122 211.47.158.144 -> 211.47.237.143 TCP D=139 S=3129 Ack=9703528 Seq=142006071 Len=1460 Win=8022
27 0.01833 211.47.237.143 -> 211.47.158.144 TCP D=3129 S=139 Ack=142001691 Seq=9703528 Len=0 Win=8760
28 0.00133 211.47.158.144 -> 211.47.237.143 TCP D=139 S=3129 Ack=9703528 Seq=142007531 Len=1344 Win=8022
29 0.02296 211.47.237.143 -> 211.47.158.144 TCP D=3129 S=139 Ack=142004611 Seq=9703528 Len=0 Win=8760
30 0.02383 211.47.237.143 -> 211.47.158.144 TCP D=3129 S=139 Ack=142007531 Seq=9703528 Len=0 Win=8760
31 0.00764 211.47.158.167 -> dos TELNET C port=1034
32 0.00113 211.47.237.143 -> 211.47.158.144 TCP D=3129 S=139 Ack=142008875 Seq=9703528 Len=0 Win=7416
33 0.00027 211.47.158.144 -> 211.47.237.143 TCP D=139 S=3129 Ack=9703528 Seq=142008875 Len=68 Win=8022
7. sdtprocess
8. top
** II. 성능 조정 기준 **
.White : 사용량이 아주 적다
.Blue : 사용량이 적다
.Green : 특이한 문제점없이 원활히 운영되고 있다.
.Amber : Warning Level
.Red : 심각한 LEVEL 이며, 조치가 필요함
.Black : 시스템의 상태가 아주 심각하다.
.Action : 각 테이블의 rule 에서 취해야 할 조치 사항에 관한 내용
1. Memory Rule
- 가상메모리
100000k <= vmstat 30. swap White Swap Waste
100000k <= vmstat 30. swap < 100000k Green No Problem
4000k <= vmstat 30, swap < 10000k Amber Swap Low
1000k <= vmstat 30, swap < 4000k Red Swap Low
vmstat 30. swap < 1000k Black No Swap
- Physical 메모리
vmstat 30. sr = = 0 White RAM Waste
0 < vmstat 30. sr < 200 Green No Problem
200 <= vmstat 30. sr < 300 Amber RAM Low
300 <= vmstat 30. sr RED RAM Low
- CPU Rule
vmstat 30. r = = 0 White CPU Idle
0 < (vmstat 30. r/ncpus) < 3.0 Green No Problem
3.0 <= (vmstat 30. r/ncpus) <= 5.0 Amber CPU Busy
5.0 < (vmstat 30. r/ncpus) RED CPU Busy
mpstat 30. smtx < 200 Green NO Problem
200 <= mpstat 30. smtx < 400 Amber Nutex Stall
400 <= mpstat 30. smtx RED Mutex Stall
- Disk I/O Rule
(iostat -x 30. b < 5%) && (Other disks white or green) White No Problem
(iostat -x 30. b < 5%) && (Other disks amber or red) Blue Idle Disk
( 5% <= iostat -x 30. b) && (iostat -x 30. svc_t < 30 ms) Green No Problem
(20% <= iostat -x 30. b) && (30ms <= iostat -x 30. svc_t < 50ms) Amber Busy Disk
(20% <= iostat -x 30. b) && (50ms <= iostat -x 30. svc_t) RED Budy Disk
(20% <= iostat -x 30. b) && (50ms <= iostat -x 30. svc_t)
&& (iostat -x 30. disk == "fd0" || iostat -x 30. disk == "sd6") Amber Floppy/CD
0% == iostat -x 30. w Green No Problem
0% < iostat -x 30. w < 5% Amber SCSI Busy
5% <= iostat -x 30. w RED SCSI Busy
- Network Rule(Ethernet collision)
(0 < netstat -i 30. output.packets < 10) && (100 * netstat -i 30. output.colls/
netstat -i 30. output.packets < 0.5%) &&(Other nets white or green) White NO problem
(0 < netstat -i 30. Output.packets < 10) && (100 * netstat -i 30. Output.colls/
netstat -i 30. Output.packets < 0.5%) && (Other nets amber or red) Blue Inactive Net
(10 <= netstat -i 30. Output.packets) && (0.5% <= 100 * netstat -i 30. Output.colls/
netstat -i 30. Output.packets < 2.0% ) Green NO Problem
(10 <= netstat -i 30. Output.packets) && (2.0% <= 100 * netstat -i 30. Output.colls/
netstat -i 30. Output.packets < 5.0% ) Amber Busy Net
(10 <= netstat -i 30. Output.packets) && (5.0% <= 100 * netstat -i 30. Output.colls/
netstat -i 30. Output.packets) RED Busy Net