1. 环境信息
单节点rabbitmq,RabbitMQ 3.7.0 on Erlang 19.3.6.4
2. 发现问题
主机意外断电后重启,发现启动rabbitmq时,命令超时报错
3. 问题排查
3.1 排查主机服务环境
查看到erlang的rabbitmq进程存在但是5672和15672端口没有拉起
3.2 排查日志信息
-
发现在启动之初就有告警信息,与文件句柄相关
-
大量Mnesia is overloaded信息
4. 问题解决
1)除去上述日志信息外,并无其他error等相关报错日志;并且进程是拉起的,但是端口信息没有
2)Mnesia is overloaded相关日志报错,查询后发现是在有大量读写时候造成的,但是实际当前服务并没有(应该没有)大量服务使用它,暂时先不解决
3)观察发现,实际主机文件句柄已经修改65535,但是日志的warning却反馈Recovering 4357 queues, available file handles: 924 可用的只有924,就很不正常;
查询官网后操作:https://www.rabbitmq.com/configure.html#kernel-limits
操作信息:
mkdir /etc/systemd/system/rabbitmq-server.service.d/
echo '[Service]' > /etc/systemd/system/rabbitmq-server.service.d/limits.conf
echo 'LimitNOFILE=102400' >> /etc/systemd/system/rabbitmq-server.service.d/limits.conf
systemctl daemon-reload
之后重启rabbitmq就正常启用了,也没有Mnesia is overloaded相关信息了
版权声明:本文为qq_35767346原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。