Operating System/Solaris2007/07/16 23:27

1) vmstat 명령어: Process, Virtual Memory, PagIng, Disk, CPU 등의 상태 측정.

# vmstat
# vmstat 3 (3초 주기로 성능 측정)

- procs Field: Process수와 그에 해당하는 Data 표시.

r: 실행 가능한 상태로 대기 Queue에 쌓인 수. 이 수가 크면 CPU가 처리에 애를 먹고 있다는 뜻이다.

r=0: White(CPU Idle)
0<r<3: Green(No Problem)
3≤r≤5: Amber(CPU Busy)
5<r: Red(CPU Busy)

b: I/O 자원을 할당 받지 못해 Block 된 Process.
w: Swap-Out 된 Process 수. 이 수가 크면 Physical Memory가 부족하다.

- Memory Field: Virtual Memory와 Physical Memory의 사용 가능량.

Swap: 현재 사용 가능한 Swap 크기.
Free: 사용 가능한 free Memory 크기(kb). Install Memory의 6%보다 계속 작으면 가용 Memory리가 부족. 잠재적인 병목 현상.

- Page Field: 초당 발생하는 Fault Page 수와 실행중인 PagIng 표시.

(PagIng: Virtual 기억 장치를 통하여 동작하는 Program에서 사용되는 Program과 Data 를 주기억 장치에 설치하기 위하여 사용되는 방법의 한 가지. Virtual 기억 장치를 고정 길 이의 Page로 구분하고 이러한 Page를 하나의 단위로 하여 주기억 장치에 설치하고 주소를 변환한다.)

re: Page Reclaim
mf: MInor Fault
pi: Page In(kb)
po: Page Out(kb)
fr: free(kb)
de: 단기간의 Memory 부족분. Swap-In을 막기 위해 Swap-Out시에 설정된 인공적인 Memory 부족분.
sr: 가용 Memory 부족 시에 활성화된 Page Daemon 수. sr이 크면 가능 Memory 부족.

sr=0: white
0<sr<200: green
200≤sr≤300: amber
400<sr: red

- Disk Field: 초당 Disk 조작 수.

- Faults Field: 초당 Trap/Interrupt 비율.

(Trap: 하나의 명령어가 실행될 때마다 자동적으로 발생되는 Interrupt. 이러한 Interrupt는 중앙 처리 장치에 의하여 Hardware적으로 발생하게 되는데 Program에서 하나 의 명령어가 실행될 때마다 자동적으로 미리 정의된 Trap 처리 Routine으로 실행의 제어권이 넘어온다. 따라서, Program의 동작 상황을 하나의 명령어 단위로 추적 할 수 있는데 일반 응용 Software의 Debugging 목적보다는 Hardware 장치와 밀접한 관련이 있는 System Software에서 오류를 찾아내기 위한 수단으로 이용된다.)

in: Device Interrupt(non clock)
sy: 초당 System Fault
cs: CPU context switch 비율.

- CPU Field: CPU 사용 시간에 대한 백분율(%)

us: 사용자 사용 시간
sy: System 사용 시간
id: Idle 시간

# vmstat -s (System 부팅 후 발생한 모든 event)
# vmstat -S 3

-S: 're' 와 'mf' Field를 'si' 와 'so' Field로 바꾼다.

si: 초당 Swap-In 된 Page.
so: Swap-Out 된 전체 Process 수.

# vmstat -c 3 (Cache Flushing 상태)
# vmstat -i (각 Device의 Interrupt 사항)

2) iostat: 각 Disk에 받는 Load 측정, Disk 입출력, 활용도, Queue 크기, Transaction 율, Service 시간 등.

-c: User Mode, System Mode, I/O를 위한 Waiting, Idle 등에 사용된 시간의 백분율.
-D: 초당 Disk를 Read, Write와 Utilization에 대한 백분율.
-t: 초당 Terminal에서 사용된 Read, Write의 Character 수.
-x: 추가된 모든 Disk들의 상태 표시.

# iostat -xtc 3

Service 시간(svc_t): 입출력 요구에 소요된 시간. 다른 요구가 처리중이므로 Queue에서 대기하는 시간도 포함. 30초 평균이 30%이상이면 점검 필요.

# iostat -D 3

I/O가 가장 활발할 때 사용. util(Disk 사용도)가 65%이상이면 과부하.

util<5%: white
5%<util<35%: green
35%<util<65%: amber
65%<util: red

3) SAR(System Activity Report): System의 여러 Resource들이 성능 측정, 운영중인 상태에서 자동으로 Data 수집. File로 정리 가능.

# sar 3 5 (3초 간격, 5번 실행)
# sar -o /tmp/sar_1.file 3 5 (File로 저장)
# sar -f /tmp/sar_1.file (File 읽기)
# sar -b 3 5

(Buffer Activity 검사. % reache≤90, %wCache≤65, Buffer Space 증가, 성능증가)

# sar -d 10 3 (Disk의 I/O 점검, Disk 사용량 점검)
# sar -g 10 3 (Memory와 Page-Out 점검, 이 값이 높으면 가용 Memory 부족)
# sar -q 10 3

(Process 점검, 실행 대기 Queue 내의 Process 검색, runq-sz가 계속 2 이상이면 CPU 한계치 – Memory 상에 대기중인 Process Read 수)

# sar -r 10 3

(가용 Memory와 Swap-file Disk block, 가용 Memory가 Install Memory의 6%보다 계속 작으면 가용 Memory가 부족)

4) netstat: 각 Network Interface의 전송상태를 알 수 있다.

# netstat -i 5

network collision rate(%)=Collis/Opkts, 5%≤ncr≤10%이면 Network Overload 초래.
Input packet error rate(%)=Ierrs/Ipkts > 0.25%이면 Packet Drop.
Output patcket error rate(%)=Oerrs/Opkts

5) snoop: Network에서 Packet Capture. 모든 Client와 Server간의 Call Trace를 담을 수 있다.

# snoop -o /tmp/a (Network Packet을 File로 저장)
# snoop -i /tmp/a (File 읽기)

Creative Commons License
Posted by BLUEDAY™