首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux上的空闲/缓存/可用内存

Linux上的空闲/缓存/可用内存
EN

Server Fault用户
提问于 2012-06-02 11:55:29
回答 5查看 8.1K关注 0票数 7

我有朗读,linux使用空闲内存进行缓存,以使系统更快。然而,Nagios和Paessler PRTG监控系统都告诉我,我的内存使用非常关键。

我可以将Nagios mem_usage脚本更改为空闲内存和缓存内存,但这是正确的信息吗?我怀疑他们是否误解了Linux内存的使用。

假设我有8GB内存。使用5GB,缓存2GB,我有1GB的空闲内存。实际可用内存应该是free+cached (3GB)吗?如果一些新的应用程序需要额外的3GB RAM,那么它可以在不使用交换区的情况下从缓存中获取所有的东西并免费使用,还是缓存中应该有最小的内存?

实际例子:

代码语言:javascript
复制
$ 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,5GB的缓存。

谢谢!

EN

回答 5

Server Fault用户

发布于 2012-06-02 12:13:42

当我使用check_mem.pl插件时,我在Nagios上也有过同样的经历。当您定义要害时,您需要使用大写c而不是普通的c。

如下所示:

代码语言:javascript
复制
command[check_mem]=/usr/lib/nagios/plugins/check_mem -w 10 -C 5 -f

然后,它会考虑缓存的内存,并且不会发送警告。

票数 14
EN

Server Fault用户

发布于 2012-06-03 06:55:08

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

当程序启动时,它们通常一开始并不使用所有所需的内存。程序的虚拟大小通常比驻留(内存)大小大得多。剩余的内存可以从磁盘(程序映像和它使用的库中的代码)和交换(已分配但未使用)分配。

如果缓存内存太低,您可能会看到严重的性能问题。根据交换是如何编码和配置的,不活动页可能会被交换以为您的程序腾出空间。这通常会导致远低于预期的页面交换。

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

票数 3
EN

Server Fault用户

发布于 2012-06-09 13:43:49

你应该把meminfo的全部输出。脏页是磁盘支持的,但它们被计算为分页缓存,应该根据要求将其刷新到磁盘。

简而言之,你说的是对的。在计算空闲内存时,也要考虑缓存和缓冲区,但将脏页保留在计算之外。

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

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/394951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档