Top 报告的内存利用率与 CloudWatch 监控脚本不同

Top 报告的内存利用率与 CloudWatch 监控脚本不同

我在 EC2 实例上设置了 AWS 监控脚本,当内存利用率超过 75% 时会发出警报。目前,我将所有与内存相关的参数发送到 Cloudwatch,但只为 mem-util 设置了 Cloudwatch 警报。

在 Cloudwatch 上,我看到内存利用率超过 97%

但是,当运行 top 命令时,我得到的内存利用率非常不同,大约为 74%:

Tasks: 101 total,   1 running,  61 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.0 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8166940 total,   212124 free,  6232712 used,  1722104 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1634048 avail Mem 

我看到一个类似主题对于 CPU 使用率统计差异,我想知道同样的问题是否也适用于此。更重要的是,在管理可用内存方面,两者中哪一个更可靠?

答案1

看起来 cloudwatch 正在计算正在使用的总内存,而 top 正在计算进程使用的内存,但不用于可轻松回收的缓存/缓冲区。

哪个更合适取决于您的工作量。

相关内容