时间:2021-05-19
在系统遇到各种IO瓶颈,内存使用率高,cpu使用率高等问题时,我们如何来定位错误?linux提供了很多命令来协助我们快速定位到错误,free命令是Linux最常用的命令之一:它可以查看系统的内存状况,包括服务器的总内存,已经使用的内存和剩下未被使用的内存,以及缓冲区和缓存各自占用的内存情况。
$ free -mtotal used free shared buffers cachedMem: 994 787 207 0 121 227-/+ buffers/cache: 437 557Swap: 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表示交换分区,也就是我们通常所说的虚拟内存。就可以把一部分磁盘空间当做内存使用,这部分空间叫做虚拟内存,当系统内存不足时,系统会把那些还驻留在内存中但是当前没有运行的程序暂时放到虚拟内存中去
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Linux系统操作中,除了可以使用命令监控系统性能外(详解监控Linux系统性能的命令有哪些),还可使用KSysguard工具,KSysguard是系统性能
Docker容器内存监控linux内存监控要明白docker容器内存是如何计算的,首先要明白linux中内存的相关概念。使用free命令可以查看当前内存使用情况
这是我们正在进行的Linux命令和性能监控系列的一部分。vmstat和iostat两个命令都适用于所有主要的类unix系统(Linux/unix/FreeBSD
linux清理内存命令1.清理前内存使用情况free-m2.开始清理echo1>/proc/sys/vm/drop_caches3.清理后内存使用情况free-
本文实例讲述了PHP+swoole+linux实现系统监控和性能优化操作。分享给大家供大家参考,具体如下:服务器监控端口监控php运行shell脚本classS