Um zu überprüfen, ob Ihre Warteschlange überläuft, verwenden Sie entweder netstat oder nstat
[centos ~]$ nstat -az | grep -i listen
TcpExtListenOverflows 3518352 0.0
TcpExtListenDrops 3518388 0.0
TcpExtTCPFastOpenListenOverflow 0 0.0
[centos ~]$ netstat -s | grep -i LISTEN
3518352 times the listen queue of a socket overflowed
3518388 SYNs to LISTEN sockets dropped
Referenz:https://perfchron.com/2015/12/26/investigating-linux-network-issues-with-netstat-and-nstat/
Um Ihre Warteschlangengrößen zu überwachen, verwenden Sie den Befehl ss und suchen Sie nach SYN-RECV-Sockets.
$ ss -n state syn-recv sport = :80 | wc -l
119
Referenz:https://blog.cloudflare.com/syn-packet-handling-in-the-wild/
Sysdig stellt einige dieser Informationen am Ende jedes accept
zur Verfügung syscall, als queuelen
Streit. Es zeigt auch die Länge der Warteschlange als queuemax
an .
7598971 21:05:30.322229280 1 gunicorn (6451) < accept fd=13(<4t>127.0.0.1:45882->127.0.0.1:8003) tuple=127.0.0.1:45882->127.0.0.1:8003 queuepct=0 queuelen=0 queuemax=10
Soweit mir bekannt ist, bietet es keinen Mechanismus, um genau zu wissen, wann oder wie oft die Warteschlange übergelaufen ist. Und es wäre umständlich, dies in die regelmäßige Überwachung durch collectd
zu integrieren oder ähnliches.