ในความคิดของฉันไม่มีคำตอบข้างต้นเป็นที่น่าพอใจ
ฉันคิดว่าบทความที่ฉันอ้างถึงลิงก์ต่อไปนี้มีการกำหนดเป้าหมายอย่างดีเพื่อตอบคำถามนี้:
http://perfdynamics.blogspot.ch/2014/01/monitoring-cpu-utilization-under-hyper.html
อ้างอิง:
แนวคิดเบื้องหลัง HT คือการอนุญาตให้เธรดแอปพลิเคชันอื่นทำงานในขณะที่แอปที่กำลังรันอยู่ เนื่องจากการคาดคะเนผิดสาขาฟองในท่อเป็นต้นเพื่อให้เป็นไปได้ต้องมีพอร์ตอื่นหรือ AS register ระบบจะเห็นการลงทะเบียนนั้นเมื่อเปิดใช้งาน HT อย่างไรก็ตามระบบปฏิบัติการ (และห่วงโซ่อาหารจนถึงเครื่องมือที่สมบูรณ์แบบที่คุณใช้อยู่) คิดว่ากำลังการผลิตของโปรเซสเซอร์สองเท่าคือ CPU 100% ที่แต่ละพอร์ต AS
แต่ภายใต้ประทุนที่มียังคงเป็นเพียงหนึ่งหน่วยการดำเนินการ: เดียวทางกายภาพหลักคุณเริ่มต้นด้วยก่อนที่จะ HT ถูกเปิดใช้งาน ความแตกต่างคือมันถูกใช้ร่วมกันระหว่างพอร์ต 2 AS อย่างใดอย่างหนึ่ง วิธีการที่แกนเดี่ยวได้รับการสลับระหว่างสองพอร์ตนั้นซับซ้อนมาก แต่เข้าใจได้ง่ายที่สุดในแง่ของการจัดลำดับคิว ฉันไปที่ระดับรายละเอียดในชั้นเรียน GCaP ของฉัน
การวัดการทดสอบที่ดีที่สุดที่ฉันมีบ่งชี้ว่าแต่ละพอร์ต HT ไม่สามารถทำได้มากกว่า 75% ไม่ว่างโดยเฉลี่ยหรือ 150% ของความจุทั้งหมดที่คาดว่าจะได้ 200% ตามระบบปฏิบัติการ ความจุ "ที่หายไป" 50% ที่ฉันอ้างถึงก่อนหน้านี้เป็นภาพลวงตา Intel ได้อ้างว่ามีบางอย่างที่อยู่ในช่วง 120% ถึง 130% สำหรับแอปพลิเคชันทั่วไป
ในความเป็นจริงฉันค่อนข้างมั่นใจว่าระบบปฏิบัติการสามารถเข้าถึง 100% ในแต่ละคอร์เสมือนได้ไม่ต้องสงสัยเลย ฉันเพิ่งทำ:
mvn clean install -DskipTests -T 5
และฉันสามารถรับรองคุณได้ถึง 8 คอร์เสมือนและคอร์ฟิสิคัล 4 คอร์ทั้งหมดใช้งาน CPU 100% และแน่นอนฉันไม่มี 8 คอร์ในเครื่องของฉัน
เรื่องสั้นสั้น ๆ คุณสามารถสมมติสิ่งต่อไปนี้ถ้าภาระของ CPU ทั้งหมดเกินกว่า 100% ที่คุณเป็นมากที่สุดและเป็นไปได้ค่อนข้างแม่นยำโดยใช้ 100% ของคอร์ทางกายภาพ Menas นั้นถ้าคุณมีฟิสิคัล CORE 1 แบ่งออกเป็นระบบปฏิบัติการ CPU 1 และ CPU 2 และใน CPU 1 คุณมีการใช้งานรวม 50% และบน CPU 2 คุณมีการใช้งานรวม 50% ซึ่งเป็นไปได้มากที่สุดในชีวิตจริงของคุณ สร้างแรงกดดันให้กับการใช้งานทั้งหมด 100% บน CPU นั้น คุณทำมันจนเต็มแล้ว
แต่แน่นอนว่าระบบปฏิบัติการในเครื่องมือตรวจสอบระบบไม่มีความคิดที่จะขายภาพลวงตาให้คุณ จาก prespective ของระบบปฏิบัติการและวิธีการจัดการทรัพยากรมันก็จะเชื่อว่า eeach ของทั้งสองแกนเสมือนยังคงว่าง 50 เปอร์เซ็นต์ดังนั้นหากมีงานที่ต้องดำเนินการมากขึ้นมันจะพยายามกระจายมันอย่างสม่ำเสมอทั่วทั้งสองแกน . ดังนั้นเมื่อคุณใช้งาน CPU มากกว่า 100% ในระหว่างช่วงเวลาของการใช้งาน CPU จะมีการจัดคิวงานให้ทำงานในช่วงเวลานั้นเสมอซึ่งไม่เคยมีการเปลี่ยนแปลงใด ๆ ในที่สุดมันก็จะได้รับ แต่ก็มีเธรดบางตัวที่ไม่ได้ทำงานแม้ว่าจะมีกำหนดให้รันก็ตาม
ขอบคุณ