ทำไมรายงานถึงการใช้งาน CPU ที่ไม่ถูกต้อง


10

ฉันมีเครื่องที่Intel(R) Xeon(R) CPU E5520มองเห็นเป็น 16 แกนตรรกะ (8 กับ HT) ถ้าฉันกินบางสิ่งบางอย่างเพื่อกินเวลา CPU (เธรดเดี่ยว) ด้านบนอย่างถูกต้องรายงานการใช้งาน CPU 100% สำหรับกระบวนการ แต่เพียงประมาณ 3-4% การใช้ทั้งหมด

Cpu(s):  3.6%us,  0.0%sy,  0.0%ni, 96.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.1%st

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1567 www       20   0 65632   84    4 R  100  0.0   0:05.96 burnMMX

แน่นอนว่าการใช้งานที่รายงานควรเป็น 6.25% (1 จาก 16 คอร์)

  • มันไม่ถูกต้องเพราะมันเป็นเครื่องเสมือนจริงเหรอ?
  • ฉันจะคำนวณค่าที่ถูกต้องได้อย่างไร
linux  cpu  top 

1
คุณอาจลองatopและการเปลี่ยนแปลงด้านบนเพื่อใช้รายงานของ CPU แต่ละรายบุคคล (โดยการกด1)
ฮิวเบิร์ Kario

@HubertKario การใช้งานที่รายงานสำหรับแต่ละคอร์นั้นถูกต้องแล้วเหตุใดจึงผิดทั้งหมด?

หากระดับการใช้งานของคอร์แต่ละคอร์นั้นถูกต้องนี่จะเป็นการแนะนำบั๊กที่อยู่ด้านบนอย่างที่ไม่น่าจะเป็น ...
Hubert Kario

นี่จะไม่ใช่โพสต์แรกเกี่ยวกับผลลัพธ์ที่ไม่ถูกต้องใน VM คุณสามารถอธิบายเทคโนโลยี VM และโฮสต์และระบบปฏิบัติการเกสต์ของคุณได้หรือไม่?
นิลส์

@Nils Xen พร้อมแขก Ubuntu / 2.6.32-21-server ไม่มีข้อมูลเกี่ยวกับโฮสต์ระบบปฏิบัติการ

คำตอบ:


12

topในรายงานสรุปการใช้งานที่สัมพันธ์กับ CPU โดยมีการเพิ่มคอร์ทั้งหมด ในทางกลับกันเมื่อคุณดูในรายการกระบวนการเปอร์เซ็นต์รายงานยอดนิยมที่อ้างอิงถึงหนึ่งคอร์ (จริงหรือ HT) ลองใช้กระบวนการที่มี 4 เธรดที่กินได้ถึง 4 คอร์ซีพียูคุณจะพบได้โดยใช้ซีพียู 400%

ฉันไม่สามารถบอกได้ว่าทำไม แต่นั่นเป็นวิธีที่topทำงานบนระบบ Linux ทั้งหมดที่ฉันเคยเห็น


5

ส่วนใหญ่มักจะtopทำงานในโหมด 'Irix' ตามค่าเริ่มต้นเช่นเดียวกับที่คุณอธิบาย หากคุณต้องการที่จะได้รับร้อยละของความสามารถทั้งหมด CPU (เช่นเมื่อผลรวมของการใช้งาน CPU ที่เป็นไปได้เพิ่มขึ้นถึง 100% และไม่ cpu_cores_number * 100%) เพียงแค่สลับโหมด 'Irix' Iโดยการกด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.