установить mosquitto, и изменили много установки вMosquitto макс соединений увеличения
/etc/security/limits.conf
/etc/sysctl.cnof
/etc/pam.d/common-session
/etc/pam.d/common-session-noninteractive
Детали изменились:
$ sudo vim /etc/sysctl.conf
fs.file-max=2097152
fs.nr_open=2097152
net.core.somaxconn=32768
net.ipv4.tcp_max_syn_backlog=16384
net.core.netdev_max_backlog=16384
net.ipv4.ip_local_port_range='1025 65535'
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.core.optmem_max=16777216
net.ipv4.tcp_rmem='1024 4096 16777216'
net.ipv4.tcp_wmem='1024 4096 16777216'
net.ipv4.tcp_max_tw_buckets=1048576
net.ipv4.tcp_fin_timeout=15
$ sudo vim /etc/security/limits.conf
* hard nofile 1048576
* soft nofile 1048576
* hard nproc 1048576
* soft nproc 1048676
$ sudo vim /etc/pam.d/common-session
$ sudo vim /etc/pam.d/common-session-noninteractive
session required pam_limits.so
Но после того, как это сделали, mosquitto еще может поддерживать 1024 соединений.
Поэтому я использую cat /etc/{pid}/limits
проверить пределы возможностей mosquitto в
Тогда я нашел предел этого mosquitto по-прежнему по умолчанию
Max processes 7968 7968 processes
Max open files 1024 4096 files
Я выяснял mosquitto это NOLOGIN пользователя и не может вызвать конфигурацию предела PAM , И если я использую команду prlimit
для увеличения мягкого предела открытого файла, москит действительно может увеличить максимальные соединения, но ограничен жестким пределом (4096).
кажется Debian до сих пор не могу это сделать (Reference), поэтому возможное решение заключается в использовании /etc/init/mosquitto.conf
Я изменил /etc/init/mosquitto.conf
, но, похоже, не работает
$ sudo vim /etc/init/mosquitto.conf
limit nofile 1048576 1048576
limit nproc 1048576 1048576
ulimit -n 1048576 # I do both command, but neither do they works
ulimit -u 1048576
Кто-нибудь есть какие-либо идеи в сделать mosquitto поддержкой большого количества соединений?
Thanks
PS. инструмент для тестирования: emqtt benchmark
Нет причин запускать москит как корень, и его следует обескуражить. – ralight
Привет, спасибо, спасибо за советы. У вас есть другой способ сделать это? – Asoul
Запуск от имени root не имеет никакого отношения к ограничениям, они что-то применяются к процессу. Вы можете * запустить * mosquitto в качестве пользователя root, но все изменения в конфигурации - это заставить mosquitto продолжать работать как root после его запуска. – ralight