32개의 물리적 코어가 있는 내 시스템에서는 0~3초 내에 실행되는 100개의 스레드를 지속적으로 생성하고 있습니다. 모두 완료되면 다음 배치가 생성됩니다.
올바른 평균 CPU 사용량, 즉 1분 동안 이러한 코어의 평균 사용량을 얻고 싶습니다. 30%의 시간 동안 유휴 상태인 경우 값은 0.7이어야 합니다.
htop을 사용할 때 코어 수보다 높은 40 이상의 로드 평균을 얻습니다. 그러나 다음에서 볼 수 있습니다.이 비디오, CPU 코어가 항상 100% 사용되는 것은 아닙니다. 새 스레드가 생성되기 전에 100개의 스레드가 모두 완료되어야 하기 때문에 이것이 내가 기대하는 것입니다.
CPU 사용량을 더 정확하게 측정하는 방법은 무엇입니까?
답변1
로드 평균은 각 CPU의 사용량이 아닙니다. 이는 자주 인용되는부하 평균의 의미 설명. 따라서 코어를 100% 완전히 사용하지 않는 100개의 스레드의 경우 로드 평균 40은 상당히 합리적으로 보입니다.
실제 CPU 사용량을 측정하려면 다음을 사용하는 것이 좋습니다.성능하드웨어 성능 카운터를 읽을 수 있습니다. Perf는 많은 것을 측정할 수 있는 매우 강력한 도구입니다. 귀하의 경우 다음을 시도해 볼 수 있습니다.
perf stat -e cycles ./your_executable