Linux&&FREE命令详解
各行含义详解
第一行的输出是从操作系统(OS)的角度来看的
计算机上一共有: (Mem.total)8133084KB(缺省时free的单位为KB)物理内存; 在这些物理内存中有(Mem.used)6854048KB被使用了; 还用(Mem.free)1279036KB是可用的。
其中,Mem.total = Mem.used + Mem.free
- Mem.shared:表示被几个进程共享的内存的,现在已经deprecated,其值总是0(当然在一些系统上也可能不是0,主要取决于free命令是怎么实现的)。
- Mem.buffers:表示被OS buffer住的内存,buffer是用于存放要输出到disk(块设备)的数据的.
- Mem.cached:表示被OS cache的内存,cache是存放从disk上读出的数据
Linux和其他成熟的操作系统(例如windows),为了提高IO read的性能,总是要多cache一些数据,这也就是为什么Mem.cached比较大,而Mem.free比较小的原因。
第二行是从一个应用程序的角度看系统内存的使用情况
- buffers/cache.used:表示一个应用程序认为系统被用掉多少内存.
+ buffers/cache.free:表示一个应用程序认为系统还有多少内存.
因为被系统cache和buffer占用的内存可以被快速回收,所以通常+ buffers/cache.free比- buffers/cache.used会大很多。
- buffers/cache.used = Mem.used - Mem.buffers - Mem.cached
+ buffers/cache.free = Mem.free + Mem.buffers + Mem.cached
free命令的所有输出值都是从/proc/meminfo中读出的
释放掉被系统cache占用的数据(Mem.cached)
echo 3 > /proc/sys/vm/drop_caches
第四行为交换区的信息
分别是交换的总量(Swap.total)2097148KB(total),使用量(Swap.used)122836KB(used)和有多少空闲的交换区(Swap.free)1974312(free)
命令参数介绍
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-g 以GB为单位显示内存使用情况。
-o 不显示缓冲区调节列。
-s <间隔秒数> 持续观察内存使用状况。
-t 显示内存总和列。
-V 显示版本信息。
参考资料:
https://www.cnblogs.com/kex1n/p/6010496.html