4
14
2014
6

Linux 3.14: 终于能方便地看到真正的系统可用内存了

本文来自依云's Blog,转载请注明。

直接取/proc/meminfo中的「MemAvailable」项即可:

awk '$1 == "MemAvailable:" { print $2 * 1024 }' /proc/meminfo | filesize

filesize 是我自己写的将字节数转成人可读形式的脚本。

使用free命令的版本:

free | awk 'NR == 3 { print $4 * 1024 }' | filesize

并不准确,因为已缓存(Cached)内存并不一定是可以释放的,比如我用的 tmpfs 里的数据也算进去了。详见内核的这个提交。「free命令的算法在十年前还不错」,这不就是我大学课程教授的知识所处的时代么? :-D

Category: Linux | Tags: Linux | Read Count: 17780
ThisTusooa 说:
May 09, 2014 08:30:10 PM

● free -m
total used free shared buffers cached
Mem: 3675 3455 220 0 45 1366
-/+ buffers/cache: 2043 1632
Swap: 1023 86 937
#真为楼主的智商感到捉鸡。

ThisTusooa 说:
May 09, 2014 08:31:55 PM

● free --tera
total used free shared buffers cached
Mem: 0 0 0 0 0 0
-/+ buffers/cache: 0 0
Swap: 0 0 0
#还可以再恶搞一点。比如我没有内存.如上。

Avatar_small
依云 说:
May 10, 2014 01:15:58 PM

你的智商确实令人捉鸡。这样输出一大堆,我还得告诉读者要看哪个值,而且与上例的格式并不一致。

higkoo 说:
Nov 11, 2015 01:54:19 PM

free 就可以看到,第2行就是去掉 buffers 和 cached 的。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

| Theme: Aeros 2.0 by TheBuckmaker.com