Прежде всего, мы должны понимать, что сокет TCP в состоянии «LISTENING» имеет две независимые очереди:
- SYN очередь
- Accept очередь
В очереди SYN хранятся соединения, которые не получили ACK-пакет от клиента. т. е. (полуоткрытые соединения)
В очереди Accept хранятся уже установленные соединения «ESTABLISHED».
Ограничение SYN очереди раньше настраивалось изменением параметра ядра net.ipv4.tcp_max_syn_backlog, но теперь это не так. В настоящее время net.core.somaxconn ограничивает оба размера очереди.
Посмотреть текущий размер очереди можно командой:
sysctl -a | grep net.core.somaxconn
Чтобы изменить размер очереди, введите команду:
sysctl -w net.core.somaxconn=65535
Применить изменения после перезагрузки:
echo 'net.core.somaxconn=65535' >> /etc/sysctl.conf
Посмотреть количество сокетов в Accept очереди Recv-Q и размер бэклог-лимита Send-Q:
ss -tlpn
Посмотреть количество соединений в очереди SYN:
ss -n state syn-recv sport = :443 | wc -l
Посмотреть количество уже установленных соединений:
ss -n state established | wc -l