因为接入设备数量比较多,测试期间已经有几千台活跃的客户端设备。
断断续续折腾几个月,走了很多弯路。目前是用的自定义的 tcp 协议。
因为利润非常低,但是设备数量增速很快,测试期间这几千设备用云服务器,算了一下可能会亏...所以想降低服务器费用。
主要有两个功能:1 设备离线检测 2 其他的功能
离线检测功能
tcp 实现的。然后用一个入口文件实现了服务器的伪集群。
设备自己走 http 查询 cdn 上的文件检索自己要连接的服务器地址,然后和对应的 tcp 服务器定期发生一个心跳包。 然后实现了离线检测功能。用的 golang+gnet 。但是需要频繁检查 map 里面对应的设备一些配置情况
其他的功能
走的 tcp 短连接,这个频率不高,对服务器 内存和 cpu 开支很小 但是对服务器下行带宽占用多一些。
服务器这边 最大的性能开支,就是带宽开支和 tcp 大量长连接的内存和 cpu 占用。
家庭宽带
我自己有三条宽带都有动态公网 ip ,且不在同一个城市。其中一条宽带还有 ups 和发电机,想用这三条宽带做一个高可用性伪集群。不用云服务。
家宽的,下行带宽够大所以带宽开支可以忽略。
然后存在两个问题,请教。1 、是可否用 arm 手机集群 2 、是家宽的 tcp 并发有什么限制吗?
可否用 arm 手机主板做服务器集群
用 手机主板集成机箱 放一堆手机主板 otg 有线网 跑 arm linux 可行吗?
用 x86 的话多出来的硬件开支和电费 是否值得
不是很明白 cpu 不同架构的性能差距,服务器这边除了维持大量 tcp 连接资源,就是需要频繁查询 map,算是 hash 运算,不知道这两个情况下,arm 是否比 x86 更合适。
手机的 cpu 缓存也比较小,但是不知道同性能下功耗和硬件投入是不是都要比 x86 小很多。
没有多少数据需要写硬盘的。
家宽的 tcp 并发数量
之前测试过 udp,同时收太多包会丢包。不知道 tcp 有没有限制。因为目前手上 x86 路由器太老了性能不够,自己测试的时候连接数多了开发机还没事,路由器 cpu 先 100%了,也没能测出来。