top
แสดงการใช้งาน CPU โดยเฉลี่ยในช่วงเวลาสูงสุดประมาณ 20% ในขณะที่การตรวจสอบ CloudWatch แสดงการใช้งาน CPU โดยเฉลี่ย 40% อะไรเป็นสาเหตุของความคลาดเคลื่อนนี้
top
แสดงการใช้งาน CPU โดยเฉลี่ยในช่วงเวลาสูงสุดประมาณ 20% ในขณะที่การตรวจสอบ CloudWatch แสดงการใช้งาน CPU โดยเฉลี่ย 40% อะไรเป็นสาเหตุของความคลาดเคลื่อนนี้
คำตอบ:
การสังเกตที่ดีมากและเราก็พบกับสิ่งนี้เช่นกัน นี่คือสิ่งที่ฉันพบ:
ระวังการวัดการใช้ CPU จากภายใน EC2 เช่น เป็นไปได้ที่จะเห็นการใช้งาน CPU ต่ำกว่า 100% และยังได้รับการขยายออกจนหมด เชื่อฉันสิ: อยู่ที่นั่นทำอย่างนั้น (CloudWatch CPUUtilization โดยวิธีการวัดจากนอกอินสแตนซ์และถูกต้องเสมอ)
มีคำอธิบายที่ดีมากของสิ่งทั้งหมดที่นี่: https://axibase.com/news/ec2-monitoring-the-case-of-stolen-cpu/
ในตัวอย่างข้างต้นอินสแตนซ์ m1.small EC2 ได้รับการจัดสรร 0.4 หน่วยประมวลผลและ 40% ของ CPU ไม่ว่างหมายถึงการใช้เปอร์เซ็นต์ของแกนหลัก อย่างไรก็ตามเนื่องจาก 40% เป็น CPU ที่แบ่งใช้สูงสุดที่สามารถจัดสรรให้กับ VM นี้การใช้งาน CPU ที่มีประสิทธิภาพคือ 40% / 40% = 100% หมายเลขใดที่ CloudWatch แสดง
หากคุณสงสัยว่า 40% มาจากไหนคณิตศาสตร์นั้นค่อนข้างง่าย ระบบ m1.small linux มีสิทธิ์ในการคำนวณ 1 EC2 ซึ่งให้ความจุ CPU เท่ากับ 1.0–1.2 GHz 2007 Opteron หรือโปรเซสเซอร์ 2007 Xeon เนื่องจาก VM ทำงานบนเครื่องที่มีความเร็วสัญญาณนาฬิกา 2.6 GHz จึงได้รับสิทธิ์ในการแชร์โปรเซสเซอร์ 38.4% - 46.2% ในโหนด XEN นี้ คุณสามารถเรียกใช้คำสั่ง cat / proc / cpuinfo เพื่อค้นหาสถาปัตยกรรม CPU หลังอินสแตนซ์ EC2 ของคุณ
ให้ความสนใจเป็นพิเศษกับคำแนะนำเกี่ยวกับวิธีจัดการกับเครื่องมือที่ไม่รู้เกี่ยวกับคณิตศาสตร์พิเศษ:
ตัวเลือกอื่นที่สามารถใช้ในการติดตั้งเอเจนต์หรือเครื่องมือตรวจสอบที่ใช้ SNMP ซึ่งไม่ได้รวมกับ CloudWatch ที่มีอยู่คือการใช้ตัวชี้วัดความไม่ได้ใช้งาน CPU สิ่งที่คุณต้องทำคือการเขียนกฎใหม่เพื่อวัด CPU idle แทน CPU busy เช่นถ้าคุณมีเกณฑ์ที่กำหนด> 75% สำหรับ CPU busy, ให้สร้างกฎ <25% สำหรับ idle ของ CPU ถ้า CPU idle เป็น 0 แสดงว่าเซิร์ฟเวอร์ของคุณเชื่อมโยงกับ CPU
ง่ายมาก. ดีมาก.
เมื่อคุณรันบนสุดในอินสแตนซ์ EC2 มันจะวัดการใช้งาน CPU ของเครื่องฟิสิคัลคอร์ที่ใช้งานอินสแตนซ์ของคุณและอื่น ๆ การใช้งานนี้ไม่ถูกต้องหากคุณต้องการวัดการใช้งาน cpu ของอินสแตนซ์ของคุณคนเดียว (หน่วยคำนวณ EC2 ที่กำหนดให้กับอินสแตนซ์ของคุณ)
ซึ่งเป็นสาเหตุที่ทำให้การวัดคลาวด์วอชเป็นจริงเนื่องจากมีการวัดภายนอกอินสแตนซ์สำหรับหน่วยคำนวณ EC2 ที่กำหนดให้กับอินสแตนซ์ของคุณเพียงอย่างเดียว
ดูที่นี่ - https://forums.aws.amazon.com/thread.jspa?threadID=99993