RabbitMQ的优化
RabbitMQ的连接数是压垮消息队列的一个重要的指标。所以在平时使用OpenStack平台的过程中,如果大量的用户同时创建虚拟机,会导致云平台创建报错,其实就是消息队列服务的崩溃。
在优化方面,我们首先想到,是将RabbitMQ服务默认的连接数量改大
系统级别修改#
使用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
用户级别修改#
用户级别修改,编辑/etc/security/limits.conf配置文件
[root@controller ~]# vi /etc/security/limits.conf
openstack soft nofile 10240
openstack hard nofile 10240
#在配置文件的最后添加两行内容如上,修改完之后,保存退出
修改RabbitMQ配置#
修改RabbitMQ服务的service配置文件rabbitmq-server.service
[root@controller ~]# vi /usr/lib/systemd/system/rabbitmq-server.service
#在[Service]下添加一行参数如下:
LimitNOFILE=10240
#重启服务
[root@controller ~]# systemctl daemon-reload
[root@controller ~]# systemctl restart rabbitmq-server
重启完毕后,查看RabbitMQ的最大连接数
[root@controller ~]# rabbitmqctl status
Status of node rabbit@controller
[{pid,4561},
{running_applications,
..........
{file_descriptors,
[{total_limit,10140}, #已经有100个连接数,可以看到当前的RabbitMQ已被修改
{total_used,77},
{sockets_limit,9124},
{sockets_used,75}]},
{processes,[{limit,1048576},{used,1150}]},
{run_queue,0},
{uptime,40},
{kernel,{net_ticktime,60}}]