โหลดซีพียูสูง แต่กระบวนการสูงสุดอยู่ด้านบนสุดประมาณ 0%


11

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

http://cl.ly/2d1g0K3q261r0R0K3e35

มีวิธีที่ดีกว่าในการค้นหาสิ่งที่ทำให้เกิดปัญหานี้หรือไม่


ฉันควรทราบว่าฉันอยู่ใน Ubuntu 10.04
Ben

คำตอบ:


4

ฉันคิดว่าข้อบกพร่องนี้เป็นกรณีของคุณ จากสิ่งที่ฉันเห็นจากผลลัพธ์คุณมีหน่วยความจำเพียงพอ (หมายเหตุแคช 14 GB หรือมากกว่านั้น) ไม่มีปัญหา I / O แต่คุณมีกระบวนการที่เกี่ยวข้องกับ xen นี่ทำให้ฉันคิดว่ามันเป็นข้อผิดพลาด


มันกลายเป็นข้อผิดพลาดใน Ubuntu 10.04 และฮาร์ดแวร์ที่ AWS ใช้อยู่
Ben

7

โหลดคือการวัดปริมาณงานที่ระบบมีในเวลา 1, 5 และ 15 นาที

ความเข้าใจผิดที่พบบ่อยที่สุดคือโหลดค่าเฉลี่ยเชื่อมต่อกับการใช้งาน CPU ของระบบอย่างแท้จริง
โหลดทำรวมการวัดเพิ่มเติมเช่น CPU ที่รอ I / O ซึ่งฉันคิดว่าเป็นปัญหาของคุณ

จากภาพที่ฉันคาดเดาว่าคุณมีหน่วยความจำไม่เพียงพอและเริ่มทำการแลกเปลี่ยนข้อมูลกับดิสก์

วิธีง่าย ๆfree -mจะบอกคุณว่าใช้ RAM และ swap เท่าใด คอลัมน์ที่น่าสนใจคือคอลัมน์ฟรีนอกจาก
ถ้าใกล้ศูนย์คุณหมด RAM และควรทำตามนั้น-/+ buffers/cache


1
+1 สำหรับการแลกเปลี่ยน คุณสามารถใช้iotopหรือvmstatลองและดูว่าเป็น I / O หรือไม่
Axel Knauf

1
- / + บัฟเฟอร์ / แคช: 2933 14586
Ben

4

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



2

ลองใช้:

top -o cpu

-oธงจะบังคับด้านบนจะสั่งกระบวนการโดยการใช้งาน CPU ในลำดับถัดลง


เมื่อฉันวิ่งtop -o cpuฉันได้ "top: อาร์กิวเมนต์ที่ไม่รู้จัก 'o'"
Ben

ตกลงลองวิ่งไปด้านบนแล้วกดปุ่มoขณะที่กำลังวิ่ง มันควรจะถามคุณสำหรับคีย์หลัก พิมพ์cpuและกด Enter
โจร

1
แม้เมื่อเรียงตาม cpu ไม่มีอะไรที่ด้านบนของรายการด้านบน 1% และมีเพียงไม่กี่ (2-3) ในเวลาใดก็ตาม ส่วนที่เหลือคือ 0%
Ben

อย่างน้อยใน Centos 7.2 คำสั่งที่ถูกต้องในการทำเช่นนี้คือtop -o %CPU
siliconrockstar

2

มันอาจถูกล็อกไฟล์ใน nfs หรือสิ่งอื่นใดที่ล็อคไฟล์ที่กระบวนการอื่นต้องการการเข้าถึง

อาจพลาดบริการการกำหนดค่าที่มีจำนวนเธรดที่เปิดใช้งานมากเกินไป


0

ดูเหมือนว่าการใช้งาน CPU มาจากเธรด topดูเหมือนจะไม่คำนึงถึงเรื่องนี้ ฉันเพิ่งเห็นสิ่งนี้บนเซิร์ฟเวอร์ mysql มีคำสั่ง INSERT กำลังทำงานอยู่ แต่ฉันไม่สามารถรับแถวใหม่ที่มี SELECT ได้เนื่องจากเธรดของ mysqld บางตัวกำลังปรับปรุงดัชนีตาราง แสดงให้เห็นว่าโหลดของผู้ใช้ 100% ในหนึ่งคอร์ แต่ทุกกระบวนการรวมถึง mysqld นั้นเป็นซีพียู 0.0% ชั่วโมงต่อมา SELECT ตัวเดียวกันก็ให้ชุดผลลัพธ์ที่คาดหวัง

ดูสิ่งนี้ด้วย

รับสถิติ cpu ต่อเธรด

กระบวนการ 'htop' และการใช้เธรด cpu หรือไม่

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