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

问题现象

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

查找原因

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

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

什么原因呢?于是将 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 稳定了。世界安静了。

总结:

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

参考如下:

转载于:https://blog.51cto.com/beyondhf/2086365

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值