一、问题背景
服务器的安全agent新增了一个扫描插件,插件上线以后,DBA反馈客户端访问Redis出现了耗时高的情况。
赶紧开始救火啦~
二、问题排查
1. 止损和初步定位
联系安全回滚,赶紧把新上的插件下掉,看起来服务是恢复了。
通过atop查看当时插件的执行情况,发现插件运行时CPU占用100%,看起来是这个引起的Redis耗时增加。
对程序Debug一下,发现是下面的代码耗时较长:
这里引入了一个第三库”github.com/shirou/gopsutil/v3/process” 来遍历进程。
在获取TTY的时候,有明显阻塞。
看下这个库的源码,发现三方库内部会打开 /dev/pts 文件。
在发生问题的服务器上手动执行一下看看?