เป็นจุดชี้แจงโหลดไม่ได้เชื่อมโยงโดยตรงกับ CPU นี่เป็นหนึ่งในความเข้าใจผิดที่พบบ่อยที่สุดเกี่ยวกับการโหลด ความจริงที่ว่าคุณพูดถึงดิสก์ดูเหมือนจะยอมรับว่าคุณรู้เรื่องนี้ แต่ฉันแค่อยากจะพูดถึงมันเพราะฉันเห็นความคิดเห็นที่บ่งบอกถึงบางคนเชื่อว่าเป็นอย่างอื่น
โหลดถูกกำหนดเป็นจำนวนกระบวนการที่รอทรัพยากรระบบ นี่คือ CPU, ดิสก์หรือเครือข่ายทั่วไป แต่สามารถเป็นฮาร์ดแวร์อะไรก็ได้
"กระบวนการ" ไม่จำเป็นต้องเป็นกระบวนการที่สมบูรณ์เช่นกัน เธรดถูกกำหนดเป็น "กระบวนการแบบ Lightweight" และแต่ละเธรดที่รอเพิ่มจำนวนการโหลด
หากต้องการทราบว่ากระบวนการใดเป็นปัญหา:
เรียกใช้top -H
(การ-H
เปิดใช้งานการแสดงหัวข้อ)
แป้นพิมพ์ลัดแตกต่างกันไปตามรุ่น
ด้วยด้านบนที่ใหม่กว่า (3.3 และหลัง):
กดfเพื่อแสดงตัวเลือกฟิลด์
ใช้ปุ่มลูกศรที่จะไปและกดS = Process Status
กดเพื่อกลับไปที่หน้าหลัก
กด+ เพื่อย้อนกลับการเรียงลำดับs
q
ShiftR
ด้วยด้านบนที่เก่ากว่า (ก่อนหน้า 3.3):
กดShift+ oเพื่อแสดงตัวเลือกการจัดเรียง
จากนั้นwเรียงลำดับตามสถานะกระบวนการ
จากนั้นEnterกลับไปที่หน้าหลัก
จากนั้นShift+ Rเพื่อย้อนกลับการเรียงลำดับ
จากนั้นในS
คอลัมน์มองหากระบวนการที่มีD
หรือR
(ตอนนี้พวกเขาควรจะอยู่ด้านบน) สิ่งเหล่านี้จะเป็นกระบวนการที่มีส่วนช่วยในการโหลดระบบ
หากกระบวนการแสดงD
ว่านั่นหมายความว่า "การนอนหลับต่อเนื่อง" มักเกิดขึ้นเมื่อกระบวนการกำลังรอ I / O (ดิสก์เครือข่าย ฯลฯ )
หากกระบวนการแสดงR
ว่านั่นหมายความว่าเป็นการคำนวณปกติ
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการเหล่านั้นกำลังทำอะไรอยู่:
ด้วยด้านบนที่ใหม่กว่า (3.3 และหลัง):
กดfเพื่อแสดงตัวเลือกฟิลด์
ใช้ปุ่มลูกศรเพื่อไปที่WCHAN = Sleeping in Function
และกดdเพื่อเปิดใช้งาน
จากนั้นqกลับสู่หน้าหลัก
ด้วยด้านบนที่เก่ากว่า (ก่อนหน้า 3.3):
กดfจากนั้นyเพื่อเปิดใช้งานWCHAN
ฟิลด์
หากระบบของคุณมีตัวเลือกเคอร์เนลที่จำเป็นและไฟล์ WCHAN เป็นปัจจุบันในระบบของคุณ(ผมลืมที่มันเป็นและสิ่งที่มันเรียกว่า)ที่WCHAN
สนามควรจะแสดงให้คุณเห็นสิ่งฟังก์ชันเคอร์เนลกระบวนการกำลังทำงานอยู่ (ถ้าสนามเพียงแค่แสดงให้เห็นถึง-
หรือ?
ทุกอย่างคุณไม่ได้รับการสนับสนุน)
google เล็กน้อยที่นี่และคุณควรจะไป
หากคุณไม่มีการสนับสนุน wchan คุณสามารถลองใช้strace
กระบวนการเพื่อค้นหาว่าพวกเขากำลังทำอะไรอยู่ แต่นั่นเป็นวิธีที่ยาก