gpt4 book ai didi

mqtt - Mosquitto 增加最大连接限制

转载 作者:行者123 更新时间:2023-12-01 05:31:15 26 4
gpt4 key购买 nike

我正在尝试增加 Mosquitto 代理的最大打开文件连接。但是我读到增加的并发连接不仅仅由 Mosquitto 控制。
根据我们的研究,我们决定 100k 并发连接,我们的目标是 1.6 GB RAM。但是为了测试我必须从默认的 1024 个连接增加到 20000
测试环境配置:
t2。具有 64 MB 14.04 ubuntu 操作系统的微型 AWS 服务器。更改 mosquitto 配置中的连接限制没有反射(reflect)。原因是什么?
我们是否需要更改与 AWS Server 相关的任何配置?

我的配置:

我们的系统开放连接是在 /etc/sysctl.conf 上配置的:

fs.file-max =99905

运行命令 sysctl -pcat /proc/sys/fs/file-max 反射(reflect)更改

/etc/security/limits.conf 中:
ubuntu          hard     nofile         45000
ubuntu soft nofile 35000

Mosquitto 安装在用户 'Ubuntu' 下。

我们还在 /etc/pam.d/common-session 上添加了以下代码行
session required pam_limits.so

运行 ulimit -a 给出以下结果:
core file size          (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 7859
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 35000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 7859
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

我在 /etc/init/mosquitto.conf 中的 mosquitto 初始化配置文件
description "Mosquitto MQTTv3.1 broker"
author "Roger Light <roger@atchoo.org"

start on net-device-up

respawn

exec /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
#limit nofile 4096 4096

limit nofile 24000 24000

以下是 /etc/mosquitto/mosquitto.conf 中的配置:
# change user to root
user ubuntu

set_ulimit () {
ulimit -f unlimited
ulimit -t unlimited
ulimit -v unlimited
ulimit -n 24000
ulimit -m unlimited
ulimit -u 24000
}

start)
...
# Update ulimit config in start command
set_ulimit
...
;;
stop)

但是运行 cat /proc/4957/limits 仍然显示默认值 1024 open files:
Limit                     Soft Limit           Hard Limit           Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 7859 7859 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 7859 7859 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us

4957 - 是 Mosquitto 的进程 ID

最佳答案

打开文件的数量受用户限制,请参见 ulimit 手册页。
我将 ulimit -n 设置为 20000,然后运行 ​​mosquitto broker 并显示
% ps ax | grep mosquitto
9497 pts/44 S+ 0:00 ./mosquitto -c mosquitto.conf
9505 pts/10 S+ 0:00 grep --color=auto mosquitto
% cat /proc/9497/limits
Limit Soft Limit Hard Limit Units

Max cpu time unlimited unlimited seconds

Max file size unlimited unlimited bytes

Max data size unlimited unlimited bytes

Max stack size 8388608 unlimited bytes

Max core file size 0 unlimited bytes

Max resident set unlimited unlimited bytes

Max processes 63084 63084 processes
Max open files 20000 20000 files

Max locked memory 65536 65536 bytes

Max address space unlimited unlimited bytes

Max file locks unlimited unlimited locks

Max pending signals 63084 63084 signals

Max msgqueue size 819200 819200 bytes

Max nice priority 0 0

Max realtime priority 0 0

Max realtime timeout unlimited unlimited us

不管怎样,由于mosquitto是单线程的,我们还没有找到
可用于超过 1000 个具有
合理的有效载荷率为 1/10 秒。

关于mqtt - Mosquitto 增加最大连接限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41096088/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com