You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04下如何正确提升RabbitMQ的open file descriptors上限?

RabbitMQ 文件描述符限制无法修改问题

问题现象

按官方文档尝试提升RabbitMQ的文件描述符(open file descriptors)上限,但rabbitmqctl status显示的限制始终未变化,仍为32671。

已执行操作

  • 修改/etc/sysctl.conf:
    sudo nano /etc/sysctl.conf
    fs.file-max=1048576
    
  • 修改/etc/default/rabbitmq-server:
    sudo nano /etc/default/rabbitmq-server
    ulimit -S -n 1048576
    
  • 尝试在/etc/rabbitmq/rabbitmq-env.conf中添加ulimit -S -n 1048576,但此操作导致RabbitMQ无法启动。

当前状态

  • 系统全局ulimit设置已生效:
    $ ulimit -Sn
    1048576
    
    $ ulimit -Hn
    1048576
    
  • rabbitmqctl status输出:
    File Descriptors
    
    Total: 6, limit: 32671
    Sockets: 0, limit: 29401
    
  • /etc/systemd/system/rabbitmq-server.service.d/limits.conf文件及对应目录不存在。

环境信息

  • 操作系统:Ubuntu 20.04
  • RabbitMQ版本:3.12.4

解决方案

Ubuntu 20.04采用systemd管理服务,需通过systemd配置文件设置服务级别的文件描述符限制,步骤如下:

  1. 创建systemd配置目录:

    sudo mkdir -p /etc/systemd/system/rabbitmq-server.service.d
    
  2. 创建limits.conf文件并写入配置:

    sudo nano /etc/systemd/system/rabbitmq-server.service.d/limits.conf
    

    添加以下内容:

    [Service]
    LimitNOFILE=1048576
    LimitNPROC=1048576
    
  3. 重新加载systemd配置并重启RabbitMQ:

    sudo systemctl daemon-reload
    sudo systemctl restart rabbitmq-server
    
  4. 验证设置:
    执行rabbitmqctl status,查看File Descriptors的limit是否已更新为1048576。

注意事项

  • 禁止在/etc/rabbitmq/rabbitmq-env.conf中添加ulimit命令,该文件用于定义RabbitMQ环境变量,执行命令会导致服务启动失败。
  • 修改/etc/sysctl.conf后需执行sudo sysctl -p,让系统全局文件描述符配置生效。

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 11:26:06