命令/bin/free显示系统中内存空闲及使用情况。它也包括内核使用的buffer与cache的相关信息。
例子2-7:free命令输出结果示例
在使用free命令时,回忆一下Linux内存架构和虚拟内存管理方法。空闲内存值的用处市非常有限的,单纯统计交换空间使用率也不表示存在内存瓶颈。
图2-1:描述了free命令输出结果的基本含义。

图2-1:free命令的输出结果
free命令常用的参数包括:
-b, -k, -m, -g :分别使用byte、KB、MB、GB为单位显示。
-l :区分低内存和高内存(参见1.2“Linux内存架构”)
-c <count> :显示输出结果的次数
内存区【Zone】中使用的内存
使用-l选项,你可以了解到在每个内存区中有多少内存被使用。例子2-8和例子2-9分别展示了在32位系统和64位系统中free -l的输出结果。注意在64位系统中不再使用高内存。
例子2-8:32位系统中free命令的输出结果
例子2-9:64位系统中free命令的输出结果
你可以从/proc/buddyinfo文件中了解到每个内存区中有多少块内存可以使用。每列数值代表所需求大小的块可用的数量。例子2-10中,在ZONE_DMA中有5块2^2*PAGE_SIZE可用,在ZONE_DMA32中有16块2^3*PAGE_SIZE可用。回忆一下伙伴系统是怎样分配内存分页的(参见“伙伴系统”)。下面输出结果显示系统内存碎片的具体情况并让我们了解有到底多少分页可以分配。
例子2-10:64位系统中伙伴系统相关信息
补充:
free命令有少量选项,推荐使用-mt-m开关使输出以兆字节为单位,-t开关提供一个合计行: