Moim zdaniem żadna z powyższych odpowiedzi nie jest zadowalająca.
Myślę, że artykuł, który odsyłam na następujący link, jest dobrze ukierunkowany na odpowiedź na to pytanie:
http://perfdynamics.blogspot.ch/2014/01/monitoring-cpu-utilization-under-hyper.html
ZACYTOWAĆ:
Ideą HT jest umożliwienie uruchomienia innego wątku aplikacji, gdy aktualnie uruchomiona aplikacja się zatrzyma; z powodu nieprzewidzianych rozgałęzień, pęcherzyków w rurociągu itp. Aby było to możliwe, musi istnieć inny port lub rejestr AS. Rejestr ten staje się widoczny dla systemu operacyjnego po włączeniu HT. Jednak system operacyjny (i w górę łańcucha pokarmowego do wszelkich używanych narzędzi perf) teraz uważa, że dostępna jest dwukrotnie większa pojemność procesora, tj. 100% procesora na każdym porcie AS.
Ale pod maską wciąż jest tylko jedna jednostka wykonawcza: pojedynczy, fizyczny rdzeń, który zacząłeś, zanim HT został włączony. Różnica polega na tym, że jest on w jakiś sposób współdzielony między 2 portami AS. Sposób przełączania pojedynczego rdzenia między dwoma portami jest bardzo skomplikowany, ale najłatwiej go zrozumieć w kategoriach odpytywanych kolejek. Wchodzę w ten poziom szczegółowości w moich klasach GCaP.
Najlepsze miary testowe, jakie mam, wskazują, że każdy port HT nie może być zajęty średnio więcej niż w 75% lub 150% całkowitej oczekiwanej pojemności 200% zgodnie z systemem operacyjnym. „Brakująca” 50% pojemności, o której wspomniałem wcześniej, jest iluzją. Intel twierdził, że w zakresie ogólnych zastosowań można oczekiwać czegoś w zakresie od 120% do 130%.
W rzeczywistości jestem prawie pewien, że system operacyjny może osiągnąć 100% na każdym wirtualnym rdzeniu, co do tego nie ma wątpliwości. Właśnie zrobiłem:
mvn clean install -DskipTests -T 5
I mogę was zapewnić, że moje 8 wirtualnych rdzeni, a 4 fizyczne rdzenie zostały wykorzystane w 100% do wykorzystania procesora. I zdecydowanie nie mam 8 rdzeni na moim komputerze.
Krótko mówiąc, możesz założyć, że jeśli całkowite obciążenie procesora przekroczy 100%, jesteś najwyżej i najprawdopodobniej dość dokładnie, wykorzystując dokładnie 100% rdzenia fizycznego. Ten menas, jeśli masz fizyczny CORE 1 podzielony na system operacyjny CPU 1 i CPU 2. A na CPU 1 masz całkowite wykorzystanie 50%, a na CPU 2 masz całkowite wykorzystanie 50%, najprawdopodobniej w prawdziwym życiu jesteś wywierając presję całkowitego wykorzystania 100% na ten procesor. Maksymalnie to wykorzystałeś.
Ale oczywiście system operacyjny w swoich narzędziach monitorowania systemu nie ma pojęcia, że sprzedaje ci złudzenie. Zależnie od systemu operacyjnego i sposobu zarządzania zasobami, po prostu uwierzy, że każdy z tych dwóch wirtualnych rdzeni jest nadal w 50 procentach bezczynny, więc jeśli będzie więcej zadań do uruchomienia, spróbuje je równomiernie rozdzielić na te dwa rdzenie . Tak więc, gdy przekroczysz 100% wykorzystania procesora, w okresie wykorzystania procesora, zawsze jest w kolejce do uruchomienia w tym okresie czasu, który nigdy nie miał zmiany, aby uzyskać przerwę czasową na procesorze. W końcu to dostanie, ale zawsze są pewne wątki, które w rzeczywistości nawet nie działają, nawet jeśli są zaplanowane.
Dzięki