現(xiàn)象
client 建立連接 三次握手已經(jīng)完成,但server 的selector沒有響應(yīng)這個連接。
正常的三次TCP 三次握手
- client ---syn指令---> server
- server ---sync+ack--- client
- client --- ack 指令 ---> server
命令
ss -l
netstat -s | egrep "listen|LISTEN"
全鏈接隊列溢出的次數(shù)
分析
全鏈接隊列已滿舆瘪,導(dǎo)致客戶端發(fā)送ack命令后,已將隊列修改為establish,但server由于accept隊列已滿,拋棄了ack包躲因,server沒有觸發(fā)鏈接建立事件。
半連接隊列和全連接隊列
來源: http://www.cnxct.com/something-about-phpfpm-s-backlog
全鏈接隊列的大小:
min(backlog, somaxconn) . backlog是在socket創(chuàng)建的時候傳入的大脉,somaxconn是一個os級別的系統(tǒng)參數(shù)
半鏈接隊列的大懈慵唷:
半連接隊列的大小取決于:max(64, /proc/sys/net/ipv4/tcp_max_syn_backlog)。