2016-03-29 16 views
5

Tôi có một phiên bản EC2 t2.micro, chạy ở khoảng 2% CPU. Tôi biết từ các bài viết khác rằng mức sử dụng CPU được hiển thị trong TOP khác với CPU được báo cáo trong CloudWatch và giá trị CloudWatch sẽ đáng tin cậy.Số liệu bộ nhớ EC2 CloudWatch không khớp với những gì Top hiển thị

Tuy nhiên, tôi thấy các giá trị rất khác nhau đối với việc sử dụng Bộ nhớ giữa TOP, CloudWatch và NewRelic.

Có 1Gb RAM trên bản sao và TOP hiển thị ~ 300Mb các quy trình Apache, cộng với ~ 100Mb các quy trình khác. Việc sử dụng bộ nhớ tổng thể được báo cáo bởi TOP là 800Mb. Tôi đoán có 400Mb chi phí hệ điều hành/hệ thống?

Tuy nhiên, CloudWatch báo cáo 700Mb sử dụng và NewRelic báo cáo 200Mb sử dụng (mặc dù NewRelic báo cáo 300Mb Apache xử lý ở nơi khác, vì vậy, tôi bỏ qua chúng).

Số liệu bộ nhớ CloudWatch thường vượt quá 80% và tôi muốn biết giá trị thực là gì, vì vậy tôi biết khi nào cần chia tỷ lệ nếu cần hoặc cách giảm mức sử dụng bộ nhớ.

Dưới đây là hồ sơ cá nhân bộ nhớ gần đây, dường như một cái gì đó đang sử dụng bộ nhớ hơn theo thời gian (dips lớn là một trong hai Apache restart, hoặc có lẽ GC?)

Screenshot of memory usage over last 12 days

Trả lời

0

CloudWatch không thực sự cung cấp các số liệu liên quan đến việc sử dụng bộ nhớ đối với phiên bản EC2, bạn có thể xác nhận điều này here.

Kết quả là chỉ số MemoryUtilization mà bạn đang đề cập rõ ràng là chỉ số tùy chỉnh đang được đẩy bởi thứ gì đó bạn đã định cấu hình hoặc một số ứng dụng đang chạy trên phiên bản của bạn.

Kết quả là, bạn cần phải xác định điều gì đang thực sự đẩy dữ liệu cho chỉ số này. Nguồn dữ liệu rõ ràng là đẩy điều sai, hoặc không đáng tin cậy.

Hành vi bạn đang xem không phải là sự cố CloudWatch.

+2

Cảm ơn nhận xét. Để làm rõ, tôi đang sử dụng các tập lệnh do Amazon cung cấp để gửi thông tin bộ nhớ tới Cloudwatch (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts.html) So sánh thông tin này với thông tin bộ nhớ do Top và NewRelic cung cấp hiển thị các giá trị khác nhau, vì vậy tôi đang cố gắng hiểu được giá trị nào đáng tin cậy nhất khi nói đến đánh giá khi nào máy chủ tiếp cận công suất. – Claude

+0

Điều đó thực sự thú vị. Tôi không hoàn toàn chắc chắn cách các kịch bản đó hoạt động, nhưng tôi biết chúng không được hỗ trợ chính thức. Bạn đang sử dụng Amazon Linux? Có lẽ kịch bản không đáng tin cậy với các bản phân phối Linux khác ... Tôi khuyên bạn nên đặt nó trên các diễn đàn hỗ trợ chính thức AWS – mickzer

+0

Tham chiếu đến "Tôi biết chúng không được hỗ trợ chính thức" - OP đã cung cấp liên kết đến Tài liệu AWS. Vì vậy, nó được chính thức hỗ trợ phải không? – HopeKing

2

AWS không hỗ trợ chỉ số bộ nhớ của bất kỳ phiên bản EC2 nào. Vì Amazon thực hiện tất cả các giám sát của mình từ bên ngoài trường hợp EC2 (máy chủ), nó không thể nắm bắt các chỉ số bộ nhớ bên trong cá thể. Tuy nhiên, để giám sát hoàn toàn một cá thể, bạn phải có số liệu thống kê sử dụng bộ nhớ cho bất kỳ cá thể nào, cùng với các hoạt động sử dụng CPU và mạng IO của mình. Nhưng, chúng tôi có thể sử dụng tính năng chỉ số tùy chỉnh của đồng hồ điện toán đám mây để gửi bất kỳ dữ liệu cấp ứng dụng nào tới Cloudwatch và giám sát nó bằng các công cụ amazon. Bạn có thể theo dõi blog này để biết thêm chi tiết: http://upaang-saxena.strikingly.com/blog/adding-ec2-memory-metrics-to-aws-cloudwatch

Bạn có thể đặt cron trong khoảng thời gian 5 phút trong trường hợp đó và tất cả các điểm dữ liệu có thể xem trong Cloudwatch.

Các vấn đề liên quan