确定 Linux 中的“空闲”内存

问题描述 投票:0回答:4

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

到目前为止,我能想到的最接近的计算解决方案来自此链接:Determining Free Memory on Linux

在我的 Ubuntu 13.0.4 上,做了一个

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

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

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

linux ubuntu memory-management
4个回答
5
投票

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

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

Linux 命令查看空闲内存百分比


3
投票

我是

free -m

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

0
投票

这以更易于理解的方式向您显示内存统计信息:

sar -r 0

0
投票

在 Linux 上,我们可以读取 cgroup 的使用情况和限制,以获得可用资源的容器化感知视图。我们可以使用 awk 格式化结果。

awk -v usage="$(cat /sys/fs/cgroup/memory/memory.usage_in_bytes)" \
-v limit="$(cat /sys/fs/cgroup/memory/memory.limit_in_bytes)" \
'BEGIN {
  free=limit-usage;
  printf("Total (GiB): %02.1f\n Used (GiB): %04.1f\n Free (GiB): %04.1f\n Used   (%%): %04.1f\n", limit/1024^3, usage/1024^3, free/1024^3, usage/limit*100)
}'

打印:

Total (GiB): 48.0
 Used (GiB): 07.0
 Free (GiB): 41.0
 Used   (%): 14.6
© www.soinside.com 2019 - 2024. All rights reserved.