free命令可以查看系统的内存状况,包括服务器的总内存,已经使用的内存和剩下未被使用的内存,以及缓冲和缓存各自占用的内存情况。
free -m total used free shared buffers cached Mem: 994 787 207 0 121 227 -/+ buffers/cache: 437 557 Swap: 0 0 0
要完全理解上面3行数据,先搞明白buffer和cache是什么。
A buffer is something that has yet to be "written" to disk.
A cache is something that has been "read" from the disk and stored for later use.
buffer是用于存放将要输出到disk(块设备)的数据,而cache是存放从disk上读出的数据。二者都是为提高IO性能而设计的。
现在开始分析free命令输出的每一行代表的含义:
第一行:Mem
总共的内存994(total) = 787(used)+207(free),used表示系统已经被使用的内存,它包括应用程序使用的内存,以及用于缓冲和缓存的内存总和。
第二行:-/+ buffers/cache,分两步理解
第三行:Swap
看到很多文章直接说不解释了,但这里我要解释一下,Swap表示交换分区,也就是我们通常所说的虚拟内存。就可以把一部分磁盘空间当做内存使用,这部分空间叫做虚拟内存,当系统内存不足时,系统会把那些还驻留在内存中但是当前没有运行的程序暂时放到虚拟内存中去。