zoukankan      html  css  js  c++  java
  • RabbitMQ内存爆出

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

  • 相关阅读:
    并发编程学习笔记之Java存储模型(十三)
    并发编程学习笔记之原子变量与非阻塞同步机制(十二)
    并发编程学习笔记之构建自定义的同步工具(十一)
    并发编程学习笔记之显示锁(十)
    并发编程学习笔记之可伸缩性(九)
    并发编程学习笔记之死锁(八)
    并发编程学习笔记之自定义配置线程池(七)
    并发编程学习笔记之取消和关闭(六)
    并发编程学习笔记之线程池(五)
    并发编程学习笔记之并发工具类(四)
  • 原文地址:https://www.cnblogs.com/icyJ/p/rabbitMQ_MemoryOverflow.html
Copyright © 2011-2022 走看看