当前位置: 首页 > news >正文

RabbitMQ 可用磁盘空间报警

概要

当磁盘可用空间低于设定的值(默认50M),将触发警报,并阻塞所有生产者。

这目标是为了避免填满整个磁盘,这将导致所有节点上的写入操作失败,并可能导致RabbitMQ停止服务。

如何工作

为了减少磁盘被填满的风险,所有消息将被阻止写入。但内存中停留的消息仍会写入到磁盘,耗尽已经有限的磁盘空间。

如果磁盘报警设置的太低,并且消息被快速写入到磁盘,这可能耗尽磁盘,使得RabbitMQ在两次磁盘空间检查的时间段(至少间隔10秒)内崩溃。一种保守的方法是将预警可用空间设置为和系统内存大小一样。

RabbitMQ服务器使用的磁盘空间会每次间隔至少10秒检查一次,来确定是否触发或者清除预警。

监控将在节点启动时开始,它将记录如下日志:

2019-04-01 12:02:11.564 [info] <0.329.0> Enabling free disk space monitoring
2019-04-01 12:02:11.564 [info] <0.329.0> Disk free limit set to 950MB

在不能识别的平台上,可用磁盘监控将会被停用,日志记录如下:

2019-04-01 11:04:54.002 [info] <0.329.0> Disabling disk free space monitoring

使用RabbitMQ集群时,可用磁盘预警是全局的,如果一个节点触发预警,则所有节点的写入消息都将被阻止。

RabbitMQ定期检查可用磁盘空间,检查磁盘空间的频率与上次检查时的空间量有关系。这是为了确保磁盘警报在空间耗尽时及时关闭。通常会每10秒检查一次磁盘,但当接近极限时,检查频率会增加,当非常接近极限值时,检查频率会增加至每秒10次,这可能会对系统负载产生一定的影响。

当可用磁盘空间低于设置的阈值时,RabbitMQ将会阻塞生产者和阻止内存中的消息写入磁盘,这将降低由于磁盘空间耗尽导致系统崩溃的可能性,但并不能完全消除这种情况。在特定情况下,两次磁盘监控检查之间,消息快速的被写入磁盘,则仍可能耗尽磁盘致使系统崩溃。

配置磁盘可用空间限制

磁盘可用空间限制可使用disk_free_limit参数进行设置。默认情况,数据库分区上需要50M的空间。以下是将磁盘可用空间限制在1G:

disk_free_limit.absolute = 1000000000

或者你可以使用内存单位(KB,MB,GB等),如下:

disk_free_limit.absolute = 1GB

也可以设置为相对于机器内存的可用空间限制,以下配置为可用磁盘空间与机器内存相同:

disk_free_limit.relative = 1.0

可用磁盘空间预警限制阈值可以在RabbitMQ运行期间被修改。使用rabbitmqctl set_disk_free_limit 命令 或者 rabbitmqctl set_disk_free_limit mem_relative 命令,这个会在服务下次重启之前一直生效。

http://www.lryc.cn/news/18969.html

相关文章:

  • Web前端学习:二
  • 【第一章 计算机网络体系结构,标准化工作相关组织,性能指标,分层结构,OSI参考模型】
  • SpringIOC源码解析
  • 【Jupyter Notebook的简单入门使用】
  • @Component@Import@Bean加载顺序解析
  • 二极管温度补偿电路工作原理分析
  • 【C语言】多线程之条件竞争
  • UE NavigationSystem的相关实现
  • Java 继承
  • Python学习笔记8:异常
  • python保留小数函数总结
  • 狐狸优化算法(Matlab代码实现)
  • 浏览器自动化框架沦为攻击者的工具
  • SQL必备知识(自用)
  • BI工具术语表大全:从字母A-Z全面收录
  • vue3 + vite + ts 集成mars3d
  • 跨境卖家必看的沃尔玛Walmart商家入驻教程
  • 【GANs】什么是饱和损失函数 Non-Saturating LossFunction
  • USB接口虚拟网卡
  • 基于SpringBoot的外卖项目的优化
  • Ubuntu20.04/22.04 ESP32 命令行开发环境配置
  • Kali Linux使用Metasploit生成木马入侵安卓系统
  • 数据库复习1
  • 18. linux系统基础
  • ssh远程登录报错:kex_exchange_identification: Connection closed by remote host
  • Quartus II 的入门级使用
  • Java EE|TCP/IP协议栈之TCP协议工作机制上
  • 智能化人机协作 遮挡情况下准确识别目标信息
  • React(一):初识React、类组件、jsx的基础语法
  • 2023-2-24 刷题情况