การวัดโหลดซีพียูที่มีไฮเปอร์เธรด
ฉันจะรับการใช้งานที่แท้จริงของ cpu ที่เปิดใช้งานแบบมัลติคอร์แบบหลายเธรดได้อย่างไร ตัวอย่างเช่นให้พิจารณาซีพียู 2 คอร์ซึ่งแสดงคอร์เสมือน 4 คอร์ เวิร์กโหลดเธรดเดียวจะแสดงเป็น 100% ในtopเนื่องจากแกนหลักเสมือนหนึ่งคอร์ถูกใช้อย่างสมบูรณ์ CPU และtopทำงานได้ตามที่คาดหวังเช่นจะมี 4 คอร์จริง อย่างไรก็ตามด้วยสองเธรดสิ่งที่ได้รับคือ: ถ้าทุกอย่างทำงานได้ดีพวกเขาจะมีความสมดุลกับคอร์ที่แท้จริงสองคอร์ดังนั้นเราจึงมีการใช้งาน 200%: สองเท่า 100% และสองคอร์เสมือนว่างและใช้พลังงาน CPU ที่มีอยู่ทั้งหมด . ดูเหมือนว่าตกลงกับฉัน อย่างไรก็ตามหากเธรดสองเธรดรันบนแกนประมวลผลจริงเดียวเธรดเหล่านั้นจะปรากฏขึ้นโดยใช้สองเท่า 100% ซึ่งจะทำให้การใช้งานแกนประมวลผลเสมือน 200% แต่ในด้านของจริงนั่นจะเป็นหนึ่งคอร์ที่ใช้พลังงานร่วมกันในสองเธรดซึ่งจะใช้ซีพียูเพียงครึ่งเดียว ดังนั้นหมายเลขการใช้งานที่แสดงโดยtopไม่สามารถใช้เพื่อวัดปริมาณงาน CPU ทั้งหมด ฉันยังสงสัยว่าการทำไฮเปอร์เธรดสร้างความสมดุลของสองเวอร์ชวลบนแกนจริง หากสองเธรดใช้จำนวนรอบที่แตกต่างกันแกนประมวลผลเสมือนจะ 'ปรับ' เพื่อให้ทั้งคู่แสดงโหลด 100% แม้ว่าโหลดจริงจะแตกต่างกันหรือไม่