以百分比形式显示可用内存的命令

以百分比形式显示可用内存的命令

我想以百分比形式显示可用内存。我很确定我没有显示可用内存,而是显示已用内存。还是我错了?

mem=`free -m | awk 'NR ==2{printf $3,$2,$3*100/$2}'`
echo $mem

答案1

如果要以百分比形式显示可用内存量,请将第 4 列(可用)除以第 2 列(总计),并将结果乘以 100。

例如:

[user@localhost ~]$ free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'
free: 97.32 %

如果要显示已使用的金额,可以将第 3 列(已使用)除以第 2 列(总计),然后将结果乘以 100。

[user@localhost ~]$ free | awk '/^Mem/ { printf("Used: %.2f %\n", $3/$2 * 100.0) }'
Used: 2.75 %

您可以使用 %g 四舍五入到指定的有效数字位数。

例如,如果您只需要整数而不是浮点值,则可以将指定的浮点位数更改为 0(零)。在第一个示例中,%.2f 表示 2 个浮点值。

这是一个浮点值为零的示例:

[user@localhost ~]$ free | awk '/^Mem/ { printf("Used: %.0f %\n", $3/$2 * 100.0) }'
Used: 3 %

这也在这里得到了回答:

https://stackoverflow.com/questions/10585978/linux-command-for-percentage-of-memory-that-is-free

答案2

尝试这个,

free | awk '/^Mem/ { a=(($3-$7)/$2 * 100); print a"% of Memory used"  }'
3.43143% of Memory used

free | awk '/^Mem/ { a=(($4+$7)/$2 * 100); print a"% of Memory free"  }'
96.5662% of Memory free

free | awk '/^Mem/ { a=(($7)/$2 * 100); print a"% of Memory cached"  }'
80.4204% of Memory cached

注意:交叉检查值glances

相关内容