基于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、业务数据导致的内存占用是主要情况,避免内存泄露的情况,尽量多使用局部变量

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