top
hiển thị mức sử dụng CPU trung bình trong thời gian cao điểm khoảng 20% trong khi giám sát CloudWatch cho thấy mức sử dụng CPU trung bình là 40%. Điều gì gây ra sự khác biệt này?
top
hiển thị mức sử dụng CPU trung bình trong thời gian cao điểm khoảng 20% trong khi giám sát CloudWatch cho thấy mức sử dụng CPU trung bình là 40%. Điều gì gây ra sự khác biệt này?
Câu trả lời:
Một quan sát rất tốt và chúng tôi cũng đã gặp phải điều này. Đây là những gì tôi tìm thấy:
Hãy cẩn thận đo mức sử dụng CPU từ trong một phiên bản EC2. Có thể thấy mức độ sử dụng CPU dưới 100% và vẫn được tối đa hóa hoàn toàn. Hãy tin tôi: đã ở đó, làm điều đó. (Nhân tiện, CloudWatch CPUUtilization, được đo từ bên ngoài thể hiện và luôn luôn đúng.)
Có một mô tả rất hay về toàn bộ điều ở đây: https://axibase.com/news/ec2-monitoring-the-case-of-stolen-cpu/
Trong ví dụ trên, phiên bản m1.small EC2 được phân bổ 0,4 đơn vị bộ xử lý và vì vậy 40% CPU bận có nghĩa là tỷ lệ sử dụng phần trăm của lõi bên dưới. Tuy nhiên vì 40% là chia sẻ CPU tối đa có thể được phân bổ cho VM này, nên mức sử dụng CPU hiệu quả là 40% / 40% = 100%. Đó là số được hiển thị bởi CloudWatch.
Nếu bạn đang tự hỏi 40% đến từ đâu, thì toán học khá đơn giản. Hệ thống linux m1.small có quyền sử dụng 1 đơn vị tính toán EC2 cung cấp dung lượng CPU tương đương của bộ xử lý Opteron 1.0 2007 GHz1.2 GHz 2007 hoặc bộ xử lý Xeon. Do VM chạy trên một máy có tốc độ xung nhịp 2,6 GHz, nên nó được hưởng 38,4% chia sẻ bộ xử lý 38,4% trên nút XEN cụ thể này. Bạn có thể chạy lệnh cat / Proc / cpuinfo để tìm hiểu kiến trúc CPU đằng sau các phiên bản EC2 của bạn.
Đặc biệt chú ý đến gợi ý về cách xử lý các công cụ không biết về toán học đặc biệt:
Một tùy chọn khác có thể được sử dụng để trang bị thêm cho các công cụ giám sát dựa trên tác nhân hiện tại hoặc SNMP, không tích hợp với CloudWatch, là sử dụng số liệu nhàn rỗi của CPU. Tất cả những gì bạn cần làm là viết lại các quy tắc để đo CPU nhàn rỗi thay vì CPU bận. Ví dụ: nếu bạn có ngưỡng> 75% được xác định cho CPU bận, hãy tạo quy tắc <25% cho CPU không hoạt động. Nếu CPU không hoạt động là 0, thì máy chủ của bạn bị ràng buộc CPU.
Rất đơn giản. Rất đẹp.
Khi bạn chạy hàng đầu trong phiên bản EC2, nó đang đo mức độ sử dụng CPU của máy lõi vật lý đang chạy phiên bản của bạn và các máy khác. Cách sử dụng này không chính xác nếu bạn muốn đo mức sử dụng cpu của cá thể của bạn (đơn vị tính EC2 được gán cho thể hiện của bạn).
Đó là lý do tại sao các số liệu của Cloudwatch là có thật vì nó được đo bên ngoài đối tượng cho (các) đơn vị tính toán EC2 được gán cho riêng cá thể của bạn.
Xem tại đây - https://forums.aws.amazon.com/thread.jspa?threadID=99993