如何使用 Linux 命令获取可用内存百分比? [关闭]

Posted

技术标签:

【中文标题】如何使用 Linux 命令获取可用内存百分比? [关闭]【英文标题】:How to get the percentage of memory free with a Linux command? [closed] 【发布时间】:2012-05-22 02:14:56 【问题描述】:

我想使用 Linux 命令行以百分比形式报告可用内存。

我使用了free 命令,但那只是给我数字,没有百分比选项。

【问题讨论】:

【参考方案1】:

使用free 命令:

% free
             total       used       free     shared    buffers     cached
Mem:       2061712     490924    1570788          0      60984     220236
-/+ buffers/cache:     209704    1852008
Swap:       587768          0     587768

基于此输出,我们使用 Mem 抓取行,并使用 awk 选择特定字段进行计算。

这将报告正在使用的内存百分比

% free | grep Mem | awk 'print $3/$2 * 100.0'
23.8171

这将报告可用内存的百分比

% free | grep Mem | awk 'print $4/$2 * 100.0'
76.5013

你可以为这个命令创建一个别名或者把它放到一个小的 shell 脚本中。可以使用打印语句的格式化命令来根据您的需要定制特定的输出:

free | grep Mem | awk ' printf("free: %.4f %\n", $4/$2 * 100.0) '

【讨论】:

free -t | grep "buffers/cache" | awk 'print $4/($3+$4) * 100' 也可以很好地报告与 htop/top 中的 Mem 匹配的数字 @KevinJalbert's :效果很好,谢谢。但是,我们可以省略 grep 并直接转到 awkfree | awk '/buffers\/cache/print $4/($3+$4) * 100.0;' @Wrikken :也很好用,谢谢。但是我们也可以通过将其他数字作为百分比来提高它free | awk '/Mem/printf("used: %.2f%"), $3/$2*100 /buffers\/cache/printf(", buffers: %.2f%"), $4/($3+$4)*100 /Swap/printf(", swap: %.2f%"), $3/$2*100' 这似乎不太便携。在arch上,运行free -m时,我没有第三行“-/+ buffers/cache:” free | awk '/Mem/printf("Mem used: %.1f%"), $3/($2+.000000001)*100 /buffers\/cache/printf(", buffers: %.1f%"), $4/($3+$4)+.000000001*100 /Swap/printf(", swap: %.1f%"), $3/($2+.000000001)*100'; 不被零除

以上是关于如何使用 Linux 命令获取可用内存百分比? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

查看 Linux 下 CPU内存的占用率的方法集锦

linux怎么查询进程和进程的id

如何使用Linux命令行查看Linux服务器内存使用情况

linux 如何查看cpu已经占用多少百分比

linux 怎样查看内存被哪个进程占用

Linux系统监控命令