我们公司用 7 台 apache 作为后端反向代理,最近发生了奇怪的事,这 7 个 apache 的某台运行一段时间网卡的入口流量就会突然降低,连接数降低,客户端监控报警有请求超时,重启 apache 后即可恢复(故障在 7 台上都发生过,但是同一时刻只有一台挂)。观察了一下故障发生时候的情况,出问题的时 apache 监听的端口全连接队列打满,Recv-Q 129 Send-Q 128 。
这几台 apache 平时运行过程中总是有子进程不断退出并创建出新的子进程( 10 秒左右就会发生),在即将创建出子进程的时候,全连接队列会积压( Recv-Q 大概能到 40 )。用 perf trace 追踪了一下某个子进程的系统调用,发现退出码都是 0,看上去是正常退出的?
系统日志 /var/log/message 和 dmesg 以及 apache 日志都没有异常,这个现象是今年 4 月发生的,但是发生故障前后我们并没有变更过 apache 的配置,进程模型用的 event 。所以有点疑惑,大家有啥思路吗?
1
alect 2021-06-06 21:43:29 +08:00
很难说哪里有问题,先调整下 systctl.conf 修改 net.core.somaxconn
sysctl -w net.core.somaxconn=32768 |