内存使用问题

内存使用问题

我在手机上设置了一个警报,当 RAM 使用率超过 90% 时就会收到警报。我还编写了一个脚本来监控所有内存、CPU、RAM 等。

我怎样才能减少RAM的使用,我还有一个清除缓存的脚本...但我不能一直运行它或针对它设置一个cron,因为它会影响实时服务。

我有一个以下脚本:

memory_alarm=`/usr/bin/free -m|grep Mem|awk '{print $3/$2 * 100.0}'|cut -d\. -f1`

当我运行 top 命令时,它显示 66%,几秒钟后收到的 RAM 使用率 95% 的警报

答案1

你没有采取页面缓存free考虑在内(在输出中的“缓存”列下)。写入磁盘的数据将保存在缓存中,并在文件被删除/替换或可用内存变低且其他进程请求更多内存时刷新。

$ free
             total       used       free     shared    buffers     cached
Mem:       2038308    1890180     148128        504      25072     489884
-/+ buffers/cache:    1375224     663084
Swap:      8386556       7440    8379116
$ /usr/bin/free -m|grep Mem|awk '{print $3/$2 * 100.0}'|cut -d\. -f1
92
$ /usr/bin/free -m|grep Mem|awk '{print ($3-$7)/$2 * 100.0}'|cut -d\. -f1
68

答案2

这是一个非常古老的答案,但我一直看到它。 @Neuro 是正确的,因为 RAM 使用不是(几乎从来不是)问题,因为 Linux 缓存磁盘 I/O。 (与 RAM 访问相比,磁盘 I/O 非常慢,Linux 缓存了从磁盘读取的几乎所有扇区,希望再次需要它......)因此,高 RAM 使用率基本上是无关紧要的。

没有提到的是,主要(或硬)故障(需要磁盘 I/O 的故障)是一个问题,但前提是它们持续且过度。轻微(或软)故障很少会成为问题。什么是持续和过度?就是那个问题。

相关内容