默認
打賞 發表評論 29
想開發IM:買成品怕坑?租第3方怕貴?找開源自已擼?盡量別走彎路了... 找站長給點建議
即時通訊框架MobileIMSDK:壓力測試報告
閱讀(84280) | 評論(29 收藏8 淘帖1 1

本文描述的是MobileIMSDK在某測試環境下服務端的:并發吞吐效率、整體負載以及JVM級健康狀況等數據。測試條件有限,僅供參考。

一、測試方法


  • 網絡環境:為了排除網絡復雜性對測試的干擾,測試由同一局域網中的機器完成;
  • 網絡設備:條件有限,使用的是一臺入門級中小型企業用路由器(設備性能對測試有一定影響,請酌情解讀結果);
  • 客戶端:分別運行于2臺惠普380型物理服務器(硬件指標僅供參考,請酌情解讀測試結果);
  • 服務端:運行于1臺惠普580型48核32G物理服務器(硬件指標僅供參考,請酌情解讀測試結果);
  • 客戶端工具:Apache JMeteriKende.com的TCP/UDP性能測試工具 (注: 此工具已被下架,如有需要請回貼留下郵箱,我會發送我的存檔版本);
  • 服務端工具:Spotlight on WindowsJProfiler

二、測試結果


MobileIMSDK服務端在上述測試條件下,單機吞吐效率約為40000/秒。測試顯示,服務端整體負載較輕,JVM各項指標均處健康可持續狀態。

三、 性能解讀


  • 負載解讀(假如用于推送時):
    理論單機負載可達千萬級,理由是:以每客戶端5分鐘心跳間隔計、1000萬的在線量,網絡吞率需達33000/秒(即10000000/(5*60)),顯然MobileIMSDK理論上沒有問題。
  • 負載解讀(假如用于聊天時):
    保守假設每個正在聊天的人每發一條消息的間隔為5秒(實際應用中, 手機上從調出輸入法到輸入完成并發送,即使簡單的“你好”2字,一般人也通常會超出5秒,不信請打開計時器(當然凡事沒有絕對,哥只是作一個普遍性的推斷,勿噴)),同時在線的人員中有3分之1的人正在聊天(這么高的并發互動比率對于一般的聊天APP而言可能性非常小,此處為保留估計)。那么基于以上假設,MobileIMSDK可支撐的同時在線人數為:(40000 * 5) / (1/3) = 60萬。當然,每款聊天應用實際會因各種客觀因素的存在而不盡相同,不可能等同視之,請視具體情況客觀評估之,以上數字僅供參考。
  • 帶寬解讀:
    生產生境中,單機滿載時,帶寬瓶頸會首先出現。單機帶寬總會有上限,因而超高負載應用,集群才是最佳解決方案。
  • 計算性能:
    MobileIMSDK涉及的主要計算性能指標是內存性能、網絡交換性能、CPU性能,提升這幾項都能相應提高其吞吐效率。

四、客戶端測試截圖


工具1:某TCP/UDP性能測試工具

測試顯示,MobileIMSDK的平均吞吐約為40000/秒。


即時通訊框架MobileIMSDK:壓力測試報告_client1.png

工具2:Apache JMeter

實測中,JMeter的UDP壓力測試插件本身性能就不好,單機根本達不到服務端壓力極限,所以只能同時使用2臺機器作客戶端,即使這樣,也沒有達到服務端上限,條件有限,勉強作個參考吧。


即時通訊框架MobileIMSDK:壓力測試報告_屏幕快照 2015-09-03 23.33.24.png

即時通訊框架MobileIMSDK:壓力測試報告_屏幕快照 2015-09-03 23.32.37.png

五、服務端測試截圖


工具1:Spotlight監控宏觀負載


>> 測試顯示:網絡負載、CPU計算、內存交換是MobileIMSDK涉及的3個主要資源(注意帶寬負載為78M/2=39M bps)。
即時通訊框架MobileIMSDK:壓力測試報告_server1.png

工具2:JProfile監控JVM微觀情況


>> 測試顯示:MINA框架確實是將網絡IO處理線程和業務處理線程分開了。
即時通訊框架MobileIMSDK:壓力測試報告_jprofile_threads.png

>> JVM的內存分配和回收情況。
即時通訊框架MobileIMSDK:壓力測試報告_jprofile_vm.png

>> JVM的GC回收頻率和占用的CPU計算資源。
即時通訊框架MobileIMSDK:壓力測試報告_jprofile_gc.png

六、捐助作者,得MobileIMSDK精編注釋版


請點擊需要的平臺和版本,前往淘寶下單,付款后系統會自動發貨(網盤下載鏈接)到您的相關郵件地址,詳情請見淘寶詳情:

MobileIMSDK(Android客戶端庫)精編注釋版:https://item.taobao.com/item.htm?id=534778878908
MobileIMSDK(Java客戶端庫)精編注釋版:https://item.taobao.com/item.htm?id=534874027509
MobileIMSDK(iOS客戶端庫)精編注釋版:https://item.taobao.com/item.htm?id=534918179776
MobileIMSDK(服務端庫)精編注釋版:https://item.taobao.com/item.htm?id=534986485062


即時通訊框架MobileIMSDK:壓力測試報告_1.png       即時通訊框架MobileIMSDK:壓力測試報告_2.png
即時通訊框架MobileIMSDK:壓力測試報告_3.png       即時通訊框架MobileIMSDK:壓力測試報告_4.png

(更多詳情請進入:http://www.hqkrtb.live/thread-411-1-1.html

附錄:更多鏈接


學習交流↘
  • 常見問題討論學習:點此進入 推薦
  • 討論學習和資料區:點此進入
  • 移動端即時通訊交流群: 320837163 推薦
  • bug/建議發送至:[email protected]
  • 技術支持/合作/咨詢請聯系作者QQ:413980957

相關資料↘

開發文檔↘

資源下載↘

相關技術↘
  ① Web端即時通訊框架:MobileIMSDK-Web
  ② 移動端實時音視頻框架:RainbowAV
  ③ 全功能產品級IM案例:RainbowChat

即時通訊網 - 即時通訊開發者社區! 來源: - 即時通訊開發者社區!

上一篇:即時通訊框架MobileIMSDK的Demo使用幫助:Java版下一篇:即時通訊框架MobileIMSDK的開發指南:Java客戶端

本帖已收錄至以下技術專輯

推薦方案
評論 29
“>> 測試顯示:MINA框架確實是將網絡IO處理線程和業務處理線程分開了。”

是不是就是異步了?
這篇帖子是另一個使用MobileIMSDK的群友自已做的壓力測試,
可能會有人遇到跟他類似的問題,如何正確的測試出壓力極限請移步此貼:http://www.hqkrtb.live/thread-346-1-1.html
簽名: 明天出發去鹽城,線下面基會要開始了
性能不錯
簽名: 頂頂頂頂
工具好評。
簽名: 該會員沒有填寫今日想說內容.
性能不錯
簽名: 好好好哈哈哈哈
性能不錯
簽名: 心情好
不錯
麻請發送一份性能測試工具,謝謝。[email protected]
引用:asas110123 發表于 2019-02-14 09:16
麻請發送一份性能測試工具,謝謝。

已發送到你的郵箱,注意查收
簽名: 明天出發去鹽城,線下面基會要開始了
麻請發送一份性能測試工具,謝謝。[email protected]
引用:NowIsGood. 發表于 2019-04-09 15:08
麻請發送一份性能測試工具,謝謝。

已發
簽名: 明天出發去鹽城,線下面基會要開始了
麻煩請發送一份性能測試工具,謝謝。 [email protected]
簽名: 哈哈哈
引用:后來_lG8o1 發表于 2019-05-05 09:58
麻煩請發送一份性能測試工具,謝謝。

已發
簽名: 明天出發去鹽城,線下面基會要開始了
求測試工具。[email protected]
引用:haoran 發表于 2019-05-13 12:33
求測試工具。

已發
簽名: 明天出發去鹽城,線下面基會要開始了
請問下  tcpudptest測試,如何寫data里面的數據,是一直發送同一個用戶的登錄報文信息嗎?
簽名: 哈哈哈
請問下,tcpudptest應該是只能測試吞吐量  沒辦法測試長連接的嗎?應該如何測試長連接呢?
簽名: 哈哈哈
引用:后來_lG8o1 發表于 2019-05-29 10:18
請問下,tcpudptest應該是只能測試吞吐量  沒辦法測試長連接的嗎?

測吞吐的時候不就是針對長連接嗎。。
簽名: 明天出發去鹽城,線下面基會要開始了
打賞樓主 ×
使用微信打賞! 使用支付寶打賞!

返回頂部
乐彩网17500