linux 部分内存监控及指标含义

最近的两周业务上线,忙着搞系统的稳定性。最近忙完了,记录一下最近学习的一些内容,本篇主要介绍linux监控相关的

为了能够快速的定位问题,在每台机器上增加了一些定期执行的脚本,用于采集机器的状态,分别是:top,iostat,iotop,ioping,vmstat,dstat,sar

一个一个看吧

top
top -d3 -b -c -w1024

top指令非常简单了,主要定期dump一次,简单看看cpu利用率是否正常,wait和sys状态是否过高,另外用看看对应的内存信息

iostat
iostat -t -x -m 1

也是比较常用的指令,一般会展示如下的一些数据

rrqm/swrqm/sr/sw/srMB/swMB/savgrq-szavgqu-szawaitr_awaitw_awaitsvctm%util
读请求数写请求数完成的读请求完成的写请求读数据量写数据量平均读大小平均写大小平均处理一个请求的时间

目前也没有通过这个指标定位到问题的经验,一般就看看读写数据量是否是正常的,是否有突然非常大量的读取和写入。

iotop
iotop -d 2 -o -P -t

这个指令会显示有io的进程,展示每个进程对应的读写数据量和swapin率,目前没用过这个值,根据man手册解释,这个应该是进城等待内存换入所花的时间百分比,应该只有swap区打开的情况下这个值才可能是非0?

ioping
ioping -S 10485760 -y -k -W -L -s 4k

该指令会定期写入4k数据块到磁盘,测试磁盘的延迟,某些时候server层请求出现毛刺,排查后发现磁盘在那个时间点延迟升高,可能就是磁盘抖动导致的延迟毛刺,如果不是非常有必要的情况下,排查到磁盘的抖动就可以结束了。

vmstat
vmstat -t -w 1

该指令能够看到一些内存page信息,free buffer cache的page数量,以及block读入和写出的一些数量

sar
sar -B 1
pgpgin/spgpgout/sfault/smajflt/spgfree/spgscank/spgscand/spgsteal/s

这个接触得少一点,简单记录一下

  • fault/s。是page fault的次数,包括minor和major,按照man来开,major指的应该是需要从disk读数据的
  • majflt/s。major page fault次数
  • pgfree/s。归还给空闲链表的page数量,看起来这个应该是指的用户进程归还的,即从used 到 free里的?
  • pgscank/s。扫描到可回收的内存页,内核会起一个线程不停的扫描,找到可回收的内存页进行回收,所以这个scan无所谓,定期执行,在内存水位低于一定情况时就会触发(应该是低于min free byte*一个系数)
  • pgscand/s。扫描到可回收的内存页,这个是强制回收,当内存低于minfreebytes的时候触发,会卡住进程,如果这一列非零需要注意
  • pgsteal/s。从cache中回收的page数量,基本和两个scan之和是一致的。

pgsteal和pgfree的区别,steal是回收目前正在被使用的内存,从active和inactive中回收,如果是page cache,那么可以直接回收(脏页就写了后回收,非脏页直接回收),如果是从匿名区回收,那么就需要将用户正在使用的内存页唤出到swap,极度影响性能,建议优先回收page cache,内核有参数可以设置该策略。

proc meminfo

这个内容就特别多了,可以参考meminfo 详解

我主要关注几个点

  • cache和buffer的区别,从man手册看,buffer是对于块设备的缓冲区,cache是文件系统的缓存,即理论上来说数据从磁盘读出来,缓存到buffer,然后整理后交给文件系统,文件系统的cache又会缓存一次,这个每意义,所以目前文件系统的cache和buffer是同一个东西。对于我们这种使用文件系统的应用来说,buffer和cache没区别
  • active和inactive链表都是在使用中的内存,上述说的scan回收page也是在链表上回收,对于匿名区和page cache回收策略不一样,会优先从inactive链表上回收(我也不知道能不能从active上回收)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值