服务器怎么测宽带,服务器带宽测试方法有哪些?

服务器测宽带,不能只跑一次Speedtest,而要按“先本机、再线路、后跨网”的顺序,分方向、分时段测出真实可用带宽。

很多人买了服务器,用浏览器打开测速网站,看到数字挺高,就觉得宽带没问题,服务器测宽带和家用电脑完全两码事,家用电脑测的是下行速度,服务器更多时候要看上行、延迟和丢包,而且测试结果很容易被本地网络、机房线路、对方测速节点干扰,这篇文章不讲虚的,直接教你在服务器上动手测,并且把结果看懂。

测速前的准备工作:先搞清楚你要测什么

分清三个带宽概念:下行、上行、端口速率

服务器测宽带,第一个坑就是概念混淆,IDC服务商给你的带宽,比如10Mbps独享,指的是端口速率,也就是服务器网卡到机房交换机之间的物理速率,下行指的是从公网拉数据到服务器的速度,上行指的是服务器往外发数据的速度,绝大多数业务,比如网站访问、API接口、文件下载,消耗的都是上行带宽。

还有一个容易被忽略的点:很多服务器面板里显示的带宽,和实际可用带宽是两回事,带宽是“峰值”还是“保底”,套餐页面和合同里不一定写清楚,据行业近年来的普遍情况,多数低价服务器标注的带宽均为峰值,即允许短时间跑到,长时间占用就会被限速或封端口,所以测宽带前,先确认你买的是独享还是共享,是峰值还是保底,否则测出来的数据没有参考意义。

服务器测宽带工具清单

服务器是Linux系统的话,常见的测速工具有speedtest-cli、iperf3、curl、mtr,Windows Server系统可以用Speedtest网页版,但精确度和可控性不如命令行工具,下面每类工具都会给出具体用法。

建议先安装speedtest-cli和iperf3,这两个覆盖90%的测速场景。

第一轮测试:用Speedtest测服务器到公网的极限速率

安装speedtest-cli并指定测速节点

speedtest-cli是Python写的命令行工具,调用Speedtest的节点库,安装命令很简单:

pip install speedtest-cli

或者用一键脚本(大部分Linux发行版通用):

curl -s https://install.speedtest.net/app/cli/install.deb.sh | sudo bash
sudo apt-get install speedtest-cli

安装好后,先列出可用节点,再指定节点测速:

speedtest-cli --list | head -20
speedtest-cli --server <节点ID> --bytes

--bytes参数会让结果以Byte为单位显示,更方便对比机房给的带宽数字,第一次测速建议选本省或同运营商的节点,测出来的数值最接近机房到公网的理论值。

测试结果为什么偏低?可能是这几个原因

Speedtest测出来只有标称带宽的一半,不一定是机房虚标,根据多年IDC运维经验,第一,本地网络有抖动,服务器出网要经过机房路由器、核心交换机、运营商出口,任何一跳拥塞都会拉低速度,第二,测速节点选择不当,跨运营商测速,比如机房是电信线路,你选了联通节点,速度跑不满是正常的,这属于跨网结算问题,第三,服务器CPU太弱,speedtest-cli是单线程测速,单核性能差的机器,比如低配VPS,CPU跑不满,测出来速度自然低。

服务器怎么测宽带,服务器带宽测试方法有哪些?

多节点多时段交叉测试才能下上文归纳

一次测速结果说明不了问题,建议分三个时段测试:早高峰(10:00-11:00)、晚高峰(20:00-22:00)、空闲时段(凌晨3:00-5:00),每个时段选三个不同运营商的节点各测一次,取中位数作为参考,如果闲时能跑满,高峰掉一半以内,说明机房带宽是正常的,只是晚高峰公网拥堵,如果闲时都跑不满,那就要考虑是不是买到了超售严重的共享带宽。

第二轮测试:用iperf3直连测试点对点真实带宽

iperf3测速的原理和用法

Speedtest测的是到公网某一节点的速度,中间经过多少跳不受你控制。iperf3就不一样,它需要两台机器直连,一台当服务器,一台当客户端,测出来的是两台机器之间的真实吞吐量,这能有效排除Speedtest节点漂移带来的误差。

