Как мне узнать, насколько близко я подхожу к somaxconn?

17

Параметр sysctl по net.core.somaxconnумолчанию равен 128 (в наших системах), но может быть повышен.

  1. Что именно этот предел измеряет и ограничивает?

  2. Как узнать, насколько я близок к пределу?

Контекст: недавно у меня была проблема, которая, казалось, была исправлена ​​путем повышения этого лимита. Проблема была периодической, поэтому я не верю, что она действительно исправлена. Я хотел бы выяснить, больше ли текущее число [независимо от этого ограничения настройки], чем предыдущий максимальный предел 128.

Андрей
источник
1
К вашему сведению: начиная с Linux 5.4 он был увеличен до 4096 .
Привет, Ангел,

Ответы:

18

somaxconnопределяет максимальное количество разрешенных подключений, разрешенных для каждого TCP-порта в системе. Увеличение его (рекомендуется для серверов) может предотвратить появление сообщений об отказе в соединении, но может привести к медленным соединениям, если сервер не может справиться с повышенной нагрузкой.

Вы можете проверить текущее отставание в netstat -ant | grep -c SYN_RECсоответствии с этой страницей . Он будет подсчитывать, сколько соединений находится в состоянии «получено SYN», то есть система получила пакет SYN (запрос соединения), но еще не подтвердила его.

Если ваша система ssустановлена, вы также можете использовать ss -sдля отображения сводки подключений. Ищите synrecvв выводе или ss -s | grep -Po '(?<=synrecv )\d+(?=,)'просто напечатайте номер.

miken32
источник