rabbitmq解决磁盘空间不足无法启动问题

  1. 现象描述:

rabbitmq日志曾提示:

Free disk space is insufficient. Free bytes: 499813. Limit: 50000000

Publishers will be blocked until this alarm clears

重启mq后提示:

=ERROR REPORT==== 10-Nov-2021::23:17:31 ===
** Generic server <0.197.0> terminating
** Last message in was {'$gen_cast',
                           {submit_async,
                               #Fun<rabbit_queue_index.32.15142149>}}
** When Server state == undefined
** Reason for termination ==
** {function_clause,
       [{rabbit_queue_index,parse_segment_entries,

2.分析及解决

rabbitmq默认剩余空间限制为50M,即不配置disk_free_limit时,当队列所在系统分区磁盘空间不足50M时,消息发布被禁止,防止磁盘空间写满后造成部分写入,重启会导致无法启动。

在实际使用过程中,50M的限制往往无法及时发现磁盘空间满(rabbitmq在未到达限制时每10秒检查一次),尤其当有其他应用或服务快速写文件占用空间时,等rabbitmq检测到时,磁盘空间可能已满,这样会造成写入持久化队列的消息不完全,重启时就会导致无法启动。

/etc/rabbitmq/rabbitmq.config中增加:

{disk_free_limit, 1000000000},

如下示例:

[
 {rabbit,[
   {tcp_listeners, [5672]},
   {ssl_listeners, [5671]},
   {handshake_timeout, 60000},
   {ssl_handshake_timeout, 60000},
   {ssl_options, [{cacertfile,            "/usr/local/Server/cacert.pem"},
                   {certfile,             "/usr/local/Server/Server-cert.pem"},
                   {keyfile,              "/usr/local/Server/Server-key.pem"},
                   {verify,               verify_peer},
                   {fail_if_no_peer_cert, false}]},

 {disk_free_limit, 1000000000},
 {vm_memory_high_watermark_paging_ratio, 0.75},
 {vm_memory_high_watermark, 0.8}

 ]}
].

3.6.15版本已验证

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值