본문 바로가기

아카이브/Linux

성능 정보 세 가지

반응형

리눅스에서 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