keepalived 服务器内存持续升高问题

问题现象

线上两台 keepalived + lvs 机器,内存都被 slab 占光了,观察是 dentry 所占用的,通过排查,是由于keepalivedmisc 调用 bash 脚本引发的。即便不是 misc 调用, bash 本身的正常的调用也会引发 slab 内存持续升高(使用 while 命令进行测试)。可是测试环境不是这样。bash

查找缘由

...略过许多排查步骤。
使用 strace 命令跟踪脚本的调用,发现 B
脚本的系统调用特别多,并且此脚本的运行速度明显慢于 A 脚本。 curl

这两个脚本的区别在于一个检测 http 服务,一个检测 https 服务。那么可能就是在 https 这里出的问题。ide

什么缘由呢?因而将 strace 的结果输出到一个文件里,在文件里观察发现最多的就是 access("/etc/pki/nssdb/.273583784_dOeSnotExist_.db", F_OK) = -1 ENOENT (No such file or directory) 。查看此目录是由 nss 这个包产生的测试

[root@SZ-CORE-LVS-02 keepalived]# rpm -qf /etc/pki/nssdb/
nss-3.28.4-4.el6_9.x86_64

,而后搜索了 /etc/pki/nssdb/.273591295_dOeSnotExist_.db 这个错误,发现了下面的几个连接,
原来这是 nss-softokn 的一个 bug, 有修改源码的方式,可是那样还得从新编译,最简单的方式就是
配置一个环境变量。export NSS_SDB_USE_CACHE=no ,一句话,立竿见影,slab 稳定了。世界安静了。url

总结:

centOS6 当使用 curl 命令访问 https 服务的时候就会产生这个状况(由于nss-softokn这个包的 bug ),调用频繁就会使得 slab 内存持续明显上升。code

参考以下:

相关文章
相关标签/搜索