背景
简单描述一下版本更新点吧,5.8.0 版本发布于 2013 年 2 月 12 日,以来 jdk1.6 版本。 5.15.4 版本发布于 2018 年,最新的已经是 Artemis 版本了(也可以认为是 5.16.x)。 关于新版本的特征大家直接去官网看吧,这里不做叙述了。
环境概述
施压机器
名称 | 配置 |
---|---|
cpu | 2 * INTEL Xeon E5-2650 V4 12C 2.2GHZ 12core |
内存 | 128G |
网卡 | 万兆网卡 |
数量 | 3 |
被压机器
名称 | 配置 |
---|---|
cpu | 2 * INTEL Xeon E5-2450 8C 2.1GHZ |
内存 | 8 * LANGCHAO PC3L-10600 16G |
网卡 | 千兆 |
数量 | 1 |
测试方案
queue场景:5.8版本线程数300, 由于发送者阻塞点与原版不一致,5.15版本线程数调整为30
topic场景:5.8与5.15版本线程并发为200
压力测试
场景说明
分别使用 0.1k,0.5k,1k,5k,10k 大小消息压测上述 8 个场景
压测结果
消息大小 | 场景 | 5.8 版本 | - | 5.15.4 版本 | - |
---|---|---|---|---|---|
- | - | 99 分位响应时间 | 吞吐量 | 99 分位响应时间 | 吞吐量 |
0.1k | 1queue-1 消费 | 430 | 907.8 | 46 | 771.1 |
- | 1queue-10 消费 | 311 | 1193.3 | 42 | 3039.3 |
- | 1queue-50 消费 | 310 | 1198.3 | 63 | 2943.7 |
- | 多 queue-多消费 | 455 | 3310 | 108 | 2476 |
- | 1topic-1 订阅 | 451 | 907.6 | 472 | 844.8 |
- | 1topic-10 订阅 | 664 | 619.3 | 680 | 601.5 |
- | 1topic-50 订阅 | 40155 | 13.8 | 2680 | 149.5 |
- | 多 topic-多订阅 | 2891(dump) | 239.4 | 1450 | 605.2 |
0.5k | 1queue-1 消费 | 488 | 805 | 104 | 540.2 |
- | 1queue-10 消费 | 422 | 896.7 | 152 | 2116.8 |
- | 1queue-50 消费 | 403 | 902.6 | 177 | 2119.6 |
- | 多 queue-多消费 | 1130 | 1651.1 | 187 | 1123 |
- | 1topic-1 订阅 | 629 | 671.9 | 619 | 672.6 |
- | 1topic-10 订阅 | 734 | 577.0 | 723 | 570.8 |
- | 1topic-50 订阅 | 42938 | 13.7 | 2754 | 145.2 |
- | 多 topic-多订阅 | 3026 | 89.4 | 1313 | 492.3 |
1k | 1queue-1 消费 | 498 | 808.4 | 143 | 416.5 |
- | 1queue-10 消费 | 493 | 755.8 | 198 | 1572.8 |
- | 1queue-50 消费 | 463 | 802.9 | 238 | 1622.2 |
- | 多 queue-多消费 | 894 | 2029.5 | 225 | 724.7 |
- | 1topic-1 订阅 | 744 | 574.4 | 711 | 585 |
- | 1topic-10 订阅 | 834 | 500 | 824 | 505.9 |
- | 1topic-50 订阅 | 41907 | 14.1 | 2906 | 138.8 |
- | 多 topic-多订阅 | 3334 | 180.9 | 2016 | 444.8 |
5k | 1queue-1 消费 | 977 | 350.2 | 860 | 120.1 |
- | 1queue-10 消费 | 976 | 348.8 | 525 | 324.6 |
- | 1queue-50 消费 | 970 | 350.9 | 430 | 525 |
- | 多 queue-多消费 | 3342 | 596.6 | 401 | 178.4 |
- | 1topic-1 订阅 | 1610 | 276.9 | 1165 | 277 |
- | 1topic-10 订阅 | 1818 | 241.8 | 1830 | 235.8 |
- | 1topic-50 订阅 | 11802 | 44.3 | 4899 | 47.6 |
- | 多 topic-多订阅 | 5741 | 186.9 | 571 | 261.1 |
10 | 1queue-1 消费 | 1590 | 206.2 | 1878 | 88.8 |
- | 1queue-10 消费 | 2617 | 207.9 | 828 | 245 |
- | 1queue-50 消费 | 1571 | 210.4 | 515 | 307.2 |
- | 多 queue-多消费 | 4867 | 389.8 | 1202 | 120.8 |
- | 1topic-1 订阅 | 6904 | 120.2 | 2297 | 177.7 |
- | 1topic-10 订阅 | 5729 | 139.2 | 2469 | 159.7 |
- | 1topic-50 订阅 | 17844 | 21.1 | 9603 | 23.8 |
- | 多 topic-多订阅 | 6775 | 90.2 | 6171 | 87.8 |
分析与结论
- 随着消息大小的增大,系统的处理能力也在下降,认为符合预期
- 在 queue 的场景下,5.15 版本的各项数据均优于 5.8 版本
- 在 topic 场景下,单 topic 下 1-1、1-5 场景 5.15 与 5.8 版本相差不多,1-50、多-多场景 5.15 明显优于 5.8 版本
- 系统极限处理瓶颈,通过上述飘红场景数据,可以看出 5.15 版本的极限性能优于 5.8 版本
补充-异常测试
- 慢消费不会导致其他队列的消费异常,也不会降低消费速率。并且慢消费的队列不会影响生产者。
- 慢消费不会导致其他主题的消费异常,也不会降低消费速率。但是慢消费着会阻塞该主题的生产者生产消息。
写在最后
欢迎大家交流讨论。 这里偷了个懒,mysql 实例并没有进行优化,后续再补充吧。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于