修改 EMQX 最大文件句柄数

发布时间: 2022-10-17 15:28:40 作者: 大象笔记

是不是叫 EMQX 系统参数调优更合适?因为不但 max open files 需要配置,其他 TCP 参数也需要配置。

主要参考官方的配置:

https://www.emqx.io/docs/zh/v5.0/deploy/tune.html

清单

如何判断配置是否生效

配置之后,可以到:

EMQX web 管理后台 - 仪表盘 - 可以看到“最大文件句柄: 1024”,是否变更。

服务器当前配置是多少

要优化配置之前,首先要了解当前的系统配置是什么。

$ ulimit -n
1024

$ 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) 63377
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
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) 63377
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

$ cat /proc/sys/fs/file-max
1618526

系统级

$ cat /proc/sys/fs/file-max
1618526

对于目前的业务场景,感觉默认值足够,不需要调整。

如果未来要调整,参考

https://www.ibm.com/support/pages/increasing-maximum-number-open-files-linux-host

处理修改当前值,还需要配置重启后持久生效。

TCP 并发数

https://github.com/emqx/emqx/issues/5858

从这个 github issue 看,超过 1000 个并发之后,会出问题。

/etc/systemd/system.conf

查看默认值

$ systemctl --user show syncthing | grep LimitNOFILE
LimitNOFILE=4096
LimitNOFILESoft=1024

设置

DefaultLimitNOFILE=1048576

参考

我是一名山东烟台的开发者,联系作者