一 需要购买多大的流量?
项目上线时,我们需要购买多大的流量的带宽?支持多少设备(支持多少并发量,在设计阶段会计算)?作为架构师我们必须清楚与明确。
二 清楚服务器的流量计算
常见的云服务主机流量计费方式:
- 按流量计费: 根据用户使用的总流量进行计费,所有类型流量都会计入。
- 按带宽计费: 根据用户使用的带宽进行计费,只计入数据流量。
登陆云服务器查看流量计算方式,如下图:
从上图中看出我们这台云服务器是包月按带宽计费,只计入数据流量,所以计算流量时不需要另外加入IP/TCP的包头段的流量。我们以 流量的维度 去计算一台前置服务器,10Mbps 所支持充电桩同时在线充电数量。
三 计算并发量
计算流量公式:
简单的计算公式: 单台设备流量 * 设备数量 = 占用带宽
这里以一台使用云快充协议的单枪充电桩为示例计算出单台设备的流量:
为了弄清最大支持同时在线充电桩充电数量 (充电时报文交互最多的),需收集确定充电时的通讯数据报文长度:
根据报文协议长度计算:
周期10秒的:
- 心跳0x03:发送17 byte +回复17个 byte = 34 byte 每10秒/1次
每秒占用流量:34/10=3.4 byte/秒
周期15秒的:
- 充电状态0x13:68byte 每15秒/1次
- 充电电机状态 0x23: 52byte 每15秒/1次
- 充电BMS状态 0x25: 53byte 每15秒/1次
汇总: 68 + 52 + 53 = 173 byte
每秒占用流量: 173 / 15 大约是 11.54byte/秒
一次性:
- 启动 0x34: 发送 52byte + 回复 34byte = 86 byte
- 充电握手 0x15: 发送 81byte
- 参数配置 0x17: 发送 53 byte
- 结束 0x19: 发送 47 byte
- 订单报文0x3b:发送 166byte + 回复 25byte = 191 byte
86+81+53+47+191 = 458byte
这里我们以每个桩充电30分钟为例 458/1800=0.254 byte/秒
最终计算:
每秒占用流量: 3.4 + 11.54 +0.254 = 15.194 字节。
10Mbps 云服务器带宽支持设备在线充电数量:
10 Mbps = 10,000,000 比特每秒。
然后,我们将每台设备每秒发送的数据量转换为比特数:
15.194 字节/秒 * 8 比特/字节 ≈ 121.552 比特/秒。
现在我们可以计算每秒可支持的设备数:
设备数 = 总带宽 / 每台设备每秒发送的比特数 ≈ 10,000,000 比特/秒 / 121.552 比特/秒 ≈ 82274.47 台设备。
因此,10 Mbps的带宽可以支持约82274台设备,每台设备每秒发送15.194字节的数据。
请注意,上面计算是理论值,实际情况可能受到其他因素(如网络协议开销、网络拥塞等)的影响会更少。