当前位置:   article > 正文

Rabbitmq配置调优_rabbitmq 配置 优化

rabbitmq 配置 优化

1、参数调优

  • queue_index_embed_msgs_below:
    控制消息的存储位置。是独立存储到msg_store中,还是嵌入消息的索引一并存储。默认值是4096(字节),即小于4KB的消息会嵌入到消息索引中一并存储。**注:**4KB包括消息内容以及消息的属性等元数据信息,其中消息的元数据信息占用至少300字节。配置缺省参数如下:
    在这里插入图片描述

  • num_acceptors.tcp:
    接受TCP侦听器连接的Erlang进程数。Default: 10,这个值直接影响到了另一个值即:connection_max,这个值是在客户端设的,公式如下:最大连接数=connection_max +num_acceptors -1
    在这里插入图片描述

  • handshake_timeout:
    AMQP 0-8/0-9/0-9-1 handshake (在 socket连接和SSL 握手之后)的最大时间, 毫秒为单位.Default: 10000,这边10秒是足够了,不能再长了,再长这个不是网络了,是电话拨号网。
    在这里插入图片描述

  • vm_memory_high_watermark.relative:
    流程控制触发的内存阀值,这个值必须设,设置法则如下:<=16gb内存的机器,设成0.4即MQ最多会使用到16gb*0.4=6.4GB时,阻塞所有的请求,>=32gb内存的机器,设成0.6
    在这里插入图片描述

  • vm_memory_high_watermark_paging_ratio:
    高水位限制的分数,当达到阀值时,队列中消息消息会转移到磁盘上以释放内存。设置机制同vm_memory_high_watermark,只不过它的阀值从0.5~0.6.即当内存的使用达到了50%后,队列开始将消息分页到磁盘。
    在这里插入图片描述

  • disk_free_limit.absolute:
    abbitMQ存储数据分区的可用磁盘空间限制.当可用空间值低于阀值时,流程控制将被触发.此值可根据RAM的总大小来相对设置 (如.{mem_relative, 1.0}).此值也可以设为整数(单位为bytes)或者使用数字单位(如.“50MB”).因此,很多外面都设1GB,这个显然是不够的,因为经如果当RABBITMQ的消息dump可用磁盘还剩1GB时,此时留给你的处理时间已经很短了,一般至少设成10GB。

  • frame_max:
    与客户端协商的允许最大frame大小. 设置为0表示无限制,但在某些QPid客户端会引发bug. 设置较大的值可以提高吞吐量;设置一个较小的值可能会提高延迟。
    在这里插入图片描述

  • initial_frame_max:
    咬合客户端的值,如配置文件描述所示:

  • channel_max:
    与客户端协商的允许最大chanel大小. 设置为0表示无限制.该数值越大,则broker使用的内存就越高.Default: 0
    在这里插入图片描述

  • heartbeat:
    表示心跳延迟(单位为秒) ,服务器将在connection.tune frame中发送.如果设置为 0, 心跳将被禁用. 客户端可以不用遵循服务器的建议, 查看 AMQP reference 来了解详情. 禁用心跳可以在有大量连接的场景中提高性能,但可能会造成关闭了非活动连接的网络设备上的连接落下.Default: 60 (3.5.5之前的版本是580)
    在这里插入图片描述

  • hipe_compile:
    将此选项设置为true,将会使用HiPE预编译部分RabbitMQ,Erlang的即时编译器.这可以增加服务器吞吐量,但会增加服务器的启动时间.你可以看到花费几分钟延迟启动的成本,就可以带来20-50% 更好性能.这些数字与高度依赖于工作负载和硬件.HiPE 支持可能没有编译进你的Erlang安装中.如果没有的话,启用这个选项,并启动RabbitMQ时,会看到警告消息. 例如, Debian / Ubuntu 用户需要安装erlang-base-hipe 包.HiPE并非在所有平台上都可用,尤其是Windows.在 Erlang/OTP 17.5版本之前,HiPE有明显的问题 . 对于HiPE,使用最新的OTP版本是高度推荐的.Default: false


样例配置:


listeners.tcp.default = 5672
 
num_acceptors.tcp = 20
 
handshake_timeout = 10000
 
vm_memory_high_watermark.relative = 0.4
# vm_memory_high_watermark.absolute = 6GB
 
 
vm_memory_calculation_strategy = rss
 
vm_memory_high_watermark_paging_ratio = 0.5
 
disk_free_limit.absolute = 10GB
 
 
frame_max = 131072
 
initial_frame_max = 4096
 
channel_max = 2047
 
heartbeat = 60
 
default_vhost = /
 
hipe_compile = true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/716722
推荐阅读
相关标签
  

闽ICP备14008679号