操作系统如何快速有效地释放caching的RAM?

我知道“可用RAM是浪费的RAM”的概念。 我的问题是操作系统如何快速高效地释放caching的RAM,以便应用程序在使用时间内有足够的内存

我们有一个在Linux上托pipe的Web应用程序。 我们通常有10-20%的内存使用率。 但是,当代码的某些部分被调用时,我们会看到尖峰高达100%(代码已被最大化优化)。我想在发生这种情况时触发电子邮件。 我应该编写一个脚本来监视内存使用情况,包括caching还是应用程序内存?

linux内存不足错误发生时,是否意味着caching内存为零,所有内存已经分配给应用程序?

是的,这意味着操作系统清除了用于文件系统caching的所有内存。 基本上你的networking服务器/应用程序正在为一定量的内存做一个malloc ,内核释放内存并将其传递给应用程序使用。 这是一个primefaces电话,根本不阻止应用程序。

你只需要更多的内存在服务器或处理较less的连接。

当像OOM杀手这样的OOM事件发生时,所有的RAM和swap都被使用,缓冲区和caching是最less的,而且你的性能已经很差了。 保持内存使用率低于100%。

在Linux上,你可以解释/ proc / meminfo

MemAvailable是估计可以分配多less而不用交换

MemFree + Buffers + Cached实际上是免费的。