เราพบกับพฤติกรรมแปลก ๆ ที่เราเห็นการใช้งาน CPU สูง แต่มีภาระเฉลี่ยค่อนข้างต่ำ
พฤติกรรมดังกล่าวจะแสดงให้เห็นได้ดีที่สุดจากกราฟต่อไปนี้จากระบบตรวจสอบของเรา
เมื่อเวลาประมาณ 11:57 น. การใช้งาน CPU เพิ่มขึ้นจาก 25% เป็น 75% โหลดเฉลี่ยไม่เปลี่ยนแปลงอย่างมีนัยสำคัญ
เราเรียกใช้เซิร์ฟเวอร์ที่มี 12 คอร์ที่มีเธรดไฮเปอร์ 2 ตัว ระบบปฏิบัติการเห็นว่านี่เป็น 24 CPUs
ข้อมูลการใช้งาน CPU จะถูกรวบรวมโดยเรียกใช้/usr/bin/mpstat 60 1
ในแต่ละนาที ข้อมูลสำหรับall
แถวและ%usr
คอลัมน์จะแสดงในแผนภูมิด้านบน ฉันมั่นใจว่านี่จะแสดงค่าเฉลี่ยต่อข้อมูล CPU ไม่ใช่การใช้ "แบบซ้อน" ในขณะที่เราเห็นการใช้ 75% ในรูปที่เราเห็นเป็นกระบวนการที่แสดงจะใช้ประมาณ 2000% "ซ้อน" CPU top
ใน
ตัวเลขค่าเฉลี่ยการโหลดจะถูกนำมาจาก/proc/loadavg
แต่ละนาที
uname -a
ให้:
Linux ab04 2.6.32-279.el6.x86_64 #1 SMP Wed Jun 13 18:24:36 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux
Linux dist คือ Red Hat Enterprise Linux Server release 6.3 (Santiago)
เราเรียกใช้เว็บแอปพลิเคชัน Java สองสามอันภายใต้ภาระงานที่ค่อนข้างหนักบนเครื่องคิดว่า 100 คำร้องขอต่อวินาที
ถ้าฉันตีความข้อมูลการใช้ CPU อย่างถูกต้องเมื่อเรามีการใช้ประโยชน์ CPU 75% หมายความว่า CPU ของเรากำลังประมวลผลกระบวนการ 75% โดยเฉลี่ย อย่างไรก็ตามหากซีพียูของเราไม่ว่าง 75% ของเวลาเราจะไม่เห็นค่าเฉลี่ยการโหลดที่สูงขึ้นหรือไม่ ซีพียูจะว่าง 75% ในขณะที่เรามีงาน 2-4 งานในคิวการทำงานได้อย่างไร?
เราตีความข้อมูลของเราถูกต้องหรือไม่? สิ่งที่สามารถทำให้เกิดพฤติกรรมนี้