RabbitMQ升级到3.6.1版本后,随着业务和系统功能的增加,出现RabbitMQ内存陡增直至服务宕掉的情况。内存增加时,在management管理控制台上可以见到如下警告:

The management statistics database currently has a queue of xx events to process. If this number keeps increasing, so will the memory used by the management plugin. You may find it useful to set the rates_mode config item to none.

应对策略:

1. 根据提示,将rabbitMQ.config中的rates_mode配置项设置为none。

弊端:这样就没法在management控制台上看到message rate的数据了。不能跟进一个队列实时publish和ack的任务量

2. 重启统计数据库(释放内存)

3.6.2以前的版本:rabbitmqctl eval 'exit(erlang:whereis(rabbit_mgmt_db), please_terminate).'

3.6.2以后的版本:rabbitmqctl eval 'rabbit_mgmt_storage:reset().'

  rabbitmqctl eval 'rabbit_mgmt_storage:reset_all().'可以重启所有node的统计数据库

  另外:3.6.10版本的management控制台已经可见reset按钮

3. 修改rabbitMQ的统计频率(改为15s,默认5s)

broker运行过程中修改:rabbitmqctl eval 'application:set_env(rabbit, collect_statistics_interval, 15000).'

config文件修改:将rabbitMQ.config中的collect_statistics_interval配置项设置为15000。

NOTE:如果没有做config文件的修改,broker运行中的修改将在rabbitmq-server服务重启后失效。

4. 限制stats collector processes的使用内存(改为100,默认250)

config文件修改:将rabbitMQ.config中的stats_event_max_backlog配置项设置为100。

可能需要手动在rabbitMQ_Management节点中添加stats_event_max_backlog的设置项 (此处不确定,官方提示修改此值,但config并未见到此配置

5. 提高rabbitmq的内存低水位线(默认0.4)

broker运行过程中修改:rabbitmqctl set_vm_memory_high_watermark 0.6

config文件修改:将rabbitMQ.config中的vm_memory_high_watermark配置项设置为0.6

NOTE:如果没有做config文件的修改,broker运行中的修改将在rabbitmq-server服务重启后失效。

NOTE:修改config文件时,要留意配置项后面的逗号[,],最后一个配置项不能有逗号,多个配置项之间用逗号隔开。此处处理不好会造成rabbitmq服务启不起来。

其他

rabbitmq运行时修改参数:

1. 修改rates_mode

rabbitmqctl eval 'application:set_env(rabbitmq_management, rates_mode, none).'

RabbitMQ内存爆出的更多相关文章

  1. RabbitMQ内存爆出问题解决思路

    http://www.bubuko.com/infodetail-2121050.html RabbitMQ升级到3.6.1版本后,随着业务和系统功能的增加,出现RabbitMQ内存陡增直至服务宕掉的 ...

  2. RabbitMQ 内存控制 硬盘控制

    RabbitMQ服务器在启动时以及abbitmqctl set_vm_memory_high_watermark fraction 执行时,会检查计算机的RAM总大小. 默认情况下下, 当 Rabbi ...

  3. RabbitMQ 内存和磁盘警告

    内存和磁盘警告 有两种情况下,Rabbit MQ会停止读取客户端的连接socket,为了防止crash崩溃,这两种情况是: 内存使用达到配置值 磁盘空间下降到配置值下 在这两种情况下,服务器会临时阻塞 ...

  4. rabbitMq内存与磁盘分配问题

    在服务器上也可以改变配置文件修改内存 也可以使用命令进行分配: 相对内存:rabbitmqctl  set_vm_memory_hgih_waterwmark 0.4     使用时可以把这个0.4替 ...

  5. RabbitMq内存分页

  6. 消息中间件-RabbitMQ持久化机制、内存磁盘控制

    RabbitMQ持久化机制 RabbitMQ内存控制 RabbitMQ磁盘控制 RabbitMQ持久化机制 重启之后没有持久化的消息会丢失 package com.study.rabbitmq.a13 ...

  7. 【MQ中间件】RabbitMQ -- RabbitMQ死信队列及内存监控(4)

    1.RabbitMQ TTL及死信队列 1.1.TTL概述 过期时间TTL表示可以对消息设置预期的时间,在这个时间内都可以被消费者接收获取:过了之后消息将自动被删除.RabbitMQ可以对消息和队列设 ...

  8. RabbitMQ进程结构分析与性能调优

    RabbitMQ是一个流行的开源消息队列系统,是AMQP(高级消息队列协议)标准的实现,由以高性能.健壮.可伸缩性出名的Erlang语言开发,并继承了这些优点.业界有较多项目使用RabbitMQ,包括 ...

  9. RabbitMQ消息队列(四)-服务详细配置与日常监控管理

    RabbitMQ服务管理 启动服务:rabbitmq-server -detached[ /usr/local/rabbitmq/sbin/rabbitmq-server -detached ] 查看 ...

随机推荐

  1. 关于 win10启动错误 Error:16

    那个软件报这个错误,就打开属性 -- 兼容性 -- 打勾以管理员身份运行

  2. React使用Styled-Componets来添加样式

    React使用Styled-Componets来添加样式 Styled-Comonents是用JS中ES6 语法的方式来管理CSS样式的一个组件,解决了在import CSS文件时样式重复 安装 项目 ...

  3. 在npm上发布一个自己的包

    1.首先你要在npm上创建一个账号,这里需要输入邮箱的,注意激活邮箱否则无法publish自己的包 2.在本地创建一个文件夹,输入npm init初始化项目,这里是我使用npm init创建的pack ...

  4. BZOJ1758[Wc2010]重建计划——分数规划+长链剖分+线段树+二分答案+树形DP

    题目描述 输入 第一行包含一个正整数N,表示X国的城市个数. 第二行包含两个正整数L和U,表示政策要求的第一期重建方案中修建道路数的上下限 接下来的N-1行描述重建小组的原有方案,每行三个正整数Ai, ...

  5. CF 1033 D. Divisors

    D. Divisors http://codeforces.com/contest/1033/problem/D 题意: 给n个(n<=500)个数,($a_i <= 2 \times 1 ...

  6. 100405之python程序安装

    Python的安装 注意安装的path和.exe可执行文件的命名方式 例如py2或者py3 sublime的安装 一.Sublime Text 3安装(64位Windows操作系统): 1.双击 Su ...

  7. db2 merge update

    DB2 Merge 语句的作用非常强大,它可以将一个表中的数据合并到另一个表中,在合并的同时可以进行插入.删除.更新等操作.我们还是先来看个简单的例子吧,假设你定义了一个雇员表(employe),一个 ...

  8. Amazon Publisher Studio让产品推广更简单

    Amazon联盟最近推出了Publisher Studio新功能,只要在Amazon联盟网站后台添加一段特定的代码,以后推广所有Amazon产品的时候就不需要再访问Amazon Associates网 ...

  9. 使用 vscode + chrome debuger断点调试 Vue 程序

    总体参考:https://cn.vuejs.org/v2/cookbook/debugging-in-vscode.html 注意点: 1.修改 source-map 2.设置 webRoot 的路径 ...

  10. python测试开发django-51.Ajax发送post请求登录案例

    前言 我想实现一个登录功能:登录的接口是另外一个地方提供,页面上点登录按钮的时候,先访问登录接口,根据接口返回json信息判断是否登录成功,登录成功页面跳转,登录不成功,在登录首页显示失败原因 登录页 ...