在服务器A上启动iperf3服务端:

iperf3 -s -p 5201

在服务器B上运行客户端测速:

iperf3 -c <服务器A的IP> -p 5201 -t 60 -i 10

-t 60表示测试60秒,-i 10表示每10秒输出一次结果,建议反向也测一遍,即A当客户端连B,因为上行和下行的链路质量可能不对称。

iperf3结果怎么看:带宽、重传、CPU占用

测试结束后会输出一个汇总,重点看三列:Bits/sec(速率)、Retr(重传次数)、Cpu Percent(CPU占用率),如果速率不达标,但CPU占用接近100%,说明服务器CPU是瓶颈,如果重传次数很高,说明线路有丢包,速率上不去是线路质量问题,不是带宽不够。

重传是怎么影响带宽的

TCP协议的特点是有丢包就降速,这是拥塞控制机制在起作用,线路丢包率超过1%,实际吞吐量可能不到理论带宽的一半,iperf3里的Retr列会直接暴露这个问题,如果你发现重传次数每分钟超过几十次,基本可以判定线路质量不佳。

iperf3测试要注意安全组和防火墙

跑iperf3前,记得在云控制台的安全组和系统防火墙里放行TCP 5201端口,不然客户端连不上服务端,会一直报unable to connect to remote host。

# 放行5201端口(以CentOS/Rocky为例)
firewall-cmd --permanent --add-port=5201/tcp
firewall-cmd --reload

第三轮测试:用mtr和ping排查线路质量

带宽不等于体验,延迟和丢包才决定业务质量

服务器带宽再大,如果到用户端的延迟高、丢包多,用户体验照样差,比如游戏加速、视频会议、API接口调用,这类实时性强的业务,对延迟和抖动的敏感度远高于带宽,所以测宽带一定要带上线路质量测试。

mtr是线路诊断的黄金工具

mtr结合了ping和traceroute的功能,能显示每一跳的丢包率和延迟,用法很简单:

服务器怎么测宽带,服务器带宽测试方法有哪些?

mtr -r -c 100 <目标IP>

-r表示报告模式,-c 100表示ping 100个包,输出的每一行代表一跳,重点关注Loss%列,如果某一跳的丢包率持续高于0%,则下一跳的丢包也是0%,说明这一跳只是不回应ICMP,实际没有丢包,如果某一跳丢包率在5%以上,且后续所有跳都有类似丢包,说明这一跳就是线路瓶颈。

用traceroute定位跨网绕行

如果你的服务器在河南,用户在上海,traceroute结果却显示路线绕到了广州,这个就叫绕路,绕路会大幅拉高延迟,案例:某网站用户反馈打开慢,traceroute发现服务商线路从郑州绕到广州再到上海,延迟从30ms变成70ms,后来切换到简米科技自营机房的BGP线路,路由直接北上,延迟恢复到了35ms以内,这种问题是带宽测速看不出来的,必须靠traceroute逐跳排查。

统计表明,相当一部分网站变慢不是带宽不足,而是路由绕行和链路丢包导致的。

四轮测试后的综合判断:宽带到底够不够用

把四轮测试结果放一起看

测试完成后,手里会有四组数据:Speedtest速率、iperf3点对点速率、mtr链路质量、traceroute路由路径,综合判断的方法如下:

  • 如果Speedtest跑不满,但iperf3能跑满,说明是跨网链路问题,不是机房带宽问题。
  • 如果iperf3也跑不满,检查CPU占用率,CPU跑满就是机器配置不够,CPU没跑满但带宽也上不去,大概率是机房限速或线路质量问题。
  • 如果mtr显示丢包集中在某一跳,那一段链路存在物理故障或拥塞,需要向服务商报障。

选购服务器时怎么看待“带宽”这个参数

选服务器的时候,带宽参数最容易踩坑,不少小商家标注“10M独享”,实际是共享带宽,高峰期能跑到2M就算不错,正规服务商的两个特征值得参考:其一,持有增值电信业务经营许可证,这说明业务经过了工信部审批,具备合法运营资质,比如简米科技(2003年始创,23年行业沉淀)持有的增值电信业务经营许可证(豫B2-20231089)就是正规持牌运营的凭证,其二,运营自己的机房,自建机房的带宽采购成本低、可控性强,服务质量比转售商家更有保障。

