Windows/윈도우 공통

성능 모니터링 항목에 대한 설명 - CPU

99iberty 2013. 10. 23. 10:52

http://kikook.tistory.com/98

 

CPU 성능 모니터링 항목(카운터)에 대해 몇 가지 설명하고자 한다.

1. Processor:% Processor Time
이 카운터는 CPU가 비유휴 스레드를 처리하는 데 소비하는 시간의 양을 모니터링한다. 카운터 값이 계속 80-90 퍼센트로 나타나면 CPU를 업그레이드하거나 프로세서 추가를 권장한다.
멀티프로세서 시스템의 경우 각 프로세서에 대해 이 카운터의 개별 인스턴스를 모니터링해야 한다. 이 값은 특정 프로세서의 프로세서 시간의 합을 나타낸다. 모든 프로세서의 평균을 확인하려면 System: %Total Processor Time 카운터를 이용한다.

2. Processor: % Privileged Time
이 카운터는 프로세서가 I/O 요청 처리와 같은 커널 명령을 실행할 때 걸리는 시간의 비율을 나타낸다.
Physical Disk 카운터가 높게 나오면서 동시에 이 카운터가 같이 높다면 더 빠르고 효율적인 디스크 시스템을 고려해야 한다.
디스크 컨트롤러가 다르면 커널 처리 시간도 다르다. 효율적인 컨트롤러와 드라이버를 사용하면 권한 시간이 짧아져 사용자가 응용 프로그램을 사용할 수 있는 처리 시간을 확보할 수 있기 때문에 전체 처리량을 늘릴 수 있다.

3. Processor: %User Time
이 카운터는 프로세서가 SQL Server와 같은 사용자 프로세스를 실행할 때 걸리는 시간의 비율을 나타낸다.

4. System: Processor Queue Length
이 카운터는 프로세서 시간을 기다리는 쓰레드 수를 나타낸다. 프로세스의 쓰레드에 필요한 프로세서 사이클 수가 사용할 수 있는 개수보다 많으면 프로세서 병목 상태가 발생한다. 쉽게 말해, 프로세서를 사용하기 위해 대기 중인 쓰레드 갯수를 말하며, 프로세서의 갯수보다 쓰레드의 개수가 많은 증상이 지속될 경우, 병목이 발생한다고 생각하면 된다. 일부 프로세스가 프로세서 시간 대부분을 소비한다면 속도가 빠른 프로세서나 추가 프로세서(멀티프로세서 시스템을 사용 중이면)를 설치해야 한다.
프로세서의 사용을 검사할 때는 해당 프로그램의 인스턴스가 수행 중인 작업 유형을 고려해야 한다. 예를 들어 SQL Server가 집계에 관한 쿼리나 디스크 I/O가 필요없는 메모리 집중형 쿼리와 같은 계산을 많이 수행한다면 프로세서 시간 전체를 사용할 수 있다. 이런 이유로 다른 응용 프로그램 수행에 어려움이 발생하면 SQL Server만이 설치된 DB서버를 독자적으로 할당하는 방법 등으로 작업량을 줄여야 한다.
100%에 가까운 수치로 프로세스가 대기열에 쌓이고 있는 모습이 나타난다면 당연히 프로세서 시간이 길어지고 병목현상이 나타날 것이다. 이런 부분을 해결하는 방법중의 하나가 프로세서 성능을 향상시키는 일이다.