修改 EMQX 最大文件句柄数

更新日期: 2022-10-17 阅读次数: 1568 字数: 446 分类: 物联网

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

主要参考官方的配置:

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

清单

  • done:ulimit -n 1048576
  • done: /etc/security/limits.conf
  • done: /etc/sysctl.conf
  • done: /etc/systemd/system.conf
  • done: 重启 emqx 服务:ulimit -n 1048576; ./emqx stop; ./emqx start
  • done: 确认 EMQX Web 后台显示

如何判断配置是否生效

配置之后,可以到:

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

参考

  • EMQX 官方配置文档,太笼统,不适合我这种非专业运维人员 https://www.emqx.io/docs/zh/v5.0/deploy/tune.html
  • 修改配置后,需要重启 EMQX https://blog.csdn.net/ITzhangdaopin/article/details/104739010
  • https://www.jianshu.com/p/f11acf772ab6
  • https://www.mongodb.com/docs/manual/reference/ulimit/
  • 除了 ulimit 还有 tcp 网络参数需要调优:https://github.com/emqx/emqx/issues/5858
  • https://serverfault.com/questions/1068992/centos-ulimit-hard-soft-limits-keep-reset-to-default-values

tags: MQTT

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式