这个月初,salt-master机器的负载开始狂飙,之前一直都0.25左右,月初开始稳定飙到几十。
top后看到salt-master的线程时不时全部都活动起来干活,查salt-master日志,也没看出啥,就是一直刷minion的密钥更新之类的信息,毕竟单机拖了4千台机器了,输出这些日志很正常。
同机还跑着mysql,怀疑下mysql,查了processlist,也没啥很多sql语句并发会堵塞影响性能啊。
sar看到CPU都是用在user那里,没办法,先定性为机器性能不够,毕竟每天都有二三十台新机器接入master,也有其他事情忙,就是用起来慢点,也不是不能用。
今天闲了点又去看了下,检查message日志,发现内核一直抛警告:
kernel: possible SYN flooding on port 4506. Sending cookies.
4506端口一直有syn的连接,内核参数是没问题的,ss看了下连接数,也正常,syn连接数就几个。
估计是负载影响到机器对于连接的处理,导致内核抛这个警告。
再去看了下自己写的自动处理新机器ID的脚本日志,发现端倪了。
一直有同个ID的机器怼过来,机器都做了salt-minion的守护,所以一直对冲。
salt-master就一直删除接受删除接受这个ID。
处理掉这个冲突后,发现负载立马就降下来了。
结合日志和zabbix的负载监控,就是这个ID一直对冲的时候开始,机器负载就狂飙了。
所以,直接原因很明显,就是salt-master在处理这个重复ID进行接收删除时,严重影响了机器的性能,根本原因嘛,还要啃一下源码才知道了。
待续