【问题标题】:Determine 'Free' Memory in Linux确定 Linux 中的“空闲”内存
【发布时间】:2014-04-06 04:42:05
【问题描述】:

我想知道是否有一种简单的方法可以确定 Linux 中“已使用”内存的数量。具体来说,内核和应用程序正在积极使用的内存,不包括缓冲区和缓存内存。我正在寻找类似于 Window 在任务管理器中找到的已用内存报告(您可以在其中看到已用内存的百分比)。

到目前为止,我能想到的最接近的计算方法来自这个链接:Determining Free Memory on Linux

在我的 Ubuntu 13.0.4 上,执行cat /proc/meminfo, 然后我计算100-(((MemFree+Buffers+Cached)/MemTotal)*100),它应该给出“已用”内存的百分比。

这是我找到的获得物理内存百分比的最接近的方法,就像在窗口的任务管理器中找到的那样。

这看起来是一种有效的方法吗?如果是这样,是否有更直接的方法?

【问题讨论】:

  • 是的,解析 /proc/meminfo

标签: linux ubuntu memory-management


【解决方案1】:

您可以使用 AWK 解析 free 命令的输出,并获取百分比。

free | grep Mem | awk '{print $4/$2 * 100}'

Linux command for percentage of memory that is free

【讨论】:

  • 这与我想要的非常接近,我只是对其进行了修改以获取缓存和我认为也是“空闲”内存的缓冲区。 free | grep Mem | awk '{print 100-(($4+$6+$7)/$2 * 100)}' 我可以获得已用内存的百分比。谢谢!
【解决方案2】:

我是free -m的粉丝

             total       used       free     shared    buffers     cached
Mem:          1446       1172        273          0        225        821
-/+ buffers/cache:        126       1320
Swap:         1471          0       1471

【讨论】:

  • 我通常还会添加-t 选项,并且在一些较大的系统上我使用-g 而不是-m,但这很酷——它很灵活...
  • 如果您(像我一样)想知道它们的作用,-t 显示 RAM 和交换的总数。 -m 和 -g 分别是兆字节和千兆字节。
【解决方案3】:

这会以更易读的方式向您显示内存统计数据:

sar -r 0

【讨论】:

    猜你喜欢
    • 2010-12-05
    • 1970-01-01
    • 2012-09-18
    • 2018-06-06
    • 1970-01-01
    • 2018-08-21
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多