属于大家的
VPS知识分享站

云服务器带宽跑不满?先查单线程与线路

先说结论:带宽跑不满,先看单位有没有搞混,再看是不是单线程、对端限速、线路绕路、CPU 或磁盘先到顶。100Mbps 理论下载 12.5MB/s,单线程跑 5MB/s 很常见,多线程才能接近上限。

先排除三个低级问题:

  • 单位:Mbps 和 MB/s 差 8 倍,100Mbps ≈ 12.5MB/s
  • 测速对端:对端限速、CDN 节点远,测不出你的真实带宽
  • 测速方式:单线程、浏览器下载,天然跑不满高带宽

先确认标称和实际

ethtool eth0 | grep Speed
iperf3 -c 对端IP -t 30 -P 8
sar -n DEV 1 5

网卡协商速率、iperf3 多线程结果、网卡实际收发,三个数对上,才说明带宽没问题。只有浏览器下载慢,先换多线程工具再判断。

单线程和多线程

单条 TCP 连接受窗口、RTT、丢包影响,跨洲高延迟下很难跑满大带宽。100Mbps 以上、或有丢包的线路,建议多线程测。浏览器下载、wget 单线程,通常只能跑到带宽的一部分。

单线程数据流被窄门限制,旁边是多条并行流
高带宽跨洲场景,单线程天然跑不满,多线程才接近上限。

线路和回程

同样标称 100Mbps,CN2、BGP、普通国际线路的体验差很多。回程绕路、跨境拥塞、晚高峰限速,都会让速度掉下来。用 mtr 看每一跳的延迟和丢包,确认瓶颈在机房、国际段还是对端。

mtr -rwc 100 对端IP
traceroute 对端IP
网络路由中一段被标红的慢链路
用 mtr 看每一跳,瓶颈可能在机房、国际段或对端。

对端和 CDN

测速要选同区域、不限速的对端。下载测试文件时,确认 CDN 节点离你近、没有回源限速;否则你测的是 CDN 的边缘能力,不是服务器带宽。

CPU 和磁盘瓶颈

高带宽下,CPU 要处理中断、协议栈、加密;磁盘要跟上写入。如果 CPU 单核打满、磁盘 await 高,网络还没跑满,瓶颈已经在别处。看 top 的 si(软中断)、iostat 的 await。

服务器的 CPU 和磁盘仪表限制网络吞吐
CPU 软中断和磁盘 await 也会让带宽先到顶。

云盘和共享带宽

共享带宽晚高峰会掉速;云盘 IOPS 不够,下载写盘也会拖慢。先确认套餐是独享还是共享,再看云盘规格。便宜套餐的“100Mbps”往往是共享峰值。

怎么优化

  • 多线程下载/传输,别用单线程测大带宽
  • 选就近节点和对端,减少跨境绕路
  • 开压缩和缓存,减少实际传输量
  • 加密场景看 CPU,必要时换支持 AES-NI 的机型
  • 大文件用对象存储 + CDN,不占源站带宽

什么时候该换线路

如果多线程、就近对端、低峰时段都跑不满,且 mtr 显示国际段丢包严重,说明线路不行。换 CN2/优化线路,或把服务部署到离用户更近的机房。

先排除本机限速

检查是否有 tc 限速、Nginx limit_rate、Docker 网络限速、云厂商的安全组或带宽包限制。再确认测速时没有其他备份、同步、镜像拉取在跑,否则测的是混合流量。

怎么测才准

用 iperf3 多线程、同区域对端、低峰时段,跑 30 秒以上;再用 wget 多线程下载一个不限速的大文件交叉验证。单次结果波动大,测三次取中位数。

CDN 和代理的影响

开了 CDN 或反向代理,测速可能落到边缘节点,不代表源站带宽。测源站要绕过 CDN,直连源站 IP 并带 Host 头,或者用内网对端。

什么时候是服务商问题

多线程、就近对端、低峰都跑不满,mtr 显示机房出口或国际段丢包,基本是线路或共享带宽问题。把测试时间、对端、结果整理好,找服务商排查。

换线路值不值

如果用户主要在特定地区,换到离用户更近、回程更优的机房,体验提升明显;如果只是测速数字不好看、业务感知不强,不必为峰值多花钱。

带宽和延迟是两回事

带宽是“管子多粗”,延迟是“水多久到”。带宽跑满不代表延迟低,延迟低也不代表带宽大。网页打开慢,先看延迟和首包,再看带宽。

怎么和服务商沟通

把测试时间、对端 IP、线程数、结果、mtr 截图整理好,说明“多线程、低峰、就近对端仍跑不满”。只发一句“带宽不够”,客服很难定位。

测试记录模板

记录日期、时段、对端、线程数、平均速度、丢包率、mtr 关键跳。连续测三天,才能排除偶发波动。

常见测速误区

用浏览器下载、用国外测速站、开着代理测,结果都不可信。测速要控制变量:同一对端、同一时段、同样线程数,才能比较。

容器网络

Docker 默认 bridge 网络有 NAT 开销,高带宽场景可能成为瓶颈。需要高吞吐时用 host 网络或 macvlan,并确认 MTU 一致。

带宽和并发估算

页面越大、并发越高,需要的带宽越大。先算单次访问的平均字节数,再乘峰值并发,最后按缓存命中率打折,不要直接拿标称带宽套业务。

监控告警

把带宽利用率、重传率、丢包率接进监控,利用率长期低于 30% 说明买大了,长期高于 80% 才考虑升。

最后,带宽不是越大越好,按业务峰值和用户分布买,别为测速数字多花钱。

测试和优化都要有基线,记录每次调整前后的结果,才能知道哪一步有效。

带宽问题是排出来的,不是猜出来的。

把每次测试的条件和结果记下来,下次对比才有意义,坚持记录,别嫌麻烦,真的很有用,别偷懒了。

常见问题 FAQ

Q1:100Mbps 为什么下载只有 10MB/s?

10MB/s 约等于 80Mbps,算正常范围。加上协议开销、对端限速和磁盘写入,接近 12.5MB/s 已经不错。

Q2:单线程跑不满是服务器问题吗?

不一定。单条 TCP 受 RTT 和窗口限制,跨洲高延迟下很正常。用多线程复测再判断。

Q3:晚高峰掉速是超售吗?

可能是共享带宽争抢,也可能是国际线路拥塞。看是固定时段还是全天,再用 mtr 定位。

Q4:CPU 会影响带宽吗?

会。高带宽、加密、转发都会吃 CPU,单核打满时网络先到顶。看 si 和整体负载。

Q5:换机房能解决吗?

如果瓶颈在国际段或对端,换近一点的机房有用;如果是本机 CPU/磁盘,换机房没用。

总结

带宽跑不满,先查单位、单线程、对端和线路,再看 CPU/磁盘。多线程 + 就近对端 + 低峰时段,三项都正常还跑不满,才考虑换线路或机房。

需要一台线路更好的机器做对比测试,可以按小时开一台萤光云香港 CN2 VPS,用 iperf3 多线程测一轮。

相关推荐

赞(0)
未经允许不得转载:VPS知识分享站 » 云服务器带宽跑不满?先查单线程与线路