ฉันใช้สคริปต์ python บนอินสแตนซ์ของ ec2 ที่แทรกแถวในฐานข้อมูลบนอินสแตนซ์อื่น ในการตรวจสอบของ ec2 ฉันเห็นการใช้งาน cpu 100% ในขณะที่ top แสดงให้เห็นเพียง 20% สำหรับกระบวนการ python อะไรหายไปจากด้านบน? ค่าใช้จ่ายเครือข่าย
ฉันใช้สคริปต์ python บนอินสแตนซ์ของ ec2 ที่แทรกแถวในฐานข้อมูลบนอินสแตนซ์อื่น ในการตรวจสอบของ ec2 ฉันเห็นการใช้งาน cpu 100% ในขณะที่ top แสดงให้เห็นเพียง 20% สำหรับกระบวนการ python อะไรหายไปจากด้านบน? ค่าใช้จ่ายเครือข่าย
คำตอบ:
ข้อมูลที่เปิดเผยโดยtop
มักจะไม่เพียงพอหรือทำให้เข้าใจผิดในสภาพแวดล้อมเสมือนจริงเช่นAmazon EC2และร้อยละที่รายงานขึ้นอยู่กับประเภทอินสแตนซ์ของคุณและการใช้งานตัวประมวลผลหลักพื้นฐาน (ซึ่งมักจะไม่ตรงกับฮาร์ดแวร์เสมือนจริงที่คุณนำเสนอ สิ่งอื่น ๆ - สิ่งที่คุณเห็นมีสาเหตุมาจากเวลาการขโมยซีพียูตามที่เปิดเผยในเครื่องมือตรวจสอบ Unix / Linux ที่เกี่ยวข้องมากที่สุดในปัจจุบัน - ดูคอลัมน์ต่างๆเช่น% steal หรือ st sar
หรือtop
:
st - เวลาขโมย
จำนวนของ CPU ที่ถูก 'ขโมย' จากเครื่องเสมือนนี้โดย hypervisor สำหรับงานอื่น ๆ (เช่นการเรียกใช้เครื่องเสมือนอื่น)
บล็อกการตรวจสอบการโพสต์EC2: กรณีของ CPU ที่ถูกขโมยให้การสำรวจที่ดีและภาพประกอบของหัวข้อนี้:
เมื่อคำสั่ง top แสดง 40% CPU ไม่ว่าง แต่ CloudWatch แจ้งว่าเซิร์ฟเวอร์นั้น maxed out ที่ 100% - คุณใช้ด้านไหน? คำตอบนั้นง่าย (CloudWatch ถูกต้องไม่อยู่ด้านบน) [... ]
โปรดทราบว่าการวัดไฮเปอร์ไวเซอร์นี้ดูเหมือนว่า (เข้าถึงได้ง่าย) ในระบบ Unix / Linux เท่านั้น แต่ดูเหมือนว่าจะไม่สามารถสังเกตเห็นได้บน Windows (ยัง) ดูคำถามของฉันมี Windows เทียบเท่ากับ 'CPU ขโมยเวลา' ของ Unix หรือไม่ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหานี้