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).'

最新文章

  1. kettle启动“Error: could not create the Java Virtual Machine”
  2. Android基础篇(一)
  3. Oracle管理口令遗忘解决办法
  4. 初识makefile
  5. seq 显示00 01的格式
  6. 【转】Linux下XenServer管理工具安装
  7. Analyzer的报表复制、移动
  8. [Oracle EBS APIs]import Flow routing and DJ routing using BOM_RTG_PUB.PROCESS_RTG APIs
  9. 关于webApi302跳转的问题
  10. Redis-rdb持久化
  11. Django_中国化
  12. AndroidStudio制作“我”的界面,设置,修改密码,设置密保和找回密码
  13. 洛谷P1247 取火柴游戏
  14. 【Alpha版本】冲刺阶段——Day1
  15. Vivado与SDK的联合调试方法-使用ILA
  16. MIMO雷达比幅单脉冲测角精度分析(系统工程与电子技术)
  17. Oncomine: 一个肿瘤相关基因研究的数据库--转载
  18. 重建oracle的em
  19. hue解决timed out(code THRIFTSOCKET):None
  20. tf.transpose函数解析

热门文章

  1. C#Windows窗体界面设计_05_添加菜单栏 工具栏 状态栏 按钮
  2. Java代码优化小结(一)
  3. 错误解决记录------------mysql连接本地数据库显示"can't get hostname for your address"
  4. [ONTAK2015]OR-XOR
  5. [ZJOI2016]大森林
  6. (转)JavaWeb学习之Servlet(一)----MyEclipse及Tomcat的配置
  7. javaweb数据库编程代码详细讲解
  8. cookie实现用户登录验证
  9. 2018年东北农业大学春季校赛 E-wyh的阶乘(求n!的0的个数)
  10. EChart配置