1. 命令格式
free [参数]2. 命令功能
free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略
3. 命令参数
-b 以Byte为单位显示内存使用情况。 -k 以KB为单位显示内存使用情况。 -m 以MB为单位显示内存使用情况。-g 以GB为单位显示内存使用情况。-h 自动转换单位(最常用)-o 不显示缓冲区调节列。 -s <间隔秒数> 持续观察内存使用状况。 -t 显示内存总和列。 -V 显示版本信息。 4. 输出解析
[zhangchengfei@Master:~]$free total used free sharedbuffers cachedMem:16079364 1490146011779045278136654085921568-/+ buffers/cache:89144847164880Swap: 122234841388724 10834760free命令的所有输出值都是从
/proc/meminfo中读出的。这里
free的输出一共有
四行,下面依次解释这几行:
4.1 Mem行解析
这行输出是从
操作系统(OS)来看的,也就是说,从OS的角度来看,计算机上一共有:
16079364KB(默认单位为KB)物理内存;在这些物理内存中有
14901460KB被使用;还用
1177904KB是可用的;
这里有一个等式:
Mem.total = Mem.used + Mem.freeshared表示被几个进程共享的内存的,用于
IPC,现在已经deprecated,但我的机器上还是显示了,主要取决于
free命令是怎么实现的。
buffer表示被系统buffer的内存,用于存放要输出到disk(块设备)的数据。
cached表示被系统cache的内存,用于存放从disk上读入的数据。
下面是英文原版解释,这二个都是为了提高IO性能的。
A buffer is something that has yet to be “written” to disk.
A cache is something that has been “read” from the disk and stored for later use.
释放掉被系统cache占用的数据;
echo 3>/proc/sys/vm/drop_caches4.2 -/+ buffers/cache行解析
该行是从应用程序的角度看系统内存的使用情况。
used表示应用程序认为系统已经用掉多少内存;
free表示应用程序认为系统还有多少内存;
因为被系统
cache和
buffer占用的内存可以被快速回收,这里都算在
free里面。这里有两个等式:
(-/+buffer/cache).used = Mem.used - Mem.buffers - Mem.cached(-/+buffer/cache).free = Mem.free + Mem.buffers + Mem.cached4.3 Swap行解析
该行为交换分区的信息,分别是交换的总量(total),使用量(used)和有多少空闲的交换区(free)。【完】
本文永久更新链接地址