Bence yukarıdaki cevapların hiçbiri tatmin edici değil.
Aşağıdaki bağlantıya atıfta bulunduğum makalenin bu soruyu cevaplamak için iyi hedeflendiğini düşünüyorum:
http://perfdynamics.blogspot.ch/2014/01/monitoring-cpu-utilization-under-hyper.html
ALINTI:
HT'nin arkasındaki fikir, o anda çalışan uygulama durduğunda farklı bir uygulama iş parçacığının çalışmasına izin vermektir; şube yanlış tahminleri, boru hattındaki kabarcıklar, vb. nedeniyle. Bunu mümkün kılmak için başka bir liman veya AS kaydı olması gerekir. HT etkinleştirildiğinde bu kayıt OS tarafından görünür hale gelir. Bununla birlikte, işletim sistemi (ve gıda zincirini kullandığınız mükemmel araçlara kadar), işlemci kapasitesinin iki katı olduğunu, yani her AS bağlantı noktasında% 100 CPU olduğunu düşünüyor.
Ancak kaputun altında hala tek bir yürütme birimi var: HT etkinleştirilmeden önce başlattığınız tek, fiziksel, çekirdek. Aradaki fark, 2 AS portu arasında bir şekilde paylaşılmasıdır. Tek çekirdeğin iki bağlantı noktası arasında nasıl geçişi çok karmaşıktır ancak sorgulanan kuyruklar açısından en kolay anlaşılır. GCaP sınıflarımda bu ayrıntı düzeyine giriyorum.
Sahip olduğum en iyi durum test ölçümleri, her HT bağlantı noktasının, işletim sistemine göre ortalama olarak beklenen% 200 kapasitenin% 75'inden fazla meşgul olamayacağını gösterir. Daha önce bahsettiğim "eksik"% 50 kapasite bir yanılsamadır. Intel, genel uygulamalar için% 120 ila% 130 aralığında bir şey beklendiğini iddia etti.
Aslında, işletim sisteminin her sanal çekirdeğin% 100'üne ulaşabileceğinden eminim, hiç şüphe yok. Ben sadece bir yaptım:
mvn clean install -DskipTests -T 5
8 sanal çekirdeğimi ve 4 fiziksel çekirdeğin% 100 CPU kullanımına gittiğini garanti ederim. Ve kesinlikle makinemde 8 çekirdek yok.
Uzun lafın kısası, toplam CPU yükünün en fazla% 100'ün üzerine çıkması ve büyük olasılıkla tam olarak% 100 fiziksel çekirdeğin kullanılmasıyla aşağıdakileri varsayabilirsiniz. Bu menas, fiziksel CORE 1 işletim sistemi CPU 1 ve CPU 2'ye ayrıldıysa ve CPU 1'de toplam kullanımınız% 50 ve CPU 2'de toplam kullanımınız% 50, büyük olasılıkla gerçek hayatta bu CPU üzerinde% 100 toplam kullanım basıncı uygular. Siz bunu en üst düzeye çıkardınız.
Ama tabii ki, sistem izleme araçlarındaki işletim sisteminin, bir yanılsama sattığı konusunda hiçbir fikri yoktur. İşletim sistemi açısından ve kaynakları nasıl yönettiğinden, sadece bu iki sanal çekirdeğin her birinin hala yüzde 50 boşta olduğuna inanacak, bu yüzden çalıştırılacak daha fazla görev varsa, bunları bu iki çekirdek üzerinde eşit olarak dağıtmaya çalışacak . Bu nedenle,% 100'ün üzerinde CPU kullanımından geçtiğinizde, CPU kullanımının bir döneminde, CPU'da zaman sclice almak için hiçbir zaman bir değişiklik yapmayan bu dönemde çalışmak için her zaman sıraya alınmış bir çalışma vardır. Sonunda bunu alacak, ancak çalışması planlanmış olsa bile aslında çalışmayan bazı iş parçacıkları her zaman vardır.
Teşekkürler