【发布时间】:2014-06-02 06:49:30
【问题描述】:
我在某个地方搞砸了。
我正在使用 celery 来运行一个运行其他任务的任务。我使用 RabbitMQ 作为我的后端。
当我启动我的电脑时,erl.exe 立即占用了我 50% 的 CPU 资源和几 GB 的 RAM。如果我放手,RAM 使用量将继续稳步攀升。 (下降是我结束这个过程的时候)
如果我结束这个过程,celery beat/workers 会出错
[2014-04-17 12:35:07,869: ERROR/MainProcess] consumer: Cannot connect to amqp://guest@127.0.0.1:5672//: [Errno 10061] No connection could be made because the target machine actively refused it.
如果我不结束这个过程,工人和节拍只是吐出配置信息然后挂起。
如果我尝试使用discard_all(),它也会挂起,而 RAM 使用率稳步攀升。
有没有一种方法可以在不通过 celery 的情况下重置 erlang?我不关心队列中的任何事情,这都是开发人员的事情。
编辑:
我的 rabbitmq 日志文件到此结束。
=INFO REPORT==== 17-Apr-2014::13:20:41 ===
Starting RabbitMQ 3.2.4 on Erlang R16B03-1
Copyright (C) 2007-2013 GoPivotal, Inc.
Licensed under the MPL. See http://www.rabbitmq.com/
=INFO REPORT==== 17-Apr-2014::13:20:41 ===
node : rabbit@myComputer
home dir : C:\Windows
config file(s) : (none)
cookie hash : +z4Hn5WvfV2DO2xSryp0/Q==
log : C:/Users/myUser/AppData/Roaming/RabbitMQ/log/rabbit@myComputer.log
sasl log : C:/Users/myUser/AppData/Roaming/RabbitMQ/log/rabbit@myComputer-sasl.log
database dir : c:/Users/myUser/AppData/Roaming/RabbitMQ/db/rabbit@myComputer-mnesia
=INFO REPORT==== 17-Apr-2014::13:20:44 ===
Limiting to approx 8092 file handles (7280 sockets)
=INFO REPORT==== 17-Apr-2014::13:20:45 ===
Memory limit set to 9829MB of 24573MB total.
=INFO REPORT==== 17-Apr-2014::13:20:45 ===
Disk free limit set to 50MB
=INFO REPORT==== 17-Apr-2014::13:24:57 ===
msg_store_transient: using rabbit_msg_store_ets_index to provide index
=INFO REPORT==== 17-Apr-2014::13:24:57 ===
msg_store_persistent: using rabbit_msg_store_ets_index to provide index
=WARNING REPORT==== 17-Apr-2014::13:24:57 ===
msg_store_persistent: rebuilding indices from scratch
=INFO REPORT==== 17-Apr-2014::13:26:48 ===
started TCP Listener on [::]:5672
=INFO REPORT==== 17-Apr-2014::13:26:49 ===
started TCP Listener on 0.0.0.0:5672
=WARNING REPORT==== 17-Apr-2014::13:35:04 ===
file descriptor limit alarm set.
********************************************************************
*** New connections will not be accepted until this alarm clears ***
********************************************************************
=WARNING REPORT==== 17-Apr-2014::13:35:05 ===
file descriptor limit alarm cleared
=INFO REPORT==== 17-Apr-2014::13:35:05 ===
Server startup complete; 0 plugins started.
=WARNING REPORT==== 17-Apr-2014::13:35:06 ===
file descriptor limit alarm set.
********************************************************************
*** New connections will not be accepted until this alarm clears ***
********************************************************************
=WARNING REPORT==== 17-Apr-2014::13:35:07 ===
file descriptor limit alarm cleared
=INFO REPORT==== 17-Apr-2014::13:37:40 ===
vm_memory_high_watermark set. Memory used:10558805712 allowed:10306889318
=WARNING REPORT==== 17-Apr-2014::13:37:40 ===
memory resource limit alarm set on node 'rabbit@myComputer'.
**********************************************************
*** Publishers will be blocked until this alarm clears ***
**********************************************************
=INFO REPORT==== 17-Apr-2014::13:37:41 ===
vm_memory_high_watermark clear. Memory used:10087183696 allowed:10306889318
=WARNING REPORT==== 17-Apr-2014::13:37:41 ===
memory resource limit alarm cleared on node 'rabbit@myComputer'
=INFO REPORT==== 17-Apr-2014::13:38:04 ===
vm_memory_high_watermark set. Memory used:10323681952 allowed:10306889318
=WARNING REPORT==== 17-Apr-2014::13:38:04 ===
memory resource limit alarm set on node 'rabbit@myComputer'.
**********************************************************
*** Publishers will be blocked until this alarm clears ***
**********************************************************
【问题讨论】:
-
您能否在发生这种情况时查询 RabbitMQ 以查看队列是否失控或其他什么?我不确定在 Windows 上有什么可用的,但在 Linux 上我会使用
rabbitmqctl list_queues。 -
@dano 这似乎也挂了。我不知道它应该花多长时间,但已经过了几分钟,它还没有显示任何东西。编辑:它似乎也使 RAM 使用率上升。几 GB。
-
看来 RabbitMQ 有一些问题,那么。 list_queues 命令应立即完成。我会看看你是否能找到 RabbitMQ 的日志并寻找某种确凿的证据(抱歉,我只熟悉在 Linux 上运行它,所以在这里我帮不上什么忙)。
-
@dano 好的,RAM 使用率上升,直到我不得不终止进程。当我这样做时,
rabbitmqctl list_queues失败了。我将日志文件的最后一点作为编辑。不幸的是,我真的不知道我在寻找什么。
标签: python memory erlang rabbitmq celery