CPU 사용량 모니터링
적용 대상: SQL Server
Microsoft SQL Server의 인스턴스를 정기적으로 모니터링하여 CPU 사용량이 정상 범위에 있는지 확인할 수 있습니다. CPU 사용량이 계속 높게 나타나면 CPU 업그레이드 또는 멀티 프로세서 추가가 필요할 수 있습니다. 높은 CPU 사용량은 또한 애플리케이션 튜닝 또는 디자인이 적절하지 않다는 의미일 수 있습니다. 애플리케이션을 최적화하면 CPU 사용률을 낮출 수 있습니다.
CPU 사용량을 확인하는 효율적인 방법은 성능 모니터의 Processor:% Processor Time 카운터를 사용하는 것입니다. 이 카운터는 CPU가 유휴 상태가 아닌 스레드를 실행하는 데 소요되는 시간을 모니터링합니다. 80%에서 90%의 일관된 상태는 CPU를 업그레이드하거나 프로세서를 더 추가해야 한다는 것을 나타낼 수 있습니다. 다중 프로세서 시스템의 경우 각 프로세서에 대해 이 카운터의 별도 인스턴스를 모니터링합니다. 이 값은 특정 프로세서의 프로세서 시간의 합을 나타냅니다. 모든 프로세서의 평균을 확인하려면 System: %Total Processor Time 카운터를 대신 사용합니다.
다음과 같은 카운터를 모니터링하여 프로세스 사용을 모니터링할 수도 있습니다.
Processor: % Privileged Time
SQL Server I/O 요청 처리와 같은 Microsoft Windows 커널 명령 실행에 프로세서가 소요되는 시간의 백분율에 해당합니다. 실제 디스크 카운터가 높을 때 이 카운터가 일관되게 높은 경우 더 빠르고 효율적인 디스크 하위 시스템을 설치하는 것이 좋습니다.
참고 항목
디스크 컨트롤러와 드라이버가 다르면 커널 처리 시간도 다릅니다. 효율적인 컨트롤러 및 드라이버는 권한 사용 시간을 적게 사용하므로 사용자 애플리케이션에서 더 많은 처리 시간을 사용할 수 있어 전체 처리량이 증가합니다.
Processor: %User Time
프로세서가 SQL Server와 같은 사용자 프로세스를 실행하는 데 소요되는 시간의 백분율에 해당합니다.
System: Processor Queue Length
프로세서 시간을 기다리는 스레드 수에 해당합니다. 프로세스의 스레드에 필요한 프로세서 사이클 수가 사용할 수 있는 개수보다 많으면 프로세서 병목 상태가 발생합니다. 몇 개 이상의 프로세스가 프로세서의 시간을 활용하려고 하면 더 빠른 프로세서를 설치해야 할 수 있습니다. 또는 다중 프로세서 시스템이 있는 경우 프로세서를 추가할 수 있습니다.
프로세서 사용량을 검사할 때 SQL Server 인스턴스가 수행하는 작업 유형을 고려합니다. SQL Server가 집계와 관련된 쿼리 또는 디스크 I/O가 필요하지 않은 메모리 바인딩된 쿼리와 같은 많은 계산을 수행하는 경우 프로세서 시간의 100%를 사용할 수 있습니다. 그 결과 다른 애플리케이션의 성능이 저하되면 작업을 변경해 보십시오. 예를 들어 컴퓨터가 SQL Server의 인스턴스 실행을 전담하도록 합니다.
많은 클라이언트 요청이 처리되는 약 100%의 사용률은 프로세스가 대기 중이며 프로세서 시간을 기다리며 병목 상태를 유발하고 있음을 나타낼 수 있습니다. 더 빠른 프로세서를 추가하여 문제를 해결하십시오.