ActiveMQ5.8 vs 5.15.4效能對比
1.效能diff
queue場景:5.8版本執行緒數300, 由於傳送者阻塞點與原版不一致,5.15版本執行緒數調整為30
topic場景:5.8與5.15版本執行緒併發為200
1.場景1 單queue-1個消費者
1.場景說明
壓測一個queue對應一個消費者的場景,訊息大小0.05k,先後壓測5.8版本與5.15版本進行資料比對。
2.壓測結果
5.8版本 | 5.15版本 |
---|---|
3.分析與結論
- 5.15版本總體Throughput 830.8高於5.8版本
- 5.15版本99分為的響應時間18ms遠遠低於5.8版本417ms
- cpu記憶體等機器表現上兩者相差不多
- tcp連結數量5.15版本比5.8版本整體表現較好
結論:5.15版本在1個queue對應1個消費者場景效能優於5.8版本
2.場景2 單queue-10個消費者
1.場景說明
壓測一個queue對應十個消費者的場景,訊息大小0.05k,先後壓測5.8版本與5.15版本進行資料比對。
2.壓測結果
5.8版本 | 5.15版本 |
---|---|
3.分析與結論
- 5.15版本總體Throughput3000高於5.8版本1245
- 5.15版本99分為的響應時間48ms遠遠低於5.8版本302ms
- cpu,磁碟I/O,網路I/O等5.15版本比5.8 版本高一些,考慮到2.5倍的tps認為符合預期
結論:5.15版本在1個queue對應十個消費者場景效能優於5.8版本
3.場景3 單queue-50個消費者
1.場景說明
壓測一個queue對應五十個消費者的場景,訊息大小0.05k,先後壓測5.8版本與5.15版本進行資料比對。
2.壓測結果
5.8版本 | 5.15版本 |
---|---|
3.分析與結論
- 5.15版本總體Throughput 3305 高於5.8版本1245
- 5.15版本99分為的響應時間34ms遠遠低於5.8版本296ms
- cpu記憶體等兩個版本相差不多;網路I/O5.15版本高於5.8版本,優於tps高於5.8版本,認為符合預期
結論:5.15版本在1個queue對應50個消費者場景效能優於5.8版本
4.場景4 多queue-多個消費者
1.場景說明
壓測多個queue對應多個消費者的場景,訊息大小0.05k,先後壓測5.8版本與5.15版本進行資料比對。
2.壓測結果
5.8版本 | 5.15版本 |
---|---|
3.分析與結論
- 5.15版本總體Throughput 3023 與5.8版本3161持平,略低於5.8版本
- 5.15版本99分為的響應時間51ms遠遠低於5.8版本524ms
- cpu記憶體等機器表現上兩者相差不多
總體結論:5.15版本在多個queue對應多個消費者場景效能優於5.8版本
5.場景5 單topic-1個訂閱者
1.場景說明
壓測一個topic對應一個訂閱者的場景,訊息大小0.05k,先後壓測5.8版本與5.15版本進行資料比對。
2.壓測結果
5.8版本 | 5.15版本 |
---|---|
3.分析與結論
- 5.15版本總體Throughput 910 略低於 5.8版本947
- 5.15版本99分為的響應時間455ms遠遠低於5.8版本434ms
- cpu記憶體等機器表現上兩者相差不多
總體結論:5.15版本在1個topic對應1個訂閱者場景效能略低於5.8版本,不過考慮到兩者tps和響應時間相差不多,顧認為升級整體符合預期
6.場景6 單topic-5個訂閱者
1.場景說明
壓測一個topic對應五個訂閱者的場景,訊息大小0.05k,先後壓測5.8版本與5.15版本進行資料比對。
2.壓測結果&結論
5.8版本 | 5.15版本 |
---|---|
3.分析與結論
- 5.15版本總體Throughput 605略低於5.8版本625
- 5.15版本99分為的響應時間680ms略高於5.8版本647ms
- cpu記憶體等機器表現上兩者相差不多
總體結論:5.15版本在1個topic對應5個訂閱者場景效能略低於5.8版本,不過考慮到兩者tps和響應時間相差不多,顧認為升級整體符合預期
7.場景7 一個topic-50個訂閱者
1.場景說明
壓測一個topic對應五十個訂閱者的場景,訊息大小0.05k,先後壓測5.8版本與5.15版本進行資料比對。
2.壓測結果&結論
5.8版本 | 5.15版本 |
---|---|
3.分析與結論
- 5.15版本總體Throughput 149高於5.8版本13tps
- 5.15版本99分為的響應時間2675ms遠遠低於5.8版本43005ms
- 從資料上看很明顯在5.8版本在該場景下已經明顯超出其版本負荷
總體結論:5.15版本在1個topic對應50個訂閱者場景效能優於5.8版本,5.8版本已經明顯超出負荷。
8.場景8 多個topic-多個訂閱者
1.場景說明
壓測多個topic對應多個訂閱者的場景,訊息大小0.05k,先後壓測5.8版本與5.15版本進行資料比對。
2.壓測結果
5.8版本 | 5.15版本 |
---|---|
3.分析與結論
- 5.15版本總體611.7 Throughput高於5.8版本212.7
- 5.15版本99分為的響應時間1459ms遠遠低於5.8版本3800ms
- 從資料上看很明顯在5.8版本在該場景下已經明顯超出其版本負荷,2分鐘後響應時間一直上升
總體結論:5.15版本在多個topic對應多個訂閱者場景效能優於5.8版本,5.8版本已經明顯超出負荷。
8.場景9 不同訊息大小表現情況&&整體效能diff結論
1.場景說明
分別使用0.1k,0.5k,1k,5k,10k大小訊息壓測上述8個場景
2.壓測結果
有與0.05k已有詳細介紹,除訊息大小外並無不同,顧此處不一一貼上圖表過來。
訊息大小 | 場景 | 5.8版本 | 5.15版本 | ||
---|---|---|---|---|---|
99分位響應時間 | Throughput | 99分位響應時間 | Throughput | ||
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 | 239.4 該場景執行緒有dump情況 | 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-5訂閱 | 734 | 577.0 | 723 | 570.8 | |
1topic-50訂閱 | 42938 | 13.7 | 2754 | 145.2 | |
多topic-多訂閱 | 3026 | 98.4 | 1313 | 492.3 | |
1k | 1queue-1消費 | 498 | 808.4 | 143 | 416.5 |
1queue-10消費 | 493 | 775.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-5訂閱 | 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-5消費 | 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 | 1665 | 277 | |
1topic-10訂閱 | 1818 | 241.8 | 1830 | 235.8 | |
1topic-50訂閱 | 11802 | 44.3 | 4899 | 47.6 | |
多topic-多訂閱 | 5741 | 186.9 | 571 | 216.1 | |
10k | 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-5訂閱 | 5729 | 139.2 | 2469 | 159.7 | |
1topic-50訂閱 | 17844 | 23.1 | 9603 | 23.8 | |
多topic-多訂閱 | 6775 | 90.2 | 6171 | 87.8 |
3.分析與結論
通過分析不同訊息大小與不同場景下的資料,可以看出:
- 隨著訊息大小的增大,系統的處理能力也在下降,認為符合預期
- 在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版本
9 異常測試
1.場景說明
測試某個queue或者topic在有慢消費導致阻塞的時候對其他的佇列或者主題有無影響
2.壓測結果
5.15.4版本,queue1-3正常,queue4慢消費。訊息大小為0.5k。每個佇列5傳送者2消費者
全都正常情況 | 有慢消費情況 |
---|---|
5.15.4版本,topic1-3正常,topic4慢消費。訊息大小0.5k。每個佇列5生產者2訂閱者
全部正常 | 有慢消費 |
---|---|
3. 結論
慢消費不會導致其他佇列的消費異常,也不會降低消費速率。並且慢消費的佇列不會影響生產者。
慢消費不會導致其他主題的消費異常,也不會降低消費速率。但是慢消費著會阻塞該主題的生產者生產訊息。