「free(1)」-

显示系统中可用及以用内存用量

命令语法格式

free [options]

命令描述

命令free显示系统中剩余、已使用的物理内存、交换分区的总量,以及被内核使用的缓冲和缓存。显示的数据来自/proc/meminfo。显示如下列:

total:总内存(/proc/meminfo下的MemTotal和SwapTotal);

used:已使用(= total – free – buffers – cache);

free:未使用的(在/proc/meminfo下MemFree和SwapFree);

shared:由tmpfs使用的(在/proc/meminfo下Shmem);

buffers:内核缓冲使用的(/proc/meminfo下的Buffers);

cache:页面缓存和slab使用的内存(在/proc/meminfo下Cached和SReclaimable);

buff/cache:= buffers + cache

available:在不使用swap时,估计可以用作应用启动的内存大小。与cache或free字段提供的数据不同,此值会计算页缓存和正在使用可回收但没有回收的内存slab。(在/proc/meminfo下的MemAvailable在3.14的内核上可用, 在2.6.27+是被模拟的, 除此以外和free一样)。

这些字段显示的数据由下面的选项控制。

命令支持的选项及含义

-h, –human
将输出自动转化为“3位数字后接单位”的形式来显示。使用的单位如下:

B = bytes

K = kibibyte

M = mebibyte

G = gibibyte

T = tebibyte

P = pebibyte

如果缺少单位,并且您有exbibyte大小的RAM或swap,则该数字为tebibytes,列可能与标题不对齐。

-w, –wide
使输出变宽,产生的列宽大于80字符。这种模式下,buffer 和 cache 分两列显示。

-l, –lohi
显示详细的高(High)低(Low)内存统计信息。

当系统物理内存较大时,超过896M的内存区域,内核就无法直接通过线性映射直接访问了,这部分内存被称作”high memory“。相应的可以映射的低端物理内存称为“low memory”。

-t, –total
附加一行,该行显示格列求和。

周期执行

-s, –seconds delay
在连续显示结果时,延迟delay秒。 实际上,可以在delay中使用”,“或”.“,指定延迟时间的微秒部分。函数usleep(3)用于处理微秒分辨率延迟时间。

-c, –count count
显示的count次结果。要求使用-s选项。

控制输出单位

-b, –bytes
以byte为单位显示内存使用信息。

-k, –kibi
以kibibyte为单位显示内存使用信息。

-m, –mebi
以mebibytes为单位显示内存使用信息。

-g, –gibi
以gibibytes为单位显示内存使用信息。

–tebi
以tebibytes为单位显示内存使用信息。

–pebi
以pebibytes为单位显示内存使用信息。

–si
使用kilo, mega, giga etc (是1000的倍数),而不时kibi, mebi, gibi (是1024的倍数)。

–kilo
以kilobytes为单位显示内存使用信息。隐含–si选项。

–mega
以megabytes为单位显示内存使用信息。隐含–si选项。

–giga
以gigabytes为单位显示内存使用信息。隐含–si选项。

–tera
以terabytes为单位显示内存使用信息。隐含–si选项。

–peta
以petabytes为单位显示内存使用信息。隐含–si选项。

其他选项

–help
显示帮助信息。

-V, –version
显示版本信息。

注意事项

在2.6.32之前,内核中没有shared列的值,并且显示为零。

相关文件

/proc/meminfo
内存信息

相关手册

ps(1), slabtop(1), top(1), vmstat(8).

参考文献

  • man 1 free, Version 23.3.15-2