EC2 CloudWatch内存指标与Top显示的内容不匹配

Cla*_*ude 5 memory memory-management amazon-ec2 amazon-cloudwatch

我有一个t2.micro EC2实例,运行在大约2%的CPU.我从其他帖子中了解到,TOP中显示的CPU使用率与CloudWatch中报告的CPU不同,CloudWatch值应该是可信任的.

但是,我看到TOP,CloudWatch和NewRelic之间的内存使用值非常不同.

实例上有1Gb的RAM,TOP显示约300Mb的Apache进程,加上大约100Mb的其他进程.TOP报告的总内存使用量为800Mb.我猜有400Mb的操作系统/系统开销?

但是,CloudWatch报告700Mb的使用情况,NewRelic报告200Mb的使用情况(尽管NewRelic在其他地方报告了300Mb的Apache进程,所以我忽略了它们).

CloudWatch内存指标通常超过80%,我想知道实际值是什么,所以我知道何时需要扩展,或者如何减少内存使用.

这是最近的内存配置文件,似乎有些东西随着时间的推移会使用更多的内存(大陡是Apache重启,还是GC?)

过去12天内存使用情况的屏幕截图

mic*_*zer 0

CloudWatch 实际上并不提供有关 EC2 实例内存使用情况的指标,您可以在此处确认这一点。

因此,您所指的 MemoryUtilization 指标显然是一个自定义指标,由您配置的内容或实例上运行的某些应用程序推送。

因此,您需要确定实际推动该指标数据的因素是什么。数据源显然推错了东西,或者不可靠。

您看到的行为不是 CloudWatch 问题。

  • 感谢您的评论。为了澄清这一点,我使用 Amazon 提供的脚本将内存信息发送到 Cloudwatch (http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts.html),将此与 Amazon 提供的内存信息进行比较Top 和 NewRelic 显示不同的值,因此我试图了解在评估服务器何时达到容量时最信任哪一个。 (2认同)