ค่าเฉลี่ยโหลด (Load average)
ค่าเฉลี่ยโหลดคือจำนวนเฉลี่ยของกระบวนการที่กำลังทำงานหรือรอการทำงาน (รวมถึงกระบวนการที่รอการอ่าน/เขียนดิสก์) ในช่วง 1, 5 และ 15 นาทีที่ผ่านมา คำสั่ง uptime, 'top' และไฟล์ /proc/loadavg จะแสดงค่านี้ ซึ่งจำเป็นต้องนำไปเปรียบเทียบกับจำนวนคอร์ของ CPU
1การอ่านตัวเลข
'load average: 0.50, 1.20, 2.00' หมายความว่าโหลดกำลังลดลง โดยในนาทีล่าสุดมีค่าน้อยกว่าค่าเฉลี่ยในช่วง 15 นาทีที่ผ่านมา บนเครื่องที่มี 4 คอร์ ค่าโหลดที่ 4 หมายความว่า CPU ถูกใช้งานเต็มประสิทธิภาพโดยเฉลี่ย หากสูงกว่านั้น กระบวนการต่างๆ จะต้องรอคิว
2CPU หรือดิสก์
บน Linux ค่าโหลดจะนับรวมกระบวนการที่อยู่ในสถานะ uninterruptible sleep ซึ่งมักเกิดจากการรอการอ่าน/เขียนดิสก์หรือที่เก็บข้อมูลบนเครือข่าย หากค่าโหลดสูงแต่การใช้งาน CPU ใน top ต่ำ มักบ่งชี้ถึงปัญหา I/O ที่ช้า โดยค่า 'wa' ใน top จะแสดงเวลาที่ใช้ไปกับการรอ I/O
3จำนวนคอร์
คำสั่ง nproc จะแสดงจำนวนหน่วยประมวลผลที่มีอยู่ หากค่าเฉลี่ยโหลดสูงกว่าตัวเลขนี้อย่างต่อเนื่อง ควรตรวจสอบหาสาเหตุ
วิธีการตรวจสอบโหลด
- แสดงค่าโหลด:
uptime - แสดงจำนวนคอร์:
nproc - ค้นหาว่าสิ่งใดใช้งาน CPU: top (กด P เพื่อเรียงลำดับตาม CPU, M ตามหน่วยความจำ)
- หากการใช้งาน CPU ต่ำแต่ค่าโหลดสูง ให้ตรวจสอบการรอ I/O ('wa' ใน top) และกิจกรรมของดิสก์
ข้อควรระวัง
- การพุ่งสูงขึ้นเพียงชั่วคราวในค่า 1 นาทีถือเป็นเรื่องปกติ ให้ดูค่า 15 นาทีเพื่อดูแนวโน้ม
- เปรียบเทียบกับจำนวนคอร์ก่อนตัดสินว่าค่าโหลดนั้นสูงเกินไป
บทความที่เกี่ยวข้อง
- OOM killerสิ่งที่ OOM killer ใน Linux ทำ วิธีตรวจสอบว่ากระบวนการใดถูกยุติ และวิธีลดโอกาสที่จะเกิดเหตุการณ์ดังกล่าว
- systemd units และ systemctlsystemd unit คืออะไร ประเภทของ unit ที่พบบ่อย รวมถึงวิธีการเริ่ม หยุด เปิดใช้งาน และตรวจสอบบริการต่างๆ ด้วย systemctl
- พื้นที่ Swap บน LinuxSwap คืออะไร วิธีตรวจสอบด้วยคำสั่ง free และ swapon วิธีเพิ่มไฟล์ swap และการเปลี่ยนแปลงของ vm.swappiness
แหล่งอ้างอิง
- หน้าคู่มือ uptime(1) man7.org
- หน้าคู่มือ proc(5): /proc/loadavg man7.org
หมายเหตุ: RainServer นำเสนอการตรวจสอบและการล้างข้อมูลอย่างปลอดภัยสำหรับเซิร์ฟเวอร์ Linux โดยจะแสดงรายการสิ่งที่กำลังจะเปลี่ยนแปลงและขออนุญาตก่อนดำเนินการ
ตรวจสอบล่าสุด: