Linux上的空闲/caching/可用内存

我读过 linux使用可用内存进行caching,使系统更快。 但是,Nagios和Paessler PRTG监视系统都显示我的内存使用情况非常严重。

我可以改变Nagios的mem_usage脚本,以免费和caching内存,但这将是正确的信息? 我怀疑他们误解了Linux的内存使用情况。

可以说我有8 GB的RAM。 5 GB被使用,2 GB被caching,并且我有1 GB可用内存。 真正的可用内存应该是免费+caching(3 GB)? 如果某些新应用程序需要额外的3 GB RAM,是否可以在不使用交换的情况下从caching和空闲中获取所有内容,还是应该在caching中存在最小值?

真实的例子:

$ cat /proc/meminfo MemTotal: 5984256 kB MemFree: 137052 kB Buffers: 140484 kB Cached: 3439616 kB SwapCached: 244 kB Active: 3148824 kB Inactive: 2341768 kB ... 

我的监视工具显示,我有137 MB可用RAM,但是我有3.5 GB的caching。

谢谢!

当我使用check_mem.pl插件时,我在Nagios中也有相同的经验。 当你定义关键的发夹时,你需要使用大写字母C而不是普通的c。

喜欢这个:

 command[check_mem]=/usr/lib/nagios/plugins/check_mem -w 10 -C 5 -f 

然后它将占用caching的内存,它不会发送警告。

Freemem是未分配的内存,立即可用。 这在启动程序时使用,通常情况下,如果太低,将会遇到问题。 监控以确保你有几MB免费应该是足够的。 我在32 MB OpenWrt路由器上监视1 MB,在Ubuntu服务器上监视10 MB。 我还监视交换使用情况,因为这会随着内存负载的增加而下降。

当程序启动时,他们通常不会最初使用所有需要的内存。 程序的虚拟大小比常驻(内存)大得多。 剩余的内存可以从磁盘(程序映像和库使用的代码)和swap(已分配但未使用)分配。

如果高速caching的内存太低,您可能会看到严重的性能问题。 根据交换的编码和configuration方式,非活动页面可能会被交换以为您的程序腾出空间。 这通常会导致页面交换比您期望的要less得多。

我会监视caching的内存,以确保运行程序的性能,而不是确保内存可用来启动巨大的程序。

你应该把整个meminfo的输出。 脏页面是磁盘备份,但它们被视为页面caching,应根据需要刷新到磁盘。

简而言之,你所说的是正确的。 在计算空闲内存时,还要考虑高速caching和缓冲区,但不要将脏页放在计算之外。

为了确保您永远不会耗尽内存,请保留一个帐户的Committed_AS值。 根据这个值,你应该决定是增加RAM还是减less工作量。

你似乎没有任何内存问题。 我相信这两个系统的工作量是一样的,对。 如果是这样,在几乎相同的情况下,它们将消耗相同数量的caching内存。

您似乎也与承诺_AS部分做得很好。 在第二个系统中,没有太多的caching,因为没有必要。 作为一个基于需求的虚拟内存pipe理系统,Linux在内存方面工作得很好。 caching内存随着系统工作量的增加而增加。

Linux使用可用内存进行caching,并在需要时进行清理。 您可以随时通过运行释放caching的内存

同步; echo 3> / proc / sys / vm / drop_caches