Во время тестирования нагрузки tsung соединения tcp закрываются после 1024 соединений - PullRequest
0 голосов
/ 29 января 2019

Я работаю над распределенным нагрузочным тестированием с tsung, чтобы проверить мой брокер сообщений mqtt.Мой брокер сообщений теперь может идеально обрабатывать 10 тыс. Соединений.Когда я тестировал его с помощью tsung для 10k параллельных соединений, я понял, что мои соединения tcp на сервере закрываются.

Я установил диапазон портов и увеличил ulimit, но все же я мог генерировать пользователей с помощью tsung, но не мог получить 10k одновременных соединений на сервере.

Я даже тестировал брокера с помощью другого инструмента под названием mqtt-bench, в этом я мог генерировать параллельные соединения, и здесь соединения tcp не закрываются.Есть ли какая-либо конфигурация, которая отсутствует на Цунг?

и версия tsung 1.7.0, версия erlang - 10.1

Ответы [ 3 ]

0 голосов
/ 29 января 2019

У меня были похожие проблемы при работе с несколькими клиентами.Одна из причин заключается в том, что вы используете тот же идентификатор клиента для подключения к серверу mqtt.

Например, если клиент A подключен к MQTT-серверу с именем (client1), а затем клиент B подключен к MQTT-серверу с таким же именем (client2), он отключит старое подключение.Это может быть одна из самых простых причин

0 голосов
/ 29 января 2019

Без доказательств мы дадим вам слово, что с mqtt-bench вы получите более 1024 соединений.(Для этого мне достаточно netstat -a -n | grep 1883 | wc -l.)

Если это так, это указывает на то, что проблема не в какой-либо конфигурации брокера, а в вашем TSUNG.конфигурации.То есть.вы не доказываете, что ваш процесс цунга имеет более высокие пределы, например.cat / proc / PROCNUMBER / ограничивает, где PROCNUMBER - это номер процесса вашего цуна.

Как только вы докажете это, следующим шагом будет запуск максимального количества соединений, которые работают с TSUNG, а затем запуск проводной акулыи запустите еще одно соединение с другим клиентом.PCAP покажет, что именно происходит.В случае сбоя нового подключения причины могут быть другими, чем если подключение будет установлено успешно, а другой клиент отключится.

Мы делаем это постоянно, как подробно описано в этом сообщении в блоге https://gambitcomm.blogspot.com/2016/06/how-is-realistic-mqtt-testing-different.htmlи другие в нашем блоге.

0 голосов
/ 29 января 2019

Скорее всего, вы применяете ограничения по умолчанию для серверного процесса.

Обычно процессы ограничены 1024 дескрипторами открытых файлов одновременно (открытый сокет поддерживается дескриптором файла).

Вы можете использовать команду ulimit, чтобы увидеть, каковы текущие мягкие / жесткие ограничения, и временно изменить ограничение до жесткого ограничения.Вы можете внести постоянные изменения, отредактировав файл /etc/security/limits.conf.

...