문제 배경
제가 이해한 바로는 로드 값(예: top
)을 사용하면 (시스템에 있는 CPU 코어 수에 대한 지식과 함께) 사용 중인 컴퓨팅 성능의 점유율을 매우 빠르게 평가할 수 있습니다. 4개의 코어가 있는 시스템에 2개의 로드가 있는 경우 이는 프로세스 속도를 저하시키지 않고(CPU 수준에서, 즉 I/O 무시) 두 배의 작업을 수행할 수 있음을 의미합니다.
방금 내 시스템이 2.7(쿼드 코어)에 로드되었다는 정보가 비교 값이 일정하지 않기 때문에 생각보다 유용하지 않을 수 있다는 것을 알았습니다.
start cmd: # grep "^cpu MHz" /proc/cpuinfo
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 2050.000
cpu MHz : 800.000
내 CPU는 약 2GHz에서 최대치를 기록합니다. 부분적으로 유휴 상태일 때 각 코어의 클록 주파수는 (개별적으로) 최소 800MHz로 줄어들 수 있습니다. CPU 컴퓨팅 성능에 대한 현재 요구 사항은 명확합니다. 그러나 비교 값("최대값은 얼마입니까?")은 현재 주파수에 따라 크게 달라집니다.
CPU에 비해할 수 있다부하가 훨씬 낮아야 합니다. 예: 2GHz에서 실행되는 모든 코어, 로드(여러 실행 프로세스의 결합)는 1입니다. 모든 코어가 800MHz에서 실행된다면 동일한 작업 부하는 약 2.5의 부하로 측정될 것입니다.
그래서 유용하게 사용하려면 부하 값을 CPU 최대 속도 성능 측면에서 측정해야 한다고 생각합니다. 즉, 코어는 2.5의 로드를 측정하지만 800MHz에서만 실행된다는 것을 알고 있으므로 로드가 실제로 1.0에 불과하다는 것을 알고 있습니다.
어떤 경우에는 부하는 주파수에 의존하지 않는다는 것을 알고 있습니다. 가능한 한 많은 CPU를 소비하는 2개의(단일 스레드) 프로세스가 있지만 시스템의 다른 프로세스에는 많은 CPU가 필요하지 않은 경우 로드는 빈도에 관계없이 항상 2가 됩니다. 그러나 이는 일반적인 경우가 아닙니다.
질문
코어의 부하 값은 현재 주파수(제가 가정한 것임)를 참조합니까, 아니면 사용 가능한 최대 주파수를 참조합니까?
이를 고려한 도구가 있습니까? 즉, "하중: 2.5(측정) / 1.0(수정)"이라는 두 가지 값을 표시하는 도구입니다.