MQTT Mosquitto Линукс Предел подключения
Как пользователи преодолевают ограничение в 1024 подключения в Linux в сочетании с выполнением MQTT для push-уведомлений?
Я использую сервер Mosquitto, который, как мне кажется, я прочитал, не имеет предела подключения 1024, встроенного в версию Linux. Итак, могу ли я использовать один сервер (без мостов и т. Д.) И получить 5000, более 10000 пользователей?
Или мне абсолютно необходимо преодолеть? Я не видел много писем о том, как это настроить, кроме справочной страницы настроек конфигурации для mosquitto.
Или я могу обойтись, просто изменив несколько параметров конфигурации Linux, и у меня все получится, если у меня будет один сервер от Mosquitto?
Мое приложение в большей или меньшей степени является приложением для обмена мгновенными сообщениями, поэтому я ожидаю, что около 10 000, может быть, даже 20 000 человек будут использовать его с постоянными круглосуточными подключениями к комару, чтобы предупредить их о сообщениях.
Хммм
3 ответа
Теоретически вы можете довести настройку Linux для максимального количества сокетов для комаров до того, что вам нужно. Тогда возникает вопрос о производительности. Ключевым показателем является количество сообщений в секунду. Если у вас подключено 20 тыс. Клиентов, сколько будет активно и сколько сообщений будет отправлено?
Например, если половина ваших клиентов активна и отправляет 1 сообщение в секунду, то скорость передачи составляет 10 Кбит / с - только входящие. Если каждое из этих сообщений составляет 10 байтов, вы используете постоянную скорость 100 кбит / с или 800 кбит / с.
Другой аспект - как устроена ваша тематическая иерархия. Я не могу сказать вам, что лучше, но это, безусловно, будет иметь эффект.
Мое лучшее предложение - написать клиент, который имитирует реального человека, а затем использовать его для реального тестирования вашего сценария.
Я видел примеры экстремального количества клиентов: http://bit.ly/HytRpK но у меня нет более подробной информации.
И последнее замечание: IBM в настоящее время выпускает руководство по MQTT. Он должен быть доступен "весной", то есть в ближайшее время. Я думаю, что это покроет проблемы масштабирования.
Для клиента мы протестировали MQTT IBM WebSphere MQ, увеличив число одновременных клиентских подключений до 240 000 на администратора очередей (во время выполнения MQ их может быть много в кластере MQ). Мне сказали, что это примерно в 10 раз больше, чем разумно обрабатывается веб-сервером Apache. Процессор сервера во время тестирования был низким - <5%. Продолжало бы увеличивать число одновременных клиентов MQTT намного выше 240 000, но в лаборатории не хватило нагрузочного тестирования клиентских машин. IBM MQ - это поставщик pub/sub, встроенный в WebSphere Message Broker ESB, поэтому я ожидаю, что он даст тот же результат.
Я не знаю никого, кто проводил массовое тестирование комаров с таким количеством соединений. Я полагаю, что вы могли бы протестировать экземпляр mosquitto в выбранной вами среде выполнения и подключить к нему множество клиентских потоков во время тестирования вашей системы.
Реализация IBM с использованием WebSphere MQ в качестве брокера MQTT, как было показано, поддерживает до 100 000 одновременных соединений. Я считаю, что бесплатный брокер IBM RSMB ограничен 1024 соединениями.
Возможно, вы захотите подумать о том, как масштабировать вашего брокера с помощью мостов и службы предоставления доступа, чтобы определить, к какому брокеру нужно подключить новых пользователей.