要计算阿里云 ECS 实例的 100 Mbps 带宽对应的实际传输速率(通常以 MB/s 为单位),需理解 比特(bit) 与 字节(Byte) 的关系,并考虑网络协议开销等因素。
✅ 基本换算公式:
理论最大下载速度(MB/s) = 带宽(Mbps) ÷ 8
因为:
- 1 Byte = 8 bits
- 所以 100 Mbps = 100 ÷ 8 = 12.5 MB/s
📌 注意:这是理论峰值,单位是 MiB/s(若按二进制)或 MB/s(十进制)。日常中常混用,但阿里云官方及多数工具显示的是 MB/s(十进制),即:
- 1 MB = 1,000,000 Bytes
- 1 MiB = 1,048,576 Bytes
在带宽标称中,运营商和云厂商均使用 十进制(Mb = 10⁶ bits),因此:
$$
frac{100 times 10^6 text{bits/s}}{8} = 12.5 times 10^6 text{bytes/s} = 12.5 text{MB/s}
$$
⚠️ 实际速率会低于理论值的原因:
| 因素 | 影响说明 |
|---|---|
| TCP/IP 协议开销 | 每个数据包有 IP 头(20~40 字节)、TCP 头(20 字节)、可能的校验等,有效载荷占比约 90%~95% |
| 网络拥塞/抖动 | 公网波动、跨地域路由跳数多时丢包重传会降低速度 |
| 磁盘 I/O 瓶颈 | 若读取/写入慢于网络,无法跑满带宽 |
| 客户端限制 | 本地网卡、浏览器、下载工具限速等 |
| 安全组/防火墙规则 | 可能拦截部分流量或限流 |
| ECS 规格限制 | 某些低配实例(如共享型 t5/t6)即使买了 100M 带宽,也可能受 vCPU/内存比例限制而无法打满 |
✅ 经验估算:
在理想局域网或同区域测试下,实际可达 11.5 ~ 12.3 MB/s;公网下载常见为 10 ~ 12 MB/s。
🔍 如何实测验证?
方法 1:使用 curl + pv(推荐)
# 安装 pv(若无)
sudo yum install pv # CentOS/RHEL
sudo apt install pv # Ubuntu/Debian
# 测试从阿里云 OSS 或其他高速源下载
curl -o /dev/null https://<OSS 文件地址> | pv -b -s <文件大小字节数>
# 示例:
curl -o /dev/null https://oss-cn-hangzhou.aliyuncs.com/testfile.zip | pv -b -s 104857600
输出中的 speed 即为实时平均速率(B/s),可转换为 MB/s。
方法 2:使用 wget + time
time wget -O /dev/null https://<高速链接>
通过总耗时和文件大小反推:
$$
text{平均速率 (MB/s)} = frac{text{文件大小 (MB)}}{text{耗时 (秒)}}
$$
方法 3:使用 iperf3(内网/自建服务端更准)
# 服务器端(另一台机器)
iperf3 -s
# 客户端(本 ECS)
iperf3 -c <服务器IP> -t 30
关注 Bits per second → 除以 8 得 B/s。
💡 小贴士:
- 阿里云控制台显示的“带宽”始终是 Mbps(兆比特每秒),不是 MB/s。
- 若购买的是“固定带宽”,请确认是否已启用 按使用流量计费 或 共享带宽 模式,避免被额外限制。
- 对于高吞吐场景,建议开启 Jumbo Frame(若支持)+ 调整 TCP 参数(如
net.core.rmem_max)优化性能。
需要我帮你写一个自动化测速脚本吗?
云服务器