Windows 기반 시스템에서 프로세스의 CPU 사용률을 측정하는 가장 정확한 방법은 무엇입니까?

Windows 기반 시스템에서 프로세스의 CPU 사용률을 측정하는 가장 정확한 방법은 무엇입니까?

저는 Windows Server 2012R2 시스템에서 프로세스의 CPU 사용률을 측정하는 가장 좋은 방법을 찾으려고 노력해 왔으며 사용률을 측정하는 데 사용되는 방법 간에 많은 불일치가 있음을 발견했습니다.

처음에는 CPU 사용률을 관찰하기 위해 작업 관리자를 살펴봤지만 특정 기간 동안의 데이터가 아닌 사용률에 대한 스냅샷만 제공하므로 procmon이나 프로세스 탐색기와 같은 다른 도구를 사용하기로 결정했습니다. 이 둘은 동일한 숫자 또는 프로세스 간 순위를 보고합니다.

불일치는 다음과 같습니다.

1) 작업 관리자의 "프로세스" 탭과 "세부 정보" 탭에는 "CPU 사용률"에 대한 값과 해당 프로세스 간의 순위가 완전히 다른 값이 표시됩니다. 예를 들어 프로세스 탭에는 다음이 표시됩니다.

  • abc.exe% 24
  • 123.exe% 10
  • sdf.exe% 3

"세부정보" 탭에는 다음이 표시됩니다.

  • 유휴 %55 (이것은 이상한 부분이 아닙니다)
  • sdf.exe% 11
  • ert.exe% 9
  • abc.exe% 7

2) 프로세스 탐색기 CPU%는 작업 관리자의 "프로세스" 탭과 "세부 정보" 탭에 비해 서로 다른 값을 표시합니다. 값이 지연되거나 약간의 불일치로 표시될 수 있다는 것을 이해하지만 세 위치 모두에 표시된 값은 거의 완벽합니다. 위의 예시처럼 다릅니다.

3) 프로세스 모니터는 또한 CPU 사용률 측면에서 프로세스 순위에 대해 일관되지 않은 정보를 제공합니다. ProcMon이 프로세스의 백분율 값을 제공하지 않더라도 해당 프로세스 간의 순위(CPU 시간 측면에서)는 프로세스 탐색기와 일치하지 않습니다. 또는 작업 관리자 순위.

요약하면 질문은 다음과 같습니다. 이러한 측정 중 어느 것이 프로세스 간의 CPU 사용률을 가장 정확하게 표현하며 그 이유는 무엇입니까?

답변1

가장 정확한 것은 다음과 같은 이유로 Process Explorer입니다.

  • 기본적으로 정수 대신 소수점 이하 두 자리로 반올림된 프로세스별 CPU 사용률을 표시합니다.
  • 인터럽트 및 DPC를 처리하는 데 소요된 시간을 추적하고 이를 유휴 프로세스와 별도로 표시합니다(작업 관리자는 이 작업을 수행하지 않음)
  • 추가 시스템 지표를 사용하여 적은 양의 CPU를 소비하는 프로세스를 식별하고 가능한 경우 실제 CPU 소비에 대한 보다 정확한 계정을 제공합니다.

PE는 Mark Russinovich와 Aaron Margosis가 작성한 Windows Sysinternals 관리자 참조서에서 가장 자세한 정보를 표시하는 도구로 언급된 세부 도구입니다.

편집: 인터럽트를 추적하는 기능은 소프트웨어 디버깅 및 결함이 있는 드라이버 찾기 등 다른 작업에도 매우 유용할 수 있습니다.

관련 정보