linux下的free命令含义详解

linux下的free命令用来查看内存使用情况

使用free -h可以看到free命令的参数和含义,这些都比较简单,一般常用的也就是那么几个,比如free -m等。

最重要的是结果中各个参数的含义,这里简单的罗列如下:

①Mem就是你的物理内存了,比如我的服务器是8G,那total就是:8107;used + free = total。

    这里要注意的是对used和free的理解,used表示系统已使用的内存(并不是实际使用的内存),free表示系统剩余的内容

②-/+ buffers/cache,这一行能够真实反映出服务器内存使用情况

    - buffers/cache表示实实在在被程序用掉的内存,而+ buffers/cache表示剩余可用的内存

    实际上,buffers和cached中的内存都是可以被使用的,他们只是提高性能而设计的缓存。

    buffers是为块设备设计的缓冲,比如磁盘I/O操作等,都会通过buffers缓冲。

    cached是缓存读取过的内容,由于缓存空间有限,过一段时间没用的缓存数据会被移到swap分区,所以有时会看到物理内存还剩很多,但是swap分区已经被使用。

    从上面的描述可以看出,实际上,实实在在被程序用掉的内存(- buffers/cache)要从Mem的used部分除去buffers和cached;而实际剩余的内存(+ buffers/cache),则需要Mem的free加上buffers和cached。

③swap的使用,就比较简单了。

从上面的总结可以看出,实际上,我们在检查内存使用的时候,重要需要关注-/+ buffers/cache