内存和磁盘监控

suaxi
2021-04-11 / 0 评论 / 68 阅读 / 正在检测是否收录...

官方文档:https://www.rabbitmq.com/configure.html


1、内存

当出现警告的时候,可以通过修改或调整配置

一般建议大小为物理机内存的40%~70%之间


命令行
rabbitmqctl set_vm_memory_high_watermark <fraction>
# 二者任选其一
rabbitmqctl set_vm_memory_high_watermark absolute 50MB


配置文件 rabbitmq.conf
# /etc/rabbitmq/rabbitmq.conf

# 默认
vm_memory_high_watermark.relative = 0.4
# 取值在0.4~0.7之间,不建议超过0.7


# 设置固定值
vm_memory_high_watermark.absolute = 1GB 


测试

手动修改内存为固定的50MB

1.修改内存测试.png

rabbitmq的运行内存超过了50MB,监控面板内存报红

2.修改内存测试.png

消息队列随之被挂起,不再提供服务

3.修改内存测试.png

测试之后手动恢复

rabbitmqctl set_vm_memory_high_watermark 0.4


2、内存换页

在某个Broker节点及内存阻塞生产者之前,它会将队列中的消息换页到磁盘中,以释放内存空间,持久化和非持久化的消息都会写入磁盘中(持久化消息本身就有一个副本在磁盘中,所以在转移过程中持久化的消息会率先从内存中转移)

默认情况下,内存达到阈值的50%就会进行换页处理,即:默认阈值为0.4的情况下,当内存超过0.4*0.5=0.2时就会进行换页处理,因为当出现内存警告,服务被挂起时才来进行换页已经没有意义。

vm_memory_high_watermark.relative = 0.4
vm_memory_high_watermark_paging_ratio = 0.7    # 设置小于1的值(一般不超过0.7)


3、磁盘

当磁盘剩余空间小于阈值时,RabbitMQ同样会产生预警,将服务挂起,同理内存预警


命令行
rabbitmqctl set_disk_free_limit <disk_limit>

rabbitmqctl set_disk_free_limit memory_limit <faction>

# disk_limit 固定值,单位KB MB GB
# faction     相对阈值,建议范围在1.0~2.0之间,此处须于内存的阈值区分开来


配置文件
disk_free_limit.relative = 3.0
disk_free_limit.absolute = 50mb
0

评论 (0)

取消