내 의견으로는 위의 답변 중 어느 것도 만족스럽지 않습니다.
다음 링크에서 언급 한 기사 가이 질문에 대한 답변을 제공하는 것으로 생각됩니다 .http :
//perfdynamics.blogspot.ch/2014/01/monitoring-cpu-utilization-under-hyper.html
인용문:
HT의 기본 개념은 현재 실행중인 앱이 정지 될 때 다른 애플리케이션 스레드를 실행할 수 있도록하는 것입니다. 분기 잘못 예측, 파이프 라인의 기포 등으로 인해 가능합니다.이를 가능하게하려면 다른 포트 또는 AS 레지스터가 있어야합니다. HT가 활성화되면 해당 레지스터가 OS에 표시됩니다. 그러나 OS (및 사용중인 성능 도구에 이르기까지 먹이 사슬까지)는 이제 두 배의 프로세서 용량 (즉, 각 AS 포트에서 100 % CPU)을 사용할 수 있다고 생각합니다.
그러나 HT가 활성화되기 전에 시작한 단일의 물리적 코어 는 여전히 하나의 실행 단위입니다. 차이점은 2 AS 포트간에 어떤 방식으로 공유되고 있다는 것입니다. 단일 코어가 두 포트 사이를 전환하는 방법은 매우 복잡하지만 폴링 된 대기열 측면에서 가장 쉽게 이해할 수 있습니다. 나는 GCaP 수업에서 그 수준에 대해 자세히 설명합니다.
필자가 보유한 최상의 테스트 측정 결과, 각 HT 포트는 평균 75 % 이상, 평균 OS 또는 OS에 따라 예상되는 총 200 % 용량의 150 % 이상이 될 수 없음을 나타냅니다. 앞서 언급 한 "누락 된"50 % 용량은 환상입니다. 인텔은 일반 애플리케이션에서 120 % ~ 130 % 범위의 무언가를 기대할 수 있다고 주장했다.
실제로 각 가상 코어에서 운영 체제가 100 %에 도달 할 수 있다고 확신합니다. 방금 다음을 수행했습니다.
mvn clean install -DskipTests -T 5
그리고 8 개의 가상 코어와 4 개의 물리적 코어가 모두 100 % CPU 사용률에 도달했음을 보증 할 수 있습니다. 그리고 내 컴퓨터에는 8 코어가 없습니다.
간단히 말해서, 총 CPU로드가 최대 100 %를 초과하고 물리적 코어의 정확히 100 %를 사용하여 상당히 정확할 경우 다음을 가정 할 수 있습니다. 물리적 CORE 1이 운영 체제 CPU 1과 CPU 2로 분할되어 있다면 CPU 1의 총 사용량은 50 %이고 CPU 2의 총 사용량은 50 %입니다. 해당 CPU에 총 100 %의 사용 압력을가합니다. 당신은 그것을 최대한 활용했습니다.
그러나 물론 시스템 모니터링 도구의 운영 체제는 그것이 당신에게 환상을 판다는 것을 모릅니다. 운영 체제의 관점과 리소스 관리 방법에서 볼 때이 두 가상 코어 각각이 여전히 50 % 유휴 상태라고 믿기 때문에 실행해야 할 작업이 더 있으면 두 코어에 균일하게 분배하려고합니다. . 따라서 CPU 사용률이 100 %를 초과하면 CPU 사용 기간 동안 CPU에서 시간이 걸리도록 변경되지 않은 해당 시간 동안 실행 대기중인 작업이 항상 있습니다. 결국에는 얻을 수 있지만 실제로 실행되도록 예약되어 있어도 실제로 실행되지 않는 스레드가 항상 있습니다.
감사