RabbitMQ内存及磁盘告警

RabbitMQ内存与磁盘告警机制
本文介绍RabbitMQ如何通过内存与磁盘告警机制避免服务崩溃。当资源使用超过预设阈值时,RabbitMQ会暂时阻塞客户端连接,并停止接收消息。文中详细解释了内存与磁盘告警的触发条件及如何通过配置文件或命令行调整这些阈值。

概述

当内存使用超过配置的阈值或者磁盘剩余空间地狱配置的阈值时,RabbitMQ都会暂时阻塞(block)客户端的连接并停止接收客户端发来的消息,以此避免服务崩溃。于此同时,客户端与服务端的心跳检测也会失效,可以通过rabbitmqctl list_connections命令查看,web也可。

内存告警

默认情况下vm_memory_high_watermark的值为0.4,即内存阈值为0.4,表示当RabbitMQ使用内存的阈值设置为40%就会产生内存警告并阻塞所有生产者的链接。一旦告警被解除,一切都会恢复正常。
默认的阈值40%不是单纯的使用超过40%的内存,这仅仅只是限制了RabbitMQ的消息生产者。在最坏的情况下,Erlang的垃圾回收机制会导致两倍内存消耗,也就是80%的使用占比。

如果设置fraction为0,所有的生产者都会被停止发送消息。

可以通过配置文件来配置:

[
	{
		rabbit, 
		[
			{vm_memory_high_watermark, 0.4}
		]
	}
].

可以通过rabbitmqctl命令来配置

root@shovel01:/# rabbitmqctl set_vm_memory_high_watermark 0.4 
Setting memory threshold on rabbit@shovel01 to 0.4 ...

设置内存阈值的绝对值为1GiB

[
	{
		rabbit, 
		[
			{vm_memory_high_watermark,{absolute,1073741824}}
		]
	}
].

设置内存阈值为单位的形式

[
	{
		rabbit, 
		[
		{vm_memory_high_watermark,{absolute,"1024
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Energet!c

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值