RabbitMQ**警告**内存过载

RabbitMQ**警告**内存过载,rabbitmq,Rabbitmq,RabbitMQ群集不接受新连接! 连接的套接字数较低,Rabbitmq日志中的唯一消息是: **警告**记忆超载 这是什么意思?如何解决它?这可能发生在一系列情况下,从机器被挂起到运行时调度器选择首先让Mnesia forms没有机会运行,然后是大量时间(目标是在极其简洁的时间范围内触发大量事件) 如果你有机会,可以考虑使用Erlang 17 .x。一般来说,这并不是一个问题的迹象 有关更多详细信息,请参阅 在mac中: 删除/usr/local/var/lib/rabbitmq/ sudor

RabbitMQ群集不接受新连接! 连接的套接字数较低,Rabbitmq日志中的唯一消息是:

**警告**记忆超载


这是什么意思?如何解决它?

这可能发生在一系列情况下,从机器被挂起到运行时调度器选择首先让Mnesia forms没有机会运行,然后是大量时间(目标是在极其简洁的时间范围内触发大量事件)

如果你有机会,可以考虑使用Erlang 17 .x。一般来说,这并不是一个问题的迹象

有关更多详细信息,请参阅

在mac中: 删除/usr/local/var/lib/rabbitmq/

sudorm-r/usr/local/var/lib/rabbitmq/

和未经认证的拉比鸟

brew Unitsall rabittmq

然后安装它

brew安装rabbitmq

启动rabbitmq:


rabbitmq服务器

我也遇到了这个问题,下面是我的解决方案:

日志文件:rabbit@localhost.log附件:

也就是说,进程可以使用的打开文件的数量超过了限制

我尝试在我的终端中运行
ulimit-n
,以查看在我的操作系统中,进程可以使用多少文件,并且您希望通过执行以下命令来增加此数量:

sudo launchctl limit maxfiles 1000000 1000000


希望它能解决您的问题。

您需要增加
dc\u dump\u限制。根据文件:

-mnesiadc_转储_限制数量。控制从内存转储光盘拷贝的频率。在
filesize(Log)>(filesize(Tab)/Dc\u dump\u limit)
时转储表。较低的值可以减少CPU开销,但会增加磁盘空间和启动时间默认值为4


因此,使用适当的`-mnesia dc\u dump\u limit=X启动Erlang可能有助于解决这种情况。

这是一个警告,表明您的队列正在达到峰值。^这听起来像答案。为什么要注释?设置芹菜\u忽略\u结果=真,检查此链接如何设置Erlang参数?这是唯一正确的答案。与打开文件的数量等无关。它是完整记录的。通常,您可以忽略警告,但要注意日志文件使用的磁盘空间量。例如,在启动mnesia之前,使用
application:set_env(mnesia,dump_LOG_write_threshold,5000)
(默认为100)。我不熟悉RabbitMQ,所以我不知道哪些配置文件可以用来设置阈值。该警告与
dump\u log\u write\u threshold
有关,而与
dc\u dump\u limit
无关。它只告诉您如何配置Mnesia,而不是RabbitMQ。Mnesia是Erlang的持久层。RabbitMQ设置了自己的Mnesia设置,但似乎没有任何配置方法。这可能有助于RabbitMQ开发人员解决此问题,但对我们没有帮助。这只是删除所有现有RabbitMQ并重新安装,您并没有解决问题,而是以一个干净的开始将其隐藏。