FreeBSD установил максимальное количество подключений на 300

Ранее у нас были проблемы в нашей среде, когда казалось, что мы достигли максимального лимита подключения FreeBSD. Мы предприняли действия, продемонстрированные http://nginx.org/en/docs/freebsd_tuning.html и увеличили предел наших подключений до 500: kern.ipc.somaxconn: 500

У нас все еще есть проблемы, когда мы ожидаем увидеть дополнительные подключения клиентов к этому конкретному серверу, а у нас их нет, они отсутствуют.

Мы не знаем, это проблема приложения или проблема с сетью. Но мне было интересно, есть ли какой-то другой предел, который мы сейчас устанавливаем, может быть, с максимальным количеством установленных соединений?

Вот некоторые графики, показывающие наше поведение соединения, которое выглядит странно, как будто оно ограничено 300 соединениями:

Соединения с вышеупомянутой коробкойНедостающие команды

Примерное количество пропущенных команд на нашем сервере ^

РЕДАКТИРОВАТЬ:
Дополнительные сведения о приложении. Приложение представляет собой tclsh (оболочка tcl), которая прослушивает определенный порт TCP, используя приложение сокета для получения соединений. Может быть, это ограничение на основе tcl или ограничение для сокетов?

Сведения об устранении неполадок: когда я запускаю nmap, я снова и снова "пингую" нужный порт

for i in {1..600}; do nmap -p 2069 serverIP; done

Кажется, я получаю следующее с netstat:

netstat -Lan | grep 2069
tcp4  193/0/128      *.2069
tcp4  193/0/128      *.2069
tcp4  193/0/128      *.2069
tcp4  193/0/128      *.2069

Кажется, это означает, что я на самом деле превышаю значения по умолчанию в kern.ipc.somaxconn. Но мы уже установили это значение намного выше значения по умолчанию.

Даже когда я отслеживаю установленные соединения, используя:

netstat -an | grep 2069 | wc -l

Я получаю всего 192 соединения на 2069. Это означает, что он больше не принимает этот конкретный порт.

2 ответа

Решение

Похоже, на самом деле это был предел приложения. Прослушивание процесса на сокете 2069 было построено с максимальным количеством 192 прослушивающих соединений.

Я предполагаю, что многие приложения создаются, как будто с этими ограничениями, и вполне вероятно, что somaxconn просто увеличивает общее количество допустимых сокетов прослушивания по сравнению с тем, для чего приложение фактически создано.

Файловые ручки приходят мне в голову. Сначала проверьте с ulimit -n (или, в зависимости от оболочки, limit -n) если он вернется 1024, Если это так, увеличьте ограничение дескриптора файла с помощью ulimit -n 16384, limit -n 16384 или так. Посмотрите, поможет ли это.

Другие вопросы по тегам