本文从本人博客搬运,原文格式更加美观,可以移步原文阅读:RabbitMQ内存与磁盘相关配置
内存相关配置
1.限制最大可用内存
默认情况下,当生产者将消息发送到RabbitMQ的时候,队列中的消息会尽可能的存储在内存之中,这样可以更加快速的将消息发送给消费者。即使是持久化的消息,在被写入磁盘的同时也会在内存中驻留一份备份
我们可以配置允许rabbitmq使用的最大内存是多少,当达到最大内存时,rabbitmq将会阻塞生产者继续发送消息给它
rabbitmq有2种方式可以限制其最大可用内存,我们可以根据实际情况选择一种。可以在配置文件/etc/rabbitmq/rabbitmq.conf
中进行配置:
- 相对值:mq可用所在物理机器的内存的比例,配置项为
vm_memory_high_watermark.relative
,默认0.4。建议配置为0.4~0.7之间 - 绝对值:mq可用所在物理机器的内存的绝对量,配置项为
vm_memory_high_watermark.absolute
vm_memory_high_watermark.relative = 0.4
vm_memory_high_watermark.absolute = 2GB
默认情况下rabbitmq将会采用相对值配置,并且默认的
vm_memor