查看队列溢出
netstat -s | egrep "listen|LISTEN"
;全连接队列溢出次数:
41696 times the listen queue of a socket overflowed
;半连接队列溢出次数:
41696 SYNs to LISTEN sockets dropped
查看队列使用情况
ss -lnt
全连接队列当前使用量 | 监听端口上全连接队列最大大小 | |||
---|---|---|---|---|
State | Recv-Q | Send-Q | Local Address:Port | Peer Address:Port |
LISTEN | 0 | 512 | *:8765 | *:* |
对于高并发的短连接应用来说,在没有及时调用accept进行处理时,会导致accept queue队列满。
在队列满的情况下,内核参数/proc/sys/net/ipv4/tcp_abort_on_overflow默认是0,操作系统不会给连接回复RST,而是默默的将ACK丢弃。会导致server对第二个包SYN+ACK进行重传,连接也无法建立。