
Параметр sysctl net.core.somaxconn
по умолчанию равен 128 (в наших системах), но его можно увеличить.
Что именно означает этот предельный показатель и ограничение?
Как узнать, насколько я близок к пределу?
Контекст: Недавно у меня возникла проблема, которая, как мне показалось, была исправлена путем повышения этого лимита. Проблема была прерывистой, поэтому я не верю, что она действительно исправлена. Я хотел бы узнать, превышает ли текущее число [каких бы ограничений ни устанавливал этот параметр] предыдущий максимальный лимит в 128.
решение1
somaxconn
определяет максимальное количество отложенных соединений, разрешенных для каждого порта TCP в системе. Увеличение этого значения (рекомендуется для серверов) может предотвратить сообщения «подключение отклонено», но может привести к замедлению соединений, если сервер не сможет справиться с возросшей нагрузкой.
Вы можете проверить текущее отставание по netstat -ant | grep -c SYN_REC
даннымэта страница. Он подсчитает, сколько соединений находятся в состоянии «SYN получен», что означает, что система получила пакет SYN (запрос на соединение), но еще не подтвердила его.
Если ваша система ss
установлена, вы также можете использовать ss -s
для отображения сводки соединений. Найдите synrecv
в выводе или ss -s | grep -Po '(?<=synrecv )\d+(?=,)'
просто напечатайте номер.