เหตุใด“ สถานะการออนไลน์” จึงแสดงโหลด CPU> 1


14

ฉันติดตั้งซีพียู 1 คอร์บนพีซีของฉัน บางครั้งuptimeแสดงโหลด> 1 สิ่งนี้เป็นไปได้อย่างไรและสิ่งนี้หมายความว่าอย่างไร

แก้ไข: ค่าขึ้นไป 2.4


หมายเหตุ: ความแตกต่างจากload load averageตามที่ @michas กล่าวว่าการโหลดเป็นตัวบ่งชี้สำหรับการนับกระบวนการที่กำลังรอการดำเนินการ แต่ค่าเฉลี่ยการโหลดคือการโหลดระบบเฉลี่ยที่คำนวณในช่วงเวลาที่กำหนด 1, 5 และ 15 นาที
โมฮัมหมัด Kholghi

คำตอบ:


20

โหลดไม่เท่ากับการใช้งาน CPU โดยพื้นฐานแล้วมันเป็นตัวบ่งชี้ว่ามีหลายกระบวนการที่รอดำเนินการ

ลิงค์ที่เป็นประโยชน์บางส่วน:


อ้อเข้าใจแล้ว มีวิธีรับการใช้งาน CPU ไม่โหลดหรือไม่
Richard Rodriguez

โดยทั่วไปคุณอาจมีซีพียูจำนวนมาก หนึ่งอาจยุ่งทั้งหมดและอื่น ๆ เพียงไม่ทำงาน ดูhtopภาพรวม "กราฟิก" ที่ดี
michas

2
สิ่งนี้ไม่ถูกต้อง โหลดเฉลี่ยเป็นตัวชี้วัดจำนวนกระบวนการที่พร้อมที่จะดำเนินการ ซึ่งรวมถึงกระบวนการที่กำลังรอ แต่ยังกระบวนการที่กำลังดำเนินการอยู่ในปัจจุบัน ดังนั้นหากค่าเฉลี่ยการโหลดเป็น 1 ก็หมายความว่าโดยเฉลี่ย (สำหรับช่วงเวลาที่กำหนด) หนึ่ง CPU ถูกใช้งานอยู่ หากเป็นสองหมายความว่าโดยเฉลี่ยแล้วมีการใช้งาน CPU สองตัว ดังนั้นค่าเฉลี่ยการโหลดเฉพาะสำหรับระบบ CPU เดียวจึงไม่เหมือนกับค่าเฉลี่ยการโหลดแบบเดียวกันสำหรับระบบมัลติคอร์
Wouter Verhelst


7

uptimeแสดงการโหลดระบบ (ไม่ใช่การใช้งาน CPU ทั้งหมด) ซึ่งอธิบายไว้ในman uptimeดังนี้:

ค่าเฉลี่ยการโหลดระบบคือจำนวนเฉลี่ยของกระบวนการที่อยู่ในสถานะที่รันได้หรือไม่สามารถหยุดทำงานได้ กระบวนการในสถานะที่เรียกใช้ได้อาจใช้ CPU หรือรอการใช้ CPU กระบวนการในสถานะที่ไม่สามารถหยุดการทำงานกำลังรอการเข้าถึง I / O บางอย่างเช่นกำลังรอดิสก์ ค่าเฉลี่ยจะได้รับในช่วงเวลาสามครั้ง ค่าเฉลี่ยการโหลดไม่ได้ถูกทำให้เป็นมาตรฐานสำหรับจำนวนของ CPU ในระบบดังนั้นค่าเฉลี่ยการโหลดที่ 1 หมายถึงระบบ CPU เดียวถูกโหลดตลอดเวลาในขณะที่ระบบ CPU 4 นั้นหมายความว่ามันไม่ได้ใช้งาน 75% ของเวลา

ตราบใดที่การโหลดน้อยกว่าจำนวนแกน CPU ที่คุณมีก็ควรจะใช้ได้ หากได้รับเหนือแสดงว่าระบบของคุณไม่สามารถรับมือกับปริมาณงาน "ตามเวลาจริง" ดังนั้นกระบวนการบางอย่างต้องรอรับเวลา CPU (หรือการเข้าถึง IO) มีการสร้างสายรอ

หากคุณมีการโหลด 2.7 หมายความว่าโดยเฉลี่ย (ในช่วง 1, 5 หรือ 15 นาทีขึ้นอยู่กับค่าที่คุณดู) 2.7 กระบวนการพยายามที่จะดำเนินการแบบขนาน แต่คุณมี 1 คอร์ดังนั้นระบบของคุณ โอเวอร์โหลดแล้ว คุณถามมากเกินไป

อย่าตกใจแม้ว่ามันอาจจะไม่ใช่ปัญหาเช่นนี้: เมื่องานเสร็จแล้วสิ่งต่าง ๆ ก็จะกลับมาเป็นปกติ


4

สถานะการออนไลน์แสดงผลลัพธ์ของ/proc/loadavgการโหลด

manpage ของman 5 procพูดว่า

   /proc/loadavg
          The first three fields in this file are load average figures giving
          the  number  of jobs in the run queue (state R) or waiting for disk
          I/O (state D) averaged over 1, 5, and 15  minutes. 

ดังนั้นคุณสามารถรับภาระสูงแม้ว่าคุณจะมีการใช้งาน CPU 0% หนึ่งคอร์สามารถรับโหลดได้มากถึง 100% หรือ 1 ในระบบประมวลผลหลายตัว

ดูเพิ่มเติมโหลด CPU สูงระหว่าง I / O


-2
 ps aux --sort -rss |head -15

ซึ่งจะเรียงลำดับ 15 กระบวนการที่ใช้มากที่สุดโดยหน่วยความจำ rss

นอกจากนี้ยังจะเรียงลำดับกระบวนการที่ใช้มากที่สุดโดย cpu และหน่วยความจำ

 ps aux --sort -pid |head -15

หากคุณมี 1 CPU โหลดมากกว่า 1 คำเตือนให้ตรวจสอบรายการกระบวนการและดูว่าใครในนั้นใช้ CPU และ RAM ส่วนใหญ่

เมื่อคุณเห็นกระบวนการที่ใช้มากที่สุดพยายามดูว่าไฟล์ใดเปิดอยู่

lsof -p [PID_most_used]

มันจะดีถ้าคุณให้ ouptut จากคำสั่งด้านบน


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