ฉันเข้าใจว่าโหลดบาลานซ์เป็นวิธีการวัดว่า CPU มีงานยุ่งเพียงใด อย่างไรก็ตามฉันไม่เข้าใจว่าโหลดเฉลี่ยของ0.00
สามารถมีอยู่ได้อย่างไร เคอร์เนลไม่ทำงานเสมอหรือไม่ นั่นไม่ได้เป็นส่วนหนึ่งของการโหลดของ CPU ใช่ไหม
ฉันเข้าใจว่าโหลดบาลานซ์เป็นวิธีการวัดว่า CPU มีงานยุ่งเพียงใด อย่างไรก็ตามฉันไม่เข้าใจว่าโหลดเฉลี่ยของ0.00
สามารถมีอยู่ได้อย่างไร เคอร์เนลไม่ทำงานเสมอหรือไม่ นั่นไม่ได้เป็นส่วนหนึ่งของการโหลดของ CPU ใช่ไหม
คำตอบ:
โหลดเฉลี่ยในช่วงระยะเวลาหนึ่งคือจำนวนเฉลี่ยของกระบวนการที่แข่งขันกับ CPU ในช่วงเวลานั้น เคอร์เนล "" จะไม่ทำงานหากไม่มีสิ่งใดที่ต้องทำ โดยเฉพาะอย่างยิ่งหากไม่มีสิ่งใดที่ต้องทำ CPU จะถูกกำหนดให้กับเธรด "idle" พิเศษที่ไม่นับ (และอาจทำสิ่งต่าง ๆ เช่นใส่ CPU เป็นสถานะที่รอการขัดจังหวะ)
ตัวอย่างเช่นค่าเฉลี่ยการโหลด 0.6 มากกว่า 5 นาทีมักจะหมายความว่าในช่วง 5 นาทีนั้น CPU ถูกใช้เป็นเวลา 3 นาทีโดยกระบวนการ (es) (หรือโดยเคอร์เนล) และรวม 2 นาที ไม่ได้ใช้งาน แต่อย่างที่ @UKMonkey สังเกตก็อาจหมายถึงว่าหลังจากทำอะไรไป 4 นาทีครึ่งกระบวนการ 6 รายการแข่งขันกันสำหรับซีพียูในช่วง 30 วินาทีที่ผ่านมา ...
CPU ไม่มีการใช้งานเนื่องจากไม่มีกระบวนการที่ต้องการใช้เพื่อเรียกใช้รหัสเนื่องจากกระบวนการทั้งหมดกำลังรอการดำเนินการอินพุตหรือเอาต์พุตให้เสร็จสมบูรณ์หรือกำลังรอให้เครื่องนอนในเวลาที่กำหนดในอนาคต
ลิงก์ของ @ Panther ให้การสนทนาเชิงลึกเพิ่มเติมเกี่ยวกับค่าเฉลี่ยของการโหลด
ค่าเฉลี่ยการโหลดคือการวัดว่า CPU แกนที่มากเกินไปอยู่ในแง่ของจำนวนกระบวนการที่ต้องการใช้ในครั้งเดียว
ต่อไปนี้จะถือว่า CPU แกนเดียว (เธรดเดียว):
0.0
CPU ไม่ได้ทำอะไรเลย หากกระบวนการใดกำลังจะเริ่มใช้งาน CPU มันก็จะเป็นกระบวนการเดียวที่ใช้มัน
idle CPU ไม่ได้หมายความว่าไม่มีกระบวนการที่ทำงานอยู่ ตัวอย่างเช่นบริการพื้นหลังและเคอร์เนลยังคงทำงานอยู่และยังคงมีหน่วยความจำอยู่ พวกเขาไม่ได้ใช้ CPU เพราะพวกเขาไม่ได้ทำอะไรเลย
1.0
CPU มีการใช้งานสูงสุด แต่ไม่มีข้อขัดแย้งระหว่างกระบวนการสำหรับการใช้งาน CPU กล่าวคือมีเพียงกระบวนการเดียวเท่านั้นที่ทำงานดังนั้นจึงสามารถเรียกร้องเวลา 100% ของเวลา CPU ได้เอง หลายกระบวนการกำลังทำงานอยู่ แต่ไม่มีใครอ้างสิทธิ์ CPU 100% และการใช้งาน CPU รวมกันเพิ่มขึ้นสูงสุด 100% พวกเขาทั้งหมดยังคงทำงานเร็วเท่าที่พวกเขาจะทำงานแม้ว่าพวกเขาจะมีซีพียูเอง
มากกว่า 1.0
CPU มีการใช้งานสูงสุดและมีหลายกระบวนการที่ต้องการใช้พร้อมกันเพื่อให้ทำงานได้อย่างมีประสิทธิภาพช้ากว่าที่พวกเขาจะสามารถทำงานบน CPU ที่ไม่ทำงาน ตัวอย่างเช่นค่าเฉลี่ยการโหลด 3.0 หมายถึงกระบวนการกำลังทำงานที่ความเร็วหนึ่งในสามที่ต้องการใช้ ค่าเฉลี่ยการโหลด 50.0 หมายถึงกระบวนการกำลังทำงานที่ 1/50 ความเร็วที่พวกเขาต้องการเรียกใช้เนื่องจากกระบวนการอื่นทั้งหมดทำงานอยู่ นั่นคือตัวเลขที่สูงกว่า 1.0 บ่งชี้ว่า CPU ที่มีอยู่กำลังถูกยืดระหว่างกระบวนการมากขึ้นเรื่อย ๆ
การมีซีพียูหลายคอร์ไม่ได้เปลี่ยนแปลงความหมายของตัวเลข แต่สามารถเปลี่ยนการตีความได้ ตัวอย่างเช่นหากคุณมีซีพียู 4 คอร์โหลดที่ 1.0 จะยังคงเท่ากับกระบวนการหนึ่งที่ใช้ CPU 100% ในหนึ่งคอร์ แต่มีคอร์อื่นอีกสามคอร์ ดังนั้นสำหรับซีพียู 4 คอร์จุดที่มีประสิทธิภาพสูงสุดคือ 4.0 ไม่ใช่ 1.0 - และจุดที่ทุกอย่างทำงานด้วยประสิทธิภาพ 1/3 คือ 12.0 ไม่ใช่ 3.0 เพื่อเพิ่มความซับซ้อนกระบวนการเดียวอาจมีเธรดมากกว่าหนึ่งเธรดแต่ละตัวที่อ้างสิทธิ์ CPU ของตัวเอง ดังนั้นกระบวนการเดียวสามารถใช้ 100% ของทั้ง 4 คอร์หากเป็นแบบมัลติเธรด
โน๊ตสำคัญ
การใช้ CPU เป็นเพียงทรัพยากรเดียวที่อาจ จำกัด ประสิทธิภาพของกระบวนการ I / O เป็นอีกสิ่งหนึ่งและไม่ได้รวมอยู่ในโหลด CPU กระบวนการที่ใช้ซีพียูจำนวนหนึ่งจะไม่สามารถใช้งานได้มากขึ้นในเครื่องที่มีน้ำหนักเบาเนื่องจากอาจเกิดปัญหาคอขวดอื่น ๆ
โหลดเฉลี่ยที่ดีที่สุดคืออะไร
มันขึ้นอยู่กับสิ่งที่คุณกำลังทำและไม่ว่าคุณจะชอบการตอบสนองหรือให้ CPU ทำงานหนักที่สุด
สำหรับสิ่งที่ต้องทำให้มากที่สุดค่าเฉลี่ยของการโหลดควรอยู่ที่หรือสูงกว่าจำนวนแกนประมวลผลเล็กน้อย สิ่งที่ยิ่งใหญ่กว่าสิ่งนี้บ่งชี้ว่าคุณสามารถทำได้มากขึ้นเร็วขึ้นถ้าคุณแยกงานข้ามคอมพิวเตอร์ / เซิร์ฟเวอร์มากขึ้น
สำหรับบางสิ่งที่จำเป็นต้องตอบสนองให้ได้มากที่สุด (ตอบสนองอย่างรวดเร็ว) ค่าเฉลี่ยการโหลดควรเป็นระยะขอบที่สะดวกสบายน้อยกว่าจำนวนแกนเช่นครึ่งหรือหนึ่งในสามซึ่งอนุญาตให้มีการแปรผันเป็นระยะ ๆ
สำหรับแขกผู้ใช้งานเวอร์ช่วลไลเซชัน (เช่น KVM) ยิ่งโหลดเฉลี่ยลดลงก็ยิ่งดีเพราะคุณแชร์ CPU กับแขกคนอื่น ๆ บนโฮสต์เดียวกัน
D
กระบวนการสถานะจะรวมอยู่ในค่าเฉลี่ยการโหลดใน Linux เสมอ ใช่มันสับสน ใช่เราควรดูการวัดอื่น ๆ เป็นหลักมากกว่า load avg
ค่าเฉลี่ยโหลดเฉลี่ย 0.00 หมายถึงระบบของคุณไม่มีการใช้งานและไม่มีความล่าช้าหรือความเค้นหรือปัญหาคอขวดของ CPU ในช่วงเวลาที่วัด
มันไม่ได้หมายความว่า CPU ของคุณไม่ได้ใช้งาน แต่ก็หมายความว่าหากกระบวนการต้องการเวลาของ CPU จะไม่มีการรอ
เป็นการยากที่จะพูดเพิ่มเติมจากสิ่งเล็ก ๆ น้อย ๆ ที่คุณโพสต์เพราะขึ้นอยู่กับว่าคุณวัดภาระของคุณอย่างไร (ระบบ, ต่อผู้ใช้?) และเวลาใด
สำหรับรายละเอียดบางอย่างและการอ่านที่น่าสนใจดู
https://www.tecmint.com/understand-linux-load-averages-and-monitor-performance/
http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
http://www.brendangregg.com/blog/2017-08-08/linux-load-averages.html