การใช้งาน CPU เป็น % อย่างง่ายไม่สามารถสื่อถึงความซับซ้อนของหลายคอร์ หลายเธรด หลายหน่วยปฏิบัติการ CPU และหน่วยความจำ เกือบจะแน่นอน CPU หยุดทำงานจริงในหน่วยความจำหรือแคช. และกระบวนการที่มีข้อมูลของพวกเขาจะต่อสู้กับหน่วยดำเนินการ
CPU นี้มี 16 คอร์เท่านั้น การปฏิบัติเหมือนมี 32 ในบางจุดจะลดประสิทธิภาพลงอย่างมากอย่างที่คุณค้นพบ แม้แต่กับ SMT 2 บางทีคุณอาจได้รับจำนวนเธรดถึง 125% ของคอร์ (20) แต่ 175% (28) กำลังผลักดัน โดยเฉพาะอย่างยิ่งกับสิ่งอื่น ๆ ที่กำลังทำงานอยู่ กลับลงด้าย
อย่าลืมคำนวณงานที่เป็นประโยชน์ที่ทำต่อเธรดต่อวินาที ทดลองเปลี่ยนทีละตัวแปร อาจลองใช้โปรเซสเซอร์ที่มีการกำหนดค่าแคชและจำนวนคอร์ที่แตกต่างกัน หากคุณมีสิทธิ์เข้าถึงสิ่งเหล่านั้น
วัดว่าคุณจนตรอกแค่ไหนด้วยตัวนับการตรวจสอบประสิทธิภาพ จะไม่ทำงานใน VM แต่คุ้มค่าที่จะลองบน Linux จาก Gregg ที่ฉันเชื่อมโยงไว้ก่อนหน้านี้:
perf stat -a -- นอน 10
ความเร็วสูงสุดตามทฤษฎีของ Xeons คือ 4 หรือ 5 คำสั่งต่อรอบ คุณจะไม่เข้าใจ แต่ < 1.0 IPC จะหยุดชะงักเป็นพิเศษในหน่วยความจำ
ทำความเข้าใจกับโค้ดของแอปพลิเคชันและฮอตสปอตอย่างแน่นอน ฟังก์ชันใดใช้เวลาส่วนใหญ่กับ CPU รหัสแอสเซมบลีใดได้รับผลกระทบหนักที่สุด หน่วยปฏิบัติการใดใน CPU ของคุณโดยเฉพาะที่ทำงานหนักที่สุดในการประมวลผล uops เหล่านี้
กราฟเปลวไฟ เหมาะสำหรับการแสดงภาพการทำงานของ CPU คุณกล่าวถึง EL 8 ซึ่งมี เครื่องมือบรรจุเปลวไฟ.
ยำติดตั้ง perf js-d3-flame-graph
# ระบบกว้าง 99 Hz เป็นเวลา 60 วินาที
สคริปต์ perf เฟลมกราฟ -a -F 99 สลีป 60
ความเข้าใจในระดับนักพัฒนาของโปรแกรมเป็นสิ่งจำเป็นในการตีความผลลัพธ์อย่างเต็มที่ ด้วยสัญลักษณ์หรือซอร์สโค้ด รายงานประสิทธิภาพสามารถใส่คำอธิบายประกอบได้ ในดีบักเกอร์เช่นประสบการณ์