在Linux系统中可以使用ree命令来定位IO瓶颈,内存使用率高,cpu使用率高等问题,free命令可以查看系统的内存、包括服务器的总内存等功能。
1
2
3
4
5
|
$ 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是什么。
buffer:缓冲区
将数据缓冲下来,解决速度慢和快的交接问题;速度快的需要通过缓冲区将数据一点一点传给速度慢的区域。例如:从内存中将数据往硬盘中写入,并不是直接写入,而是缓冲到一定大小之后刷入硬盘中。
A buffer is something that has yet to be “written” to disk.
cache:缓存
实现数据的重复使用,速度慢的设备需要通过缓存将经常要用到的数据缓存起来,缓存下来的数据可以提供高速的传输速度给速度快的设备。例如:将硬盘中的数据读取出来放在内存的缓存区中,这样以后再次访问同一个资源,速度会快很多。
A cache is something that has been “read” from the disk and stored for later use.
buffer是用于存放将要输出到disk(块设备)的数据,而cache是存放从disk上读出的数据。二者都是为提高IO性能而设计的。
理解了buffer和cache的作用后,那么free展示的信息就易懂了,现在开始分析free命令输出的每一行代表的含义:
第一行:Mem
总共的内存994(total) = 787(used)+207(free),used表示系统已经被使用的内存,它包括应用程序使用的内存,以及用于缓冲和缓存的内存总和。
第二行:-/+ buffers/cache
-buffers/cache:437(used) = 787(used) – 121(buffers) – 227(cached),437表示除去缓冲和缓存消耗的内存外,应用程序实际消耗的内存是437M。
+buffers/cache:557(free) = 207(free)+121(buffers)+cached(227),557表示系统可用的内存有557M,因为如果遇到内存告急的情况时,buffer和cache所占的内存还是可以用来给应用程序使用。
第三行:Swap
看到很多文章直接说不解释了,但这里我要解释一下,Swap表示交换分区,也就是我们通常所说的虚拟内存。就可以把一部分磁盘空间当做内存使用,这部分空间叫做虚拟内存,当系统内存不足时,系统会把那些还驻留在内存中但是当前没有运行的程序暂时放到虚拟内存中去
关于Linux系统中free命令的教程分享结束,大家如果想深入了解可以自行 man free
为各位朋友分享的相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多