Linux 查看系统内存
**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 :something that has yet to be ‘writeen’ to disk ,还没有写入磁盘
- cache: something that had been ‘read’ from the disk and store for later user,从磁盘读取的方便下一次使用
- 这里就设计到Linux的设计哲学,比如读取一个100G的文件,第一次所使用的时间总归是后面再次读取的时间的好几倍,当然前提是没有释放掉caches
available:当然含义为可用的内存容量大小
间隔显示内存状态
还有一个比较常用的就是,如果你希望过一段时间就看下free
的情况,OK,使用参数-s
,后面跟的单位是秒,也就是每个几秒,统计一下使用的内存情况,比如我们每个2s,显示一下
1 | $ free -s 2 |
查看meminfo文件
1 | $ cat /proc/meminfo |
其实free
读取的就是这个文件的某些信息,可以通过同步监控这个文件来check free
的状态。