Linux中可用于应用程序的内存总量

Linux中可用于应用程序的内存总量,第1张

概述我正在编写一个 shell脚本,需要知道系统中可用(可免费回收)内存总量.为此,我正在解析free命令的输出.免费的典型输出如下: $free -m total used free shared buffers cachedMem: 2488 965 1523 我正在编写一个 shell脚本,需要知道系统中可用(可免费回收)内存的总量.为此,我正在解析free命令的输出.免费的典型输出如下:
$free -m             total       used       free     shared    buffers     cachedMem:          2488        965       1523          0         83        517-/+ buffers/cache:        363       2124Swap:         1565          0       1565

通常认为由缓冲区和缓存校正的“空闲”列表示可以自由或可回收的内存,因此可用于应用程序.因此,在上面的示例中,我们将有大约2124 MB可用.

但是,如果正在使用tmpfs,这是不正确的,因为tmpfs使用的任何内存都包含在“缓存”中,但此内存不可回收(this article中的更多信息)

那么我们怎样才能找出实际可用的内存量?

解决方法 看起来获取可用内存量并不像“缓存空闲缓冲区 – shmem”那么容易.为了解决这个问题,linux内核3.14引入了一个名为“MemAvailable”的新指标,它考虑了多个因素:

Currently,the amount of memory that is available for a new workload,
without pushing the system into swap,can be estimated from MemFree,
Active(file),Inactive(file),and SReclaimable,as well as the “low”
watermarks from /proc/zoneinfo.

更多信息可以在in the kernel commit message找到.

对于早于3.14的内核,there are tools可以以与内核计算方式相同的方式模拟此度量.

总结

以上是内存溢出为你收集整理的Linux中可用于应用程序的内存总量全部内容,希望文章能够帮你解决Linux中可用于应用程序的内存总量所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047701.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存