放空一下自我 free
.. _linux_free_beginner:
**free
**这个命令在Linux系统监控的工具里面,算是使用的比较多的一个。
使用_man
_查看可知,官方含义为:
Display amount of free and used memory in the system
也就是显示可用、易用的系统内存,它直接读取/proc/meminfo
文件。
默认的效果
先看下不加任何参数的时候,free
的效果:
1 | $ free |
看起来很多的样子,但是不直观,我比较喜欢加上-h参数。
使用易读的参数
-h参数,跟前面的df
等命令类似,此处的h表示human being
的含义方便人类阅读。 除了这个还有-b,-k,-m,-g
,含义分别为按照字节、KB、MB、GB
的格式来显示。
1 | $ free -h |
WoW,此时的显示简直好简洁。
说下其中的含义:
- total : 表示总的物理内存大小,比如上面的就表示31GB的内存
- used :表示已经使用的内存大小,比如上面的就是使用了14GB
- free :表示可用多少
- shared:表示多个进程共享的内存大小
- buff/cache:表示磁盘缓存的大小,这里有两个方面,
buff
和cache
,两个的含义不同- buff :还没有写入磁盘
- cache:从磁盘读取的方便下一次使用
- 这里就设计到Linux的设计哲学,比如读取一个100G的文件,第一次所使用的时间总归是后面再次读取的时间的好几倍,当然前提是没有释放掉caches
- available:当然含义为可用的内存容量大小
间隔显示内存状态
还有一个比较常用的就是,如果你希望过一段时间就看下free
的情况,OK,使用参数-s
,后面跟的单位是秒,也就是每个几秒,统计一下使用的内存情况,比如我们每个2s,显示一下
1 | $ free -s 2 |
查看meminfo文件
1 | $ cat /proc/meminfo |
其实free
读取的就是这个文件的某些信息,可以通过同步监控这个文件来check free
的状态。
v1.5.2