问题描述
负载均衡SLB对后端多台服务器进行负载,且在客户端请求访问量为0的情况下,发现服务器中有大量TIME_WAIT状态的连接。登录后端服务器,执行以下命令,确认TIME_WAIT状态的连接数过多。
while true;do netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}';sleep 1;done | grep TIME_WAIT
系统显示类似如下。
TIME_WAIT 424
TIME_WAIT 430
TIME_WAIT 437
TIME_WAIT 447
TIME_WAIT 455
TIME_WAIT 464
TIME_WAIT 473
TIME_WAIT 481
TIME_WAIT 490
TIME_WAIT 498
TIME_WAIT 506
TIME_WAIT 513
解决方案
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
这种情况下,有以下两种方法解决问题:
注意:此问题一般出现在SLB的7层(HTTP)转发模式下,在SLB对HTTP请求进行转发时,由于是网络协议中应用层协议的请求,因此在您修改Web应用的超时时间设置、SLB健康检查频率以及系统自身的net.ipv4.tcp_keepalive_time等参数后,对TIME_WAIT状态的连接数目的降低不会有非常明显的效果。
适用于
- 负载均衡SLB