ฉันจะอ่าน htop ได้อย่างไร


9

ฉันมีปัญหาในการทำความเข้าใจข้อมูลที่แสดงโดยhtopการแทนที่ยอดนิยมสำหรับคำสั่งด้านบน Linux

การถ่ายโอนข้อมูลหน้าจอ htop

ในภาพหน้าจอด้านบนมีอินสแตนซ์ของจาวามากมายที่ระบุไว้ แต่มีเพียงพาเรนต์เดียวเท่านั้นที่ใช้เวลา CPU คนอื่นคืออะไร

เหตุใดแถบการใช้งาน CPU จึงแสดงคอร์ไม่ว่างดังกล่าวเมื่อคอลัมน์ CPU% แสดงสิ่งที่เกิดขึ้นไม่มากในทุกกระบวนการ ในความเป็นจริงพวกเขาเคลื่อนไหวโดยไม่มีความสัมพันธ์ส่วนใหญ่

ทำไมค่าเฉลี่ยการโหลด, ด้านบนขวา, ซึ่งฉันถือว่าเป็นประวัติ 3 ขั้นตอน, ต่ำมากเมื่อคอร์เกือบเป็นสีเขียวและดูยุ่งอยู่เสมอ?

ใครบางคนจะใจดีอธิบายวิธีการอ่านข้อมูลนี้?

ขอบคุณ!


ฉันทำการเปลี่ยนแปลงบางอย่างซึ่งช่วยได้มาก แสดงเธรดในสีต่าง ๆ แสดงชื่อเธรดอัพเดตชื่อกระบวนการเมื่อรีเฟรชและส่วนใหญ่เปลี่ยนการหน่วงเวลาเป็น 2/10 วินาที ความเร็วการอัพเดทเริ่มต้นจะแสดงความล่าช้าอย่างมากระหว่างหน่วยวัดของ CPU และกระบวนการต่างๆ
ลุค Puplett

1
สำหรับค่าเฉลี่ยการโหลดอย่างน้อยนั่นไม่จำเป็นต้องเป็นค่าต่ำ การโหลดเป็นตัวบ่งชี้ว่าระบบต้องรอทำอะไร ค่าที่ยอมรับได้น้อยกว่าจำนวนแกนในกรณีนี้ 4 ดังนั้นค่าเฉลี่ยเหล่านั้นจึงสมเหตุสมผล พวกเขาเป็น 1, 5 และ 15 นาทีที่ผ่านมา สำหรับข้อมูลเพิ่มเติมดู [Wikipedia] ( en.wikipedia.org/wiki/Load_(computing))
ssmy

คำตอบ:


5
  1. เกี่ยวกับ "โหลด" และ CPU% วิกิพีเดียมีคำอธิบายโดยละเอียดและตัวอย่างต่อไปนี้เป็นข้อความอ้างอิงบางส่วน

    คอมพิวเตอร์ที่ไม่ได้ใช้งานมีหมายเลขโหลดเป็น 0 และแต่ละกระบวนการที่ใช้หรือรอ CPU (พร้อมคิวหรือรันคิว) เพิ่มจำนวนโหลดโดย 1 ระบบ UNIX ส่วนใหญ่จะนับเฉพาะกระบวนการในการรัน (บน CPU) หรือรันได้ (กำลังรอ CPU) สถานะ อย่างไรก็ตาม Linux ยังมีกระบวนการในสถานะสลีปที่ไม่สามารถขัดจังหวะ (โดยปกติจะรอกิจกรรมดิสก์) ซึ่งสามารถนำไปสู่ผลลัพธ์ที่แตกต่างอย่างชัดเจนหากกระบวนการจำนวนมากยังคงถูกบล็อกใน I / O เนื่องจากระบบ I / O ไม่ว่างหรือหยุดทำงาน ตัวอย่างเช่นนี้รวมถึงกระบวนการปิดกั้นเนื่องจากเซิร์ฟเวอร์ NFS ล้มเหลวหรือทำให้สื่อช้าลง (เช่นอุปกรณ์เก็บข้อมูล USB 1.x) สถานการณ์ดังกล่าวอาจส่งผลให้โหลดเฉลี่ยสูงขึ้นซึ่งไม่สะท้อนการเพิ่มขึ้นของการใช้ CPU จริง (แต่ยังคงให้ความคิดเกี่ยวกับระยะเวลาที่ผู้ใช้ต้องรอ)

    ระบบคำนวณค่าเฉลี่ยของโหลดเป็นค่าเฉลี่ยเคลื่อนที่แบบเลขชี้กำลัง / ชื้นถ่วงน้ำหนักของหมายเลขโหลด ค่าเฉลี่ยสามค่าของการโหลดหมายถึงการดำเนินการระบบหนึ่ง, ห้า, และสิบห้านาทีที่ผ่านมา

    สำหรับระบบ CPU เดียวที่มี CPU ผูกไว้เราสามารถคิดโหลดเฉลี่ยเป็นเปอร์เซ็นต์ของการใช้งานระบบในช่วงเวลานั้น ๆ สำหรับระบบที่มีหลาย CPU ต้องแบ่งจำนวนตามจำนวนตัวประมวลผลเพื่อให้ได้เปอร์เซ็นต์เปรียบเทียบ

    แท่งอาจจะไม่ว่าง แต่ก็ไม่ถึง 100% ซึ่งจะแสดงว่าซีพียู / แกนถูกใช้อย่างเต็มที่ แถบเป็นเพียงการสร้างภาพข้อมูลของการใช้งาน cpu% ซึ่งอยู่ที่ 27%, 26.5%, 24.5%, 24.7% และ 71.7% แกน cpu ทั้งหมดยังคงมีพลังที่จะ "ว่าง" พวกเขาทั้งหมดภายใต้การใช้ประโยชน์ ณ จุดนั้น

    ระบบ 5 คอร์ / ซีพียูที่ใช้ประโยชน์อย่างเต็มที่จะมีโหลด 5 หรือสูงกว่า

  2. เกี่ยวกับแถว Java พวกเขาเป็นผู้ปกครอง (PID = 5073) และกระบวนการลูก ฉันไม่สามารถอธิบายได้ว่าทำไมผู้ปกครองถึงสะสมซีพียูเวลาส่วนใหญ่ นั่นขึ้นอยู่กับตรรกะภายในของโปรแกรม อย่างไรก็ตามตาม TIME + กระบวนการลูกเหล่านั้นใช้เวลา cpu กับโพรเซสล่าสุด (PID = 5074) สะสมมากที่สุด


เป็นไปได้ไหมที่กระบวนการ child เป็น JVM threadpool? เมื่อฉันตั้งค่าตัวเลือกเพื่อแสดงชื่อเธรดพวกเขาทั้งหมดมีชื่อเหมือนกัน ฉันเป็นโปรแกรมเมอร์ Windows + .NET fyi
Luke Puplett

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