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