问题

最近新搭建的OpenStack集群总是出问题,各个service的log经常报连接RabbitMQ超时。重启RabbitMQ后集群会恢复正常一段时间,之后继续报错。根据这种现象推断,大概率是跟RabbitMQ能接受的最大连接数的问题有关,执行rabbitmqctl status发现sockets_used已经达到上限,证明推断正确,解决方法就是调大这个值。

修改RabbitMQ最大连接数_连接数

调整方法

       操作系统是CentOS 7.5。编辑/usr/lib/systemd/system/rabbitmq-server.service,在[Service]字段添加一行LimitNOFILE=65535:

# systemd unit example

[Unit]

Description=RabbitMQ broker

After=network.target epmd@0.0.0.0.socket

Wants=network.target epmd@0.0.0.0.socket

 

[Service]

Type=notify

User=rabbitmq

Group=rabbitmq

NotifyAccess=all

TimeoutStartSec=3600

LimitNOFILE=65535                                                                                                                                            

WorkingDirectory=/var/lib/rabbitmq

ExecStart=/usr/lib/rabbitmq/bin/rabbitmq-server

ExecStop=/usr/lib/rabbitmq/bin/rabbitmqctl   stop

 

[Install]

WantedBy=multi-user.target

       然后执行systemctl daemon-reload和systemctl restart rabbitmq-server.service就生效了。再次查看rabbitmqctl status就可以发现新参数生效了:

修改RabbitMQ最大连接数_最大_02

       虽然调整的是打开文件最大数,但是sockets_limit也相应增大了,查询文档得知sockets_limit通常是total_limit的0.8到0.9。之后OpenStack各服务也不再报错了,问题解决。