free语法:
free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay] [-c count] [-V]
-b,-k,-m,-g 以b/k/m/g为单位输出
-o 旧格式输出,无缓存行
-t 显示物理内存和虚拟内存之和
-s 刷新时间,不间断输出
-c 输出次数,配合-s使用
free使用:
free -m
total used free shared buffers cached
Mem: 1000 641 359 0 126 305
-/+ buffers/cache: 209 791
Swap: 1024 0 1024
total:内存总数1000M
used:已经使用的内存641M,包括缓存的内存数
free:空闲内存359M,不含缓存的内存数
buffers/cached:缓存的内存数
-buffers/cache:真实已用的内存数209M,即used-buffers-cached
+buffers/cache:真实可用的内存数791M,即free+buffers+cached
SWAP:虚拟内存数
内存缓存说明:
Buffers:用于缓存块设备读写的内存大小(buffer cache),使用先进先出策略。这部分缓存主要用于目录项、
inode等文件系统元数据。如果ls一个包含很多内容的目录,可以发现这个值明显增大。
Cache:用于缓存文件系统读写的内存大小(page cache),使用最少使用策略,这部分缓存主要用于打开的文件,
如果 cache 的值很大,说明缓存的文件较多,在进行读写时,命中率也将提高,如果频繁访问到的文件大部分被缓存,
则必然会减少磁盘的读IO。
清空内存缓存:
sync
#先将缓存写入磁盘
echo 1 > /proc/sys/vm/drop_caches
#释放buffer cache
echo 2 > /proc/sys/vm/drop_caches
#释放page cache
echo 3 > /proc/sys/vm/drop_caches
#释放buffer cache和page cache