Linux命令用于释放可用内存的百分比

Tim*_*ans 43 linux memory

我希望使用Linux命令行以百分比形式报告可用内存.

Lev*_*von 111

使用free命令:

% free
             total       used       free     shared    buffers     cached
Mem:       2061712     490924    1570788          0      60984     220236
-/+ buffers/cache:     209704    1852008
Swap:       587768          0     587768
Run Code Online (Sandbox Code Playgroud)

基于此输出,我们Mem使用awk选择特定字段来进行计算.

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

% free | grep Mem | awk '{print $3/$2 * 100.0}'
23.8171
Run Code Online (Sandbox Code Playgroud)

这将报告免费的内存百分比

% free | grep Mem | awk '{print $4/$2 * 100.0}'
76.5013
Run Code Online (Sandbox Code Playgroud)

您可以为此命令创建别名,或将其放入一个小的shell脚本中.可以使用以下行中的print语句的格式化命令来根据您的需要定制特定输出:

free | grep Mem | awk '{ printf("free: %.4f %\n", $4/$2 * 100.0) }'
Run Code Online (Sandbox Code Playgroud)

  • `free -t | grep"buffers/cache"| awk'{print $ 4 /($ 3 + $ 4)*100}'`也可以很好地报告与htop/top中的Mem匹配的数字 (8认同)
  • @ KevinJalbert:非常好,谢谢.然而,我们可以省略`grep`并直接去'awk`:`free | awk'/ buffers\/ cache/{print $ 4 /($ 3 + $ 4)*100.0;}'` (6认同)
  • 这似乎不太便携.在arch上,当运行`free -m`时,我没有第三行" - /+ buffers/cache:" (5认同)
  • @Wrikken:效果也很好,谢谢。但是我们可以通过降低其他数字来增强它,百分比也是如此。awk'/ Mem / {printf(“ used:%.2f%”),$ 3 / $ 2 * 100} / buffers \ / cache / {printf(“,buffers:%.2f%”),$ 4 /($ 3 + $ 4 )* 100} / Swap / {printf(“,swap:%.2f%”),$ 3 / $ 2 * 100}'` (2认同)