mqtt mosquitto linux ограничение на количество подключений

Как пользователи преодолевают ограничение в 1024 соединения в Linux в связи с выполнением MQTT для push-уведомлений?

Я использую сервер Mosquitto, который, как я читал, не имеет ограничения на количество подключений 1024, встроенного в версию для Linux. Итак, могу ли я использовать один сервер (без моста и т. д.) и получить 5 000, 10 000+ пользователей?

Или мне обязательно нужен мост? Я не видел много статей о том, как это настроить, кроме справочной страницы настроек конфигурации для mosquitto.

Или я могу обойтись, просто изменив несколько параметров конфигурации Linux, и мне будет достаточно одного сервера mosquitto?

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

Хм


person Daniel Guillamot    schedule 10.04.2012    source источник


Ответы (3)


Теоретически вы можете настроить Linux для максимального количества сокетов для комара до того, что вам нужно. Тогда вопрос в производительности. Ключевой показатель — общее количество сообщений в секунду. Если у вас подключено 20 000 клиентов, сколько из них будет активным и сколько сообщений будет отправлять каждый?

Например, если половина ваших клиентов активны и отправляют 1 сообщение в секунду, получается 10 тыс. msps — только входящие, конечно. Если каждое из этих сообщений имеет размер 10 байт, вы находитесь на постоянной скорости 100 кБ/с или 800 кбит/с.

Другим аспектом является то, как устроена иерархия тем. Я не могу сказать вам, что лучше, но это, безусловно, будет иметь эффект.

Мое лучшее предложение - написать клиент, который имитирует реального человека, а затем использовать его для реального тестирования вашего сценария.

Я видел примеры чрезмерного количества клиентов: http://bit.ly/HytRpK, но более подробной информации у меня нет.

И последнее замечание: IBM в настоящее время выпускает красную книгу по MQTT. Он должен быть доступен «весной», т.е. в ближайшее время. Я думаю, что это покроет проблемы масштабирования.

person ralight    schedule 10.04.2012
comment
Большое спасибо, Роджер~ На самом деле я не ожидаю, что мои клиенты будут вообще очень активны. Я ожидаю, что 20 000 клиентов будут иметь всего 4 или 5 запросов в секунду. Вся фактическая коммуникация с пользователем идет от клиента --> сервер через SSL, а не MQTT. Затем я использую MQTT для отправки пользователю уведомления о поступлении нового сообщения. Около 4 или 5 раз в день я также использую MQTT для отправки данные для всех моих пользователей, ежедневные обновления новостей.. Так что очень мало данных/сообщений в секунду.. Иерархия тем - я планировал создать 1 тему для каждого пользователя. Итак, 20 000 тем.. Хм - person Daniel Guillamot; 11.04.2012

Для клиента мы протестировали MQTT IBM WebSphere MQ, увеличив число одновременных клиентских подключений до 240 000 на администратор очередей (среда выполнения MQ, в кластере MQ может быть много). Мне сказали, что это примерно в 10 раз больше, чем разумно обрабатывает веб-сервер Apache. ЦП сервера во время тестирования был низким на уровне ‹5%. Можно было бы продолжать увеличивать количество одновременно работающих клиентов MQTT далеко за пределы 240 000, но в лаборатории закончились клиентские машины для нагрузочного тестирования. IBM MQ — это провайдер публикации/подписки, встроенный в ESB WebSphere Message Broker, поэтому я ожидаю, что результат будет таким же.

person Joe Speed    schedule 14.11.2012

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

Было показано, что реализация IBM с использованием WebSphere MQ в качестве брокера MQTT поддерживает до 100 000 одновременных подключений. Я считаю, что бесплатный брокер IBM RSMB ограничен 1024 соединениями.

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

person Andy Piper    schedule 10.04.2012