리눅스에서 sar, vmstat, iostat, netstat 등 다양한 모니터링 툴을 이용해서 성능을 테스트 할 때, [어떤 상황에서 어떤 툴을 사용해야하는가] 에 대한 정보가 있다.
성능 정보는 크게,
1. 요약 형식
2. 이벤트 기록 형식
3. 스냅샷 형식
으로 구분할 수 있다고 한다. (그림으로 공부하는 시스템 성능 구조 발췌)
요약 형식은, 이전의 기록을 바탕으로 전반적, 평균적인 시스템 지표를 확인함으로써 현재 시스템 상의 대략적인 성능을 확인할 수 있다.
이벤트 기록 형식은 이벤트를 순차적으로 기록하는 방식이다. Fiddler 의 패킷 캡쳐나 시스템 콜 기록 등이 해당하는데, "언제, 무엇이" 발생 했는지 대부분 알 수 있다. 요약 형식보다 상세한 내용을 조사할 수 있지만 '비디오를 찍는 것 과 같아서' 데이터가 방대하다.
스냅샷 형식은 순간의 상태를 기록하는 것이다.(ps, top etc) '사진을 찍는 것' 에 비유할 수 있는데, 여러 개의 사진을 통해서 원인을 판명하는데 유용하다.
몇가지 성능 정보 명령어를 살펴 보자면, [*command (type)] : explain;
키워드 참고.
user -> 사용자 프로세스가 소비한 CPU 사용량을 시간의 비율로 나타냄.
sys -> 커널과 커널 프로세스의 CPU 사용량을 시간의 비율로 보여줌.
nice -> nice를 적용한 프로세스가 있을 경우 해당 프로세스의 CPU 사용량을 시간의 비율로 보여줌.
idle -> CPU 유휴 상태의 비율. => 느려진 시스템의 idle 수치가 높다면, CPU 원인이 아닐 것이라는 추측이 가능하다.
wa -> (I/O wait) 시스템이 I/O 요청을 처리하지 못한 상태에서 CPU의 Idle 상태인 시간의 비율. => 느려진 시스템의 wa 수치가 낮다면 I/O 원인이 아닐 것이라는 추축이 가능.
hw interrupt(hi) -> 하드웨어 인터럽트를 제공하는데 CPU가 소모한 시간의 비율
sw interrupt(si) -> 소프트웨어 인터럽트를 제공하는데 CPU가 소모한 시간의 비율
steal -> 가상 머신에 의한 작업이 진행되는 동안 가상 CPU에 의해 대기시간이 생기는 시간의 비율
tps -> 물리 디스크에서 초당 전송량.
rtps -> 물리적 디스크에서 초당 읽기 총 요청 횟수.
bread/s -> 드라이브 안의 블럭에서 초당 읽은 데이터 합
bwrth/s -> 드라이브 안의 블록에서 초당 쓴 데이터 합
pgpgin/s -> 디스크로부터 초당 paged in 된 page 총 수.
papgout/s -> 디스크에 초당 paged out 된 page 총 수.
kbmemfree -> 사용가능한 메모리 총량 (kbytes)
kbmemused -> 사용중인 메모리 총량 (kbytes). 단, 커널에서 사용중인 메모리 제외
%memused -> 사용된 메모리 %
kbbuffers -> 커널에서 버퍼 메모리로 사용된 메모리 총량(kb).
kbcached -> 커널에서 캐시로 사용된 메모리 총량(kb).
kbcommit -> 현재 작업을 위해 필요한 메모리 총량 추정치(kb).
%commit -> 현재 작업을 위해 필요한 메모리 총량의 %
frmpg/s -> 시스템에서 초당 자유로워진 memory pages 의 양.
bufpg/s -> 시스템에서 초당 버퍼에 추가적으로 더해진 메모리 페이지의 양.
campg/s -> 시스템에서 초당 시스템에 의해 캐시된 메모리 페이지의 양.
[sar (요약)] : (현재의 시스템 상황보다는) 이전의 로그를 바탕으로 어떤 시기에 어떤 일들이 있었는지를 측정하여 장기적인 부하량을 예측하고 대처할 수 있다. OS 레벨에서 보는 정보이기 때문에 어플리케이션 레벨에서 측정한 정보와 다를 수 있다. 부하가 언제부터 시작되었고, 어떤 곳에서 부하가 많이 발생하는지 체크하기에 용이하다.
- I/O 전송량/페이징/프로세스 생성 숫자
- 인터럽트/네트워크 통계
- run 큐, 시스템 부하 평균
- 메모리와 스왑 공간 통계
- 특정 프로세스에 대한 CPU 사용량
- Context Switing 정보
- TTY 디바이스 활동
- 특정 프로세스/자식 프로세스 통계
sar -A : 모든 관련 정보 출력
sar -b : 버퍼의 activity를 점검하여 I/O, Transfer 통계 출력
sar -B : 페이징 통계 출력
sar -w : 새로 생성되어 활동하는 프로세스 출력
sar -d : 네트워크 디바이스의 결과로부터 통계
sar -r : 가용 메모리 점검 및 메모리 공간의 통계 출력
sar -R : 메모리 통계
sar -w : 작업 생성, 시스템 스위칭 현황 출력
sar -W : swapping 통계 출력
[ps (스냅샷)] : 프로세스 상태 확인 명령어.
ps -ef : 모든 프로세스(e)를 전체 경로로(f) 표시.
ps -ef | grep 'something" : "somthing" 에 대한 정보 표시
ps -ef | grep "something" | wc -l : "something" 프로세스 개수 표시
[top (스냅샷)]
'아카이브 > Linux' 카테고리의 다른 글
Centos 6.7 LEMP 환경 (0) | 2015.12.02 |
---|---|
[vi설정] (0) | 2015.01.27 |
Ubuntu의 apt-get 명령어 정리 (0) | 2015.01.26 |
유용한 유닉스 명령어(퍼옴) (0) | 2015.01.22 |
리눅스 터미널에서 usb mount(usb 사용) (0) | 2015.01.16 |