Menurut pendapat saya tidak ada jawaban di atas yang memuaskan.
Saya pikir artikel yang saya maksudkan pada tautan berikut ditargetkan dengan baik untuk menjawab pertanyaan ini:
http://perfdynamics.blogspot.ch/2014/01/monitoring-cpu-utilization-under-hyper.html
MENGUTIP:
Gagasan di balik HT adalah untuk memungkinkan utas aplikasi yang berbeda dijalankan ketika aplikasi yang sedang berjalan terhenti; karena salah duga cabang, gelembung dalam pipa, dll. Untuk memungkinkan itu, harus ada port lain atau register AS. Register itu menjadi terlihat oleh OS ketika HT diaktifkan. Namun, OS (dan terus meningkatkan rantai makanan ke alat perf apa pun yang Anda gunakan) sekarang berpikir dua kali kapasitas prosesor tersedia, yaitu, 100% CPU di setiap port AS.
Tetapi di bawah tenda, masih ada hanya satu unit eksekusi: inti tunggal, fisik, Anda mulai dengan sebelum HT diaktifkan. Perbedaannya adalah bahwa itu dibagi dalam beberapa cara antara 2 port AS. Bagaimana single core ditukar antara dua port sangat rumit tetapi paling mudah dipahami dalam hal antrian yang disurvei. Saya masuk ke tingkat detail di kelas-kelas GCaP saya.
Pengukuran tes kasus terbaik yang saya miliki, menunjukkan bahwa setiap port HT tidak dapat menjadi lebih dari 75% sibuk, rata-rata, atau 150% dari total kapasitas yang diharapkan 200% sesuai dengan OS. Kapasitas "hilang" 50%, yang saya sebutkan sebelumnya, adalah ilusi. Intel telah mengklaim bahwa sesuatu dalam kisaran 120% hingga 130% dapat diharapkan untuk aplikasi umum.
Bahkan, saya cukup yakin sistem operasi dapat mencapai 100% pada setiap inti virtual, tidak diragukan lagi. Saya baru saja melakukan:
mvn clean install -DskipTests -T 5
Dan saya dapat meyakinkan Anda 8 core virtual saya, dan 4 core fisik semuanya menggunakan CPU 100%. Dan saya pasti tidak memiliki 8 core pada mesin saya.
Singkatnya, Anda dapat mengasumsikan berikut ini jika total beban CPU melebihi 100%, paling banyak, dan kemungkinan besar cukup akurat, menggunakan tepat 100% inti fisik. Itu menas, jika Anda memiliki CORE 1 fisik dibagi menjadi sistem operasi CPU 1 dan CPU 2. Dan pada CPU 1 Anda memiliki total penggunaan 50% dan pada CPU 2 Anda memiliki total penggunaan 50%, kemungkinan besar dalam kehidupan nyata Anda Menekan total penggunaan 100% pada CPU itu. Anda telah memaksimalkannya.
Tapi tentu saja sistem operasi dalam alat pemantauan sistemnya tidak tahu bahwa itu menjual Anda sebuah ilusi. Dari sudut pandang sistem operasi dan bagaimana ia mengelola sumber daya, ia hanya akan percaya bahwa masing-masing dari dua core virtual tersebut masih menganggur hingga 50 persen, jadi jika ada lebih banyak tugas yang harus dijalankan, ia akan mencoba untuk mendistribusikannya secara seragam melalui kedua core tersebut. . Jadi ketika Anda menggunakan lebih dari 100% pemanfaatan CPU, selama periode penggunaan CPU, selalu ada pekerjaan yang harus dijalankan dalam periode waktu yang tidak pernah mengalami perubahan untuk mendapatkan waktu sclice pada CPU. Akhirnya akan mendapatkannya, tetapi selalu ada beberapa utas yang sebenarnya tidak berjalan meskipun mereka dijadwalkan untuk berjalan.
Terima kasih