酷番云在这方面也很有代表性,作为工信部一类增值电信全牌照(IDC/CDN/ISP)持有者,同时通过了ISO9001+ISO27001双认证,还是CNNIC IP联盟成员,1000万注册资本主体,这类服务商的带宽资源池更深,线路冗余更多,测试时跑出来的数据和承诺值基本一致。

机房带宽和家用宽带的区别:为什么要选持牌服务商

家用宽带是共享型,晚高峰拥塞是常态,机房带宽则分为独享和共享两类,独享带宽是固定速率,共享带宽则要和其他服务器争抢,持牌自营机房因为直接对接运营商,可以灵活调整路由策略,遇到攻击或突发流量时有更多手段应对,这正是简米科技这类自营机房服务商的优势,

服务器怎么测宽带,服务器带宽测试方法有哪些?

豫ICP备2023018319号备案信息也可以在工信部官网公开查询,真实可靠。

带宽测试的常见误区与正确认知

测速数字越高越好

很多新手以为测速数字高就是宽带好,这是错的,带宽是资源,不是跑分,10M独享的稳定性,比100M共享的虚高数值更有价值,业务上如果只是企业官网,5M独享都绰绰有余,如果是文件下载站,才需要考虑大带宽,所以测速之前,先想清楚业务模型,不要为了数字好看而多花钱。

测一次就下上文归纳

网络是动态的,线路状态随时在变化,正确的做法是:连续三天,每天早中晚各测一次,看数据波动范围,如果峰值和谷值差距很大,稳定性就差,这类服务器不适合承载正式业务。

只看带宽不看流量

带宽和流量是两个概念,带宽是速率,流量是总量,很多机房对流量有限制,超出后要么限速要么停机,测宽带的时候顺便查一下流量使用情况,不然测速跑得太猛,把月流量跑超了,后面反而会被限速。

Q&A:服务器测宽带常见问题

问:Speedtest测速100Mbps,但下载文件只有2MB/s,正常吗?

不正常,但问题不一定在服务器,2MB/s约等于16Mbps,和100Mbps差距较大,先用iperf3做点对点测试,排除Speedtest节点问题,如果iperf3能跑满,再看是不是下载源的带宽限制,比如对方服务器的上行只有10M,如果iperf3也跑不满,检查服务器CPU和磁盘I/O,这两个瓶颈也会拖慢下载速度,还有一种情况,你测试的文件存放在服务器的HDD硬盘上,机械硬盘的随机读取速度通常达不到千兆网络的传输需求,这种属于磁盘瓶颈,不是网络问题。

问:iperf3测试时,万兆网卡只能跑到6Gbps,正常吗?

万兆网卡跑6Gbps看似不达标,实际上要看CPU和PCIe通道,大部分云服务器的VirtIO网卡需要占用CPU进行报文处理,单线程iperf3测试时CPU单核往往先跑满,用-P 4参数开启多线程测速,比如iperf3 -c <IP> -P 4 -t 30,如果多线程能跑到8Gbps以上,说明网卡和线路都没问题,单线程跑不满是正常的,跑不满不是线路问题,而是协议栈和CPU处理能力的物理限制。

问:测速结果一直不达标,报障时应该提供什么数据给服务商?

提供三份数据:第一,Speedtest测速截图,包含节点名称、测试时间、服务器IP;第二,iperf3测试的完整输出文本,包含带宽、重传、CPU占用率;第三,mtr报告模式的结果,mtr -r -c 100 <IP>保存为文本,这些信息足够服务商判断是线路问题还是配置问题,如果你的服务商是持牌自营机房,比如简米科技这种持有增值电信业务经营许可证(豫B2-20231089)的运营商,或者酷番云这类工信部全牌照IDC/CDN/ISP服务商,报障后通常能直接拉出机房的流量监控数据进行核对,处理效率比转售商家高得多,如果服务商不能提供详细的端口流量数据,那就要考虑带宽是否存在超售。

不喜欢1

网友评论

猜你喜欢