首页 > 其他分享 >Rabbitmq消息队列调优

Rabbitmq消息队列调优

时间:2023-10-20 15:22:45浏览次数:34  
标签:队列 RabbitMQ etc connection 调优 Rabbitmq conf 10240 pool

 

RabbitMQ每增加一个连接,Erlang都会给这个连接分配三个Erlang进程,每个进程都会分配一定大小内存空间,所以随着连接数的增长,内存和Erlang进程数呈现有规律的增长,所以RabbitMQ连接数的无限增大会压垮mq服务,导致RabbitMQ服务崩溃。

 

客户端与RabbitMQ建立的是长连接,而不是建立短连接,因为如果频繁的建立、销毁connection,会增加额外的时间开销,当业务量比较大时,就会对系统性能产生比较大的影响。OpenStack组件与RabbitMQ的连接使用到了第三方库oslo_message中的connection pool的概念,在不超过pool size的前提上,当有并发业务的时候,如果发现pool中已有connection正被使用,那么就会在pool中继续创建新的connection,直到创建的connection数量达到pool的最大值,之后如果再有业务需要,会等待之前创建的connection被重新放入connection pool,然后等待被继续使用。这种情况下,就会出现connection一直增长的现象。

 

RabbitMQ的优化

 

在上面的文章中可以看到,RabbitMQ的连接数是压垮消息队列的一个重要的指标。所以在平时使用OpenStack平台的过程中,如果大量的用户同时创建虚拟机,会导致云平台创建报错,其实就是消息队列服务的崩溃。

 

在优化方面,我们首先想到,是将RabbitMQ服务默认的连接数量改大,修改方法如下:

一、系统级别调修改

在/etc/sysctl.conf文件的最下方添加一行fs.file-max=10240:

vi /etc/sysctl.conf

fs.file-max=10240

 

二、 用户级别修改

在/etc/security/limits.conf文件下添加两行:

vi /etc/security/limits.conf

openstack  soft  nofile  10240

openstack  hard  nofile   10240

 

三 、修改Rabbitmq配置文件

在/usr/lib/systemd/system/rabbitmq-server.service文件[Service]下添加一行参数如下:

vi /usr/lib/systemd/system/rabbitmq-server.service

LimitNOFILE=10240

 

 

四、重启服务

systemctl daemon-reload

systemctl restart rabbitmq-server

五 、查看

rabbitmqctl status

 

标签:队列,RabbitMQ,etc,connection,调优,Rabbitmq,conf,10240,pool
From: https://www.cnblogs.com/Chen-Yi-jia/p/17777181.html

相关文章

  • RabbitMQ 安装与配置
    1.安装Erlang下载地址:https://www.erlang.org/downloads下载文件为otp_win64_26.1.1.exe,点击安装,如下图:默认安装地址为C:\ProgramFiles\ErlangOTP,可自行修改安装地址(这里将安装地址改为D盘)安装完成后,设置环境变量,新建ERLANG_HOME修改环境变量path,增加:%ERLANG_H......
  • GIL全局解释器锁、互斥锁、线程队列、进程池和线程池的使用、多线程爬取网页、协程理
    进程和线程的比较进程的开销比线程的开销大很多进程之间的数据是隔离的,但是,线程之间的数据不隔离多个进程之间的线程数据不共享----->还是让进程通信(IPC)------->进程下的线程也通信了---->队列GIL全局解释器锁(重要理论)Python在设计之初就考虑到要在主循环中,同时只有一......
  • 栈和队列
    栈先进后出,后进现出限定仅在表的一端进行插入和删除操作的线性表操作初始化入栈出栈取值判断栈满栈空双栈共享顺序栈//顺序栈类模板template<classElemType>classSqStack{protected://数据成员: ElemType*elems; //元素存储空间 intmax......
  • RabbitMQ的使用
    一、消息中间件RabbitMQ---概述和概念【一】1、概述1、大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力2、消息服务中两个重要概念:消息代理(messagebroker)和目的地(destination)当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。3、......
  • ES集群调优建议
    9 ES集群调优建议9.1内核参数优化#对于操作系统,需要调整几个内核参数[root@node~]#vim/etc/sysctl.conffs.file-max=655360#设定系统最大打开文件描述符数,建议修改为655360或者更高,vm.max_map_count=262144#用于限制一个进程可以拥有的虚拟内存大小,建议修改成262144......
  • c# Queue 队列的基本使用
    C#中的 Queue 是一种基于链表的先进先出(FIFO)数据结构。以下是一个简单的 Queue 实例:///<summary>///普通队列///</summary>publicvoidQueueShow(){//创建一个QueueQueue<string>queue=newQu......
  • springboot连接rabbitmq网络异常时,不能自动重连的问题
    在rabbitmq官网的javaapi处:https://www.rabbitmq.com/api-guide.html#recovery介绍了java连接rabbitmq异常恢复的问题。其中提及了如下内容Asofversion4.0.0oftheJavaclient,automaticrecoveryisenabledbydefault(andthustopologyrecoveryaswell).也就是......
  • 实验五 队列的基本操作及应用
    实验五队列的基本操作及应用作业要求:实验时间:第7、8周实验目的:掌握队列的初始化、判空、取队头元素、出队、入队、输出队列元素等基本操作实验要求:1、认真阅读和掌握教材上和本实验相关的算法。2、上机将链队列或循环队列的相关算法实现。3、实现下面实验内容要求的功能,并......
  • SpringBoot+内置Tomcat配置,参数调优,最大并发量,最大连接数
    最近在研究这块的信息,记录下一些大神的文章:SpringBoot最大连接数及最大并发数是多少???https://blog.csdn.net/weixin_44421461/article/details/132486085SpringBoot+内置Tomcat配置,参数调优,最大并发量,最大连接数https://blog.csdn.net/myyhtw/article/details/129069586Sprin......
  • 用Java语言简单实现MQ消息队列服务
    大致的结构:一个消息队列大致的结构:消息处理中心Brokerpackagecom.tntxia;importjava.util.concurrent.ArrayBlockingQueue;/***消息处理中心*/publicclassBroker{//队列存储消息的最大数量privatefinalstaticintMAX_SIZE=3;//保存消息数据......