RabbitMQ崩溃了。RabbitMQ正常工作了很多天(10-15天)。我不明白它为什么会崩溃。
我在Erlang 17.0上使用RabbitMQ 3.4.0
Erlang已经为崩溃创建了转储文件。
eheap_alloc: Cannot allocate 229520 bytes of memory (of type "old_heap").
另外注意,rabbitmq发布-订阅消息的负载非常低。(最大值:1-2条消息/秒)。而且,rabbitMQ消息是在它到来时处理的,所以rabbitMQ几乎一直是空的。磁盘空间和内存也是足够的。
More system info:
Limiting to approx 8092 file handles (7280 sockets)
Memory limit set to 6553MB of 16383MB total.
Disk free limit set to 50MB.
RabbitMQ日志如下所示。
第一次
3条答案
按热度按时间s1ag04yj1#
从错误信息中可以看出,由于系统限制,rabbitmq无法打开更多的文件。您可以将最大打开文件数设置为较高的值来避免此问题。
https://serverfault.com/questions/249477/windows-server-2008-r2-max-open-files-limit
4zcjmb1e2#
这里有两个不相关的错误:一个是VM分配内存失败。2另一个是磁盘空间监视器终止。3磁盘空间监视器是可选的,在一些不太常见的平台上或有特定的安全限制,它会失败。4这不会使VM停止,当然也与堆分配失败无关。
堆分配失败通常归结为两种最常见的情况:
陈宇关于EACCESS系统调用错误的评论是正确的。
dsf9zpds3#
I get analog error systemd unit for activation check: "rabbitmq-server.service" eheap_alloc: Cannot allocate 306586976 bytes of memory (of type "heap").^M ^M Crash dump is being written to: erl_crash.dump...done^M
this is crush dump =erl_crash_dump:0.5