RabbitMQ的优化
在上面的文章中可以看到,RabbitMQ的连接数是压垮消息队列的一个重要的指标。所以在平时使用OpenStack平台的过程中,如果大量的用户同时创建虚拟机,会导致云平台创建报错,其实就是消息队列服务的崩溃。
在优化方面,我们首先想到,是将RabbitMQ服务默认的连接数量改大,修改方法如下:
(1)系统级别修改
使用CRT等远程工具连接到controller节点,然后修改配置文件,命令如下:
[root@controller ~]# vi /etc/sysctl.conf
fs.file-max=10240
#在sysctl.conf文件的最下方添加一行fs.file-max=10240
修改完毕后保存退出并生效配置,命令如下:
[root@controller ~]# sysctl -p
fs.file-max = 10240
(2)用户级别修改
用户级别修改,编辑/etc/security/limits.conf配置文件,具体命令如下:
[root@controller ~]# vi /etc/security/limits.conf
openstack soft nofile 10240
openstack hard nofile 10240
#在配置文件的最后添加两行内容如上
修改完之后,保存退出。
(3)修改RabbitMQ配置
修改RabbitMQ服务的service配置文件rabbitmq-server.service,具体命令如下:
[root@controller ~]# vi /usr/lib/systemd/system/rabbitmq-server.service
#在[Service]下添加一行参数如下:
LimitNOFILE=10240
(4)重启RabbitMQ服务
[root@controller ~]# systemctl daemon-reload
[root@controller ~]# systemctl restart rabbitmq-server
重启完毕后,查看RabbitMQ的最大连接数,命令如下:
[root@controller ~]# rabbitmqctl status
Status of node rabbit@openstack
...忽略输出...
{file_descriptors,
[{total_limit,10140},
{total_used,53},
{sockets_limit,9124},
{sockets_used,51}]},
可以看到当前的RabbitMQ已被修改。