100Mbps传输1GiB要多久?用Python算清理论耗时
给云服务器传输安装包或备份文件前,可以先用文件大小和可用带宽估算时间。这里最容易混淆的是小写 b 与大写 B:Mbps 是每秒百万比特,MB/s 是每秒百万字节,1 字节等于 8 比特。
先把单位写清楚
按十进制计算,100 Mbps 对应每秒 12.5 MB 的理论数据量。文件若为 1 GB,即 10 的 9 次方字节,理想耗时为 80 秒;若为 1 GiB,即 1024 的 3 次方字节,理想耗时约为 85.90 秒。两者不是同一个文件大小,不能看到“1G”就直接代入。
统一公式:理论秒数 = 文件字节数 × 8 ÷(带宽 Mbps × 1,000,000)。这个计算假定全程稳定占满给定带宽,且忽略协议开销。
用 Python 验证一个例子
size_gib = 1
mbps = 100
if size_gib < 0 or mbps <= 0:
raise ValueError("size must be non-negative; bandwidth must be positive")
seconds = size_gib * 1024**3 * 8 / (mbps * 1_000_000)
print(f"{seconds:.2f} seconds")
print(f"{seconds / 60:.2f} minutes")
print(f"{mbps / 8:.2f} MB/s")
运行结果为 85.90 seconds、1.43 minutes、12.50 MB/s。这里只进行了单位换算,并没有测量网络速度,也没有向任何服务器发送数据。
把理论值用在正确的位置
1. 确认传输方向。客户端下载云服务器上的文件与云服务器下载外部文件,对应的链路方向不同;应核对具体云产品的入云、出云带宽规则。
2. 使用这次传输真正能用到的带宽。源站限速、接收端网络、多任务共享带宽,以及磁盘读写速度,都可能成为瓶颈。
3. 计划任务窗口时留出余量。建连、协议头、拥塞和重传会增加耗时;如果文件先压缩,实际传输字节数又会改变。因此理论结果适合做数量级检查,不代表下载承诺或故障判据。
例如估算约 86 秒的文件实际用了两分钟,应先看持续吞吐、链路和磁盘,再判断原因。不能仅凭“100 Mbps”这个配置数字认定下载必须在 86 秒内结束。
参考资料:华为官网《如何使用花瓣测速》(网络速率换算);华为云帮助中心《什么是入云带宽和出云带宽?》。本文示例为独立计算,无需安装第三方 Python 库。
- 点赞
- 收藏
- 关注作者
评论(0)