官方文档: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
rabbitmq的运行内存超过了50MB,监控面板内存报红
消息队列随之被挂起,不再提供服务
测试之后手动恢复
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)