【问题标题】:Rabbitmq beam.smp process utilize most of the Memory size for no reasonRabbitmq beam.smp 进程无缘无故地利用了大部分内存大小
【发布时间】:2019-11-25 17:50:51
【问题描述】:

Rabbitmq beam.smp 进程无缘无故利用了大部分内存大小

RabbitMQ 版本:3.7 二郎22

我没有什么特殊配置什么的

除了 Rabbitmq,我不使用芹菜或其他任何东西。

我搜索了这个问题,我发现的都是与芹菜有关的东西!

这个 RabbitMQ 有什么问题.. 它不能忍受几天没有问题!

【问题讨论】:

  • 你需要量化“大部分cpu功率意味着什么”。有哪些 CPU 可用,以及它们是如何使用的。 top 显示什么?系统的整体负载是多少? “它不能忍受几天没有问题”也没有帮助 - 你需要准确说明问题是什么。
  • 内存大小不是 cpu .. 我的错。在我重置 rabbitmq 之前,它使用了 16Gb 总内存的 85%。机器里什么都没有,它是新鲜的 ubuntu 18.04 和新鲜的 rabbitmq 3.7。
  • 您在发布消息吗?消费它们?以什么价格?你在使用 RabbitMQ 的 API 吗?你基本上没有给我们任何信息。如果 RabbitMQ 什么都不做,它不会消耗内存。如果是,那么您的环境存在严重问题。
  • 您应该阅读this web page 并返回有关您的环境的一些信息。我问了几个你没有回答的问题。您最初的问题除了 RabbitMQ 和 Erlang 版本之外没有给我们任何信息。

标签: rabbitmq erlang


【解决方案1】:

如果有大量镜像队列,CPU 利用率可能会不稳定。 请提及以下 RabbitMQ 部署细节:

RabbitMQ v3.7
Erlang/OTP v22
Ubuntu 16.04.5 LTS
Linux 4.15.0-32-generic x86_64

提及 dstat --cpu 检查 RabbitMQ 节点利用率 w.r.t CPU(用户 + 系统)

另外你可以做什么 可以使用 +sbwt 标志使当前没有工作的调度程序:

RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="+sbwt none"

none 的值可以减少具有大量空闲连接的系统上的 CPU 使用率。

【讨论】:

    【解决方案2】:

    有几个原因会增加 CPU 使用率,您没有提供足够的信息。

    你应该做的是:

    1. 查看rabbitmq日志,看看是否有错误
    2. 检查您是否有一些发布者正在控制服务器
    3. 检查队列/绑定的数量,可能是您创建的队列/绑定过多

    你也可以启用这个rabbitmq插件https://github.com/rabbitmq/rabbitmq-top来查看进程正在使用所有的CPU

    【讨论】:

    • 我已经启用了rabbitmq-top ..我会看一会儿。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 2016-05-07
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多