RabbitMQ磁盘警报

RabbitMQ磁盘警报

当可用磁盘空间低于配置的限制(默认为50MB)时,将触发警报,全部生产者将被阻止。目标是避免填满整个磁盘,这将致使节点上的全部写操做失败,并可能致使RabbitMQ终止。为了减小填满磁盘的风险,全部传入的消息都被阻止。在内存不足的状况下,瞬时消息仍然被分页到磁盘,而且会占用已经有限的磁盘空间。若是磁盘警报设置得过低,而且信息被快速转出,则可能会耗尽磁盘空间,并在磁盘空间检查(至少间隔10秒)之间崩溃RabbitMQ。更保守的方法是将限制设置为与系统上安装的内存量相同.
若是可用磁盘空间量低于配置的限制,则会触发警报。代理程序数据库使用的驱动器或分区的可用空间将至少每10秒钟进行一次监视,以肯定是否应提升或清除磁盘警报。代理启动后,监控将当即开始,致使代理日志文件中的条目:数据库

=INFO REPORT==== 23-Jun-2012::14:52:41 ===
Disk free limit set to 953MB

在没法识别的平台上将禁用监视,致使以下所示的条目:spa

=WARNING REPORT==== 23-Jun-2012::15:45:29 ===
Disabling disk free space monitoring

在群集中运行RabbitMQ时,磁盘警报是集群范围内的; 若是一个节点超出限制,那么全部节点都将阻止传入的消息。代理

RabbitMQ按期检查可用磁盘空间量。检查磁盘空间的频率与上次检查时的空间大小有关(以确保在空间耗尽时磁盘报警及时消失)。一般状况下,磁盘空间每10秒检查一次,但随着达到极限,频率会增长。当接近极限时,RabbitMQ将每秒检查10次。这可能会对系统负载有一些影响。日志

当可用磁盘空间低于配置的限制时,RabbitMQ将阻止生产者并阻止将基于内存的消息分页到磁盘。这将减小因为磁盘空间耗尽而致使崩溃的可能性,但不会彻底消除。特别是,若是消息正在快速分页,则可能会在两次运行磁盘空间监视器之间的时间内耗尽磁盘空间并崩溃。更保守的方法是将限制设置为与系统上安装的内存量相同.code

配置磁盘可用空间限制

磁盘可用空间限制使用disk_free_limit设置进行配置。默认状况下,数据库分区上须要50MB空闲空间(请参阅默认数据库位置的文件位置说明 )。该配置文件将磁盘可用空间限制设置为1GB:rabbitmq

disk_free_limit.absolute = 1000000000

或者你可使用像这样的内存单位(KB,MB GB等):内存

disk_free_limit.absolute = 1GB

或者,使用经典配置格式:it

{rabbit, [{disk_free_limit, 1000000000}]}].

也能够设置相对于机器中的RAM的可用空间限制。此配置文件将磁盘可用空间限制设置为与机器上的RAM数量相同:集群

disk_free_limit.relative = 1.0

或者,使用经典配置格式:监控

[{rabbit, [{disk_free_limit, {mem_relative, 1.0}}]}].

能够在代理运行时使用rabbitmqctl set_disk_free_limit disk_limit命令或 rabbitmqctl set_disk_free_limit mem_relative 分数命令更改限制。该命令将在代理关闭以前生效。当代理从新启动时效果应该保持不变,相应的配置设置也应该改变。

相关文章
相关标签/搜索