rabbitmq压力测试结果

rabbitmq压⼒测试结果
测试⽬标信号采集系统
性能相关情况
集稳定性
集的⾼⽤性
机器情况
r a bbitmq集情况
3个节点,节点服务器均为4核8G
每个节点均为磁盘节点
使⽤镜像队列
压测机器情况
冰车
4核8G
测试⼯具
rabbitmq-perf-test
PerfTest是⼀个基于Java客户端的吞吐量测试⼯具,可以将其配置为模拟基本⼯作负载和更⾼级的⼯作负载。PerfTest还有⼀些额外的⼯具,可以⽣成输出的HTML图形。
RabbitMQ集可能受到多种因素的限制,从基础架构级别的约束(例如,⽹络带宽)到RabbitMQ配置和拓扑,再到发布和使⽤的应⽤程序。PerfTest可以演⽰节点或节点集的基准性能。
参考⽂档
测试步骤毛辊清洗机
跑统计:bin/runjava com.rabbitmq.perf.PerfTestMulti html/test1/spec.js html/test1/result.js
起服务看结果:bin/runjava com.rabbitmq.perf.WebServer  服务器IP地址:8080/test1/result.html
测试总结
⼀开始进⾏单场景脚本测试时,发送速率也基本维持在35k/s左右,⽆法往上涨;开启多场景多脚本同步进⾏施加压⼒之后,发送速率也⽆法上升,反⽽⼀直在降,同时压测机器的负载也很⾼,性能跟不上。调整升级压测机器后,当我们多场景多脚本进⾏施压时,发送速率依旧变化不⼤,这是因为rabbitmq有相应的流控机制:
服务端默认配置是当内存使⽤达到40%,磁盘空闲空间⼩于50M,即启动内存报警,磁盘报警;报警后服务端触发流控(flowcontrol)机制。
身份通认证系统⼀般地,当发布端发送消息速度快于订阅端消费消息的速度时,队列中堆积了⼤量的消息,导致报警,就会触发流控机制。
RabbitMQ服务端接收发布来的消息会变慢,使得进⼊队列的消息减少;
触发流控机制后,RabbitMQ服务端接收发布来的消息会变慢,使得进⼊队列的消息减少
与此同时RabbitMQ服务端的消息推送也会受到极⼤的影响,测试发现,服务端推送消息的频率会⼤幅下降,等待下⼀次推送的时间,有时等1分钟,有时5分钟,甚⾄30分钟。
⼀旦触发流控,将导致RabbitMQ服务端性能恶化,推送消息也会变得⾮常缓慢;
调整测试脚本,增⼤⽣产者的并发数量到1000,5个队列,50个消费者,此时rabbitmq节点1的负载被打满;然后依次不停降低⽣产者和消费者的并发数量,直⾄⽣产者与消费者均只为30的场景,发现rabbitmq节点1服务器的cpu负载均很⾼,此时发现rabbitmq节点1服务器的cpu资源⼏乎都被四个线程也即rabbitmq的调取器线程占⽤,通过调整rabbitmq的调度器线程数量,我们发现发现速率以及服务器cpu负载有⼀定的变化,rabbitmq 单节点的瓶颈在于其调度器的线程数:
4个线程全打开时,发送速率限制在了35k/s,此时空闲的cpu最⼤不到10%
生理海水打开3个调度器线程时,发送速率限制在25k/s,此时空闲的cpu最⼤为25%
打开2个调度器线程时,发送速率限制在20k/s,此时空闲的cpu最⼤为30%
因此,我们可以通过以下措施来提升rabbitmq 的服务性能:
我们应当尽量避免触发rabbitmq的流控机制,要做好数据设计,使得发送速率和接收速率保持平衡,⽽不⾄于引起服务器堆积⼤量消息,进⽽引发流控。通过增加服务器集节点,增加消费者,来避免流控发⽣,治标不治本,⽽且成本⾼。
如果当前的性能达不到业务要求时,可以升级服务器,将服务器由4核升级到8核,增加rabbitmq的调度器线程数量,来提升性能。
基准测试部分场景结果
1个节点,节点内存为3G,只发布不消费,1个队列,10个消费者,⽣产速率上限约为60k/s,发送速率为0时是触发了rabbitmq的流控机制
1个节点,节点内存为3G,只发布不消费,1个队列,15个⽣产者,上限约为70k/s,发送速率为0时是触发了rabbitmq的流控机制
旋转连接器
3、1个节点,节点内存为3G,只发布不消费,1个队列,30个⽣产者,上限约为60k/s,发送速率为0时是触发了rabbitmq的流控机制
1个节点,节点内存为3G,只发布不消费,1个队列,60个⽣产者,上限约为60k/s,发送速率为0时是触发了rabbitmq的流控机制
1个节点,节点内存为4G,只发布不消费,1个队列,30个⽣产者,上限约为70k/s,发送速率为0时是触发了rabbitmq的流控机制
1个节点,节点内存为4G,⽣产者⼤于消费者,1个队列,30个⽣产者,10个消费者,发送速率上限约为50k/s,消费速率上限约为25k/s
1个节点,节点内存为4G,⽣产者⼤于消费者,1个队列,30个⽣产者,15个消费者,发送速率上限约为60k/s,消费速率上限约为35k/s

本文发布于:2024-09-22 17:33:54,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/248999.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   速率   发送   消息   服务器   流控   测试
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议