首页 > 如何优化TCP长连接带宽?

如何优化TCP长连接带宽?

从无到有设计的IoT网站,基于Twisted+Cyclone+Tornado+Flask。彼此之间采用SQL,Redis,MongoDB和RESTful进行数据耦合。Twisted号称可以解决C10K问题,属于高并发型异步IP网络框架。所以得到了采用。

由于IoT基本上都是SocketServer,缺乏成熟的压测工具。考虑到GIL的问题,使用自己编写的简单Python多进程(Multi Process)客户端进行测试。

设备采用长连接与IoT Socket Server保持连接,不断开。每隔0.5秒上传一次数据,报文长度<200B。压测使用50组长连接为基数,从50,100,150,200,250,300,每隔50基数做测试。此事发现:CPU占用率维持在25%左右,出网带宽维持在125kbps,但是入网带宽随着压测而上升到500kbps。由于IDC入网带宽统计严重滞后于出网带宽。出现非实时的出网带宽统计,甚至绘图不完整。只能够推测数值。

但是由于外网带宽总数在1Mbps,所以300台左右时,总带宽大约在600~700kbps左右,此时TeraTerm输入命令已经感觉到了延时。

结论
1Mbps带宽是系统瓶颈,即使采用高配服务器并不能够改善并实现高并发的IO连接数。

但实际上,每0.5秒发送200B,相当于400 B/s = 3.2kbps。而1Mbps支持300台设备,相当于每台占用带宽为3.5kbps。

不知道这样计算是否正确?是否必须从压缩应用数据入手优化带宽?


阿里云不限制也不对入网带宽进行计费。

【热门文章】
【热门文章】