放空一下自我 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的状态。