基於Netty的IOT通信測試篇

模擬登錄併發

操作:測試,發登錄,並延時30ms發送1000字符串,服務器把字符串返回
操作系統:i3-4150 12GB
記錄:

終端個數 返回耗時 結論
20 4秒 較好
50 2秒 較好
100 3秒 較好
150 20秒 較好

結論:該操作模擬併發,連接個數在一定範圍內,併發數據能較好處理,如100個連接終端內,延時較短。當終端併發個數較多情況下,併發數據堆積在隊列裏等待執行。表現爲客戶端延時較大收到服務器返回的數據。
優化建議:可以減小併發的情況,正常來說如登錄併發的概率不會太大,可以延時30ms執行,幾百連接使用基本無太大問題

模擬真實業務測試,內存佔用情況

操作:服務器端每隔10秒向所有終端發送數據,數據大小爲221912長度字符串(每次發送從文件中讀取出來),基本滿足業務使用
操作系統:i3-4150 12GB
記錄:

終端個數 內存最大值 內存使用相對穩定值 結論
0 25MB 25MB 較低
50 180MB 120MB 一般
100 210MB 160MB 一般
150 200MB 110MB 較好
200 230MB 110MB 較好
250 160MB 90MB 較好
300 400MB 250MB 一般
400 420MB 350MB 一般
500 900MB 700MB 較差

每次發送從文件中讀取出來,會導致大量消耗內存,改成只讀取一次文件,並且發送頻率太高了,調整爲沒隔30秒:

終端個數 內存最大值 內存使用相對穩定值 結論
100 50MB 20MB 一般
200 60MB 30MB 較好
300 70MB 40MB 較好
400 80MB 50MB 一般
500 110MB 80MB 一般

結論:單純連接使用的內存消耗量不大,500塊終端也維持在100MB以內。主要導致內存的還是業務數據產生的內存佔用。同時推送給所有終端的同時,如果數據量較多,一次推送完成的時間比較長,頻繁全局推送,會導致數據累積在隊列裏導致內存佔用過大

優化建議:1、避免一次全局推送數據量過大 2、業務數據導致的內存佔用是主要情況,避免內存泄露的情況,儘量多使用局部變量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章