Pour vérifier si votre file d'attente déborde, utilisez netstat ou 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
Référence :https://perfchron.com/2015/12/26/investigating-linux-network-issues-with-netstat-and-nstat/
Pour surveiller la taille de vos files d'attente, utilisez la commande ss et recherchez les sockets SYN-RECV.
$ ss -n state syn-recv sport = :80 | wc -l
119
Référence :https://blog.cloudflare.com/syn-packet-handling-in-the-wild/
Sysdig fournira certaines de ces informations à la fin de chaque accept
syscall, comme le queuelen
dispute. Il affiche également la longueur de la file d'attente sous la forme queuemax
.
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
Autant que je sache, il ne fournit aucun mécanisme pour savoir exactement quand ou combien de fois la file d'attente a débordé. Et il serait fastidieux d'intégrer cela à un suivi périodique par collectd
ou similaire.