//
Search
Duplicate
🦯

성능 관련 명령어

#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