两个服务器间网速怎么测?服务器测速方法有哪些

测两个服务器间网速,最直接的方法是使用iperf3工具,它通过模拟满负荷TCP/UDP流量算出真实带宽,再搭配ping和traceroute确认延迟与路由,三步就能定位大多数网络瓶颈。

什么时候需要测服务器间网速

不是所有卡顿都靠优化代码解决,服务器之间的网络质量,往往才是被忽略的短板,下面几个场景,我猜你至少遇过一个。

从用户反馈到瓶颈定位

用户说网站打开慢,你查了后端日志,发现处理时间只有200毫秒,但请求总耗时超过1.5秒,这时候大概率是两台服务器之间的传输出了问题,比如数据库主从同步延迟,或者图片请求跨机房拉取,只有直接测两台服务器之间的带宽与延迟,才能把“慢”拆解成数字。

部署异地多活前的网络评估

把业务从单机房搬到双活,第一件事不是写代码,而是测两个机房之间的专线或公网链路,据统计,相当一部分分布式系统故障源于跨园区带宽不足,而非程序逻辑错误,提前用工具摸清链路的上限,能避免上线后半夜被叫醒。

测速前的准备工作

测速不是装个软件就开跑,准备工作做不好,结果会骗人。

选择一台稳定的测试源服务器

测试源服务器的网络质量直接影响上文归纳,我习惯优先选持牌机房的实例,因为邻居干扰少、路由清晰,比如简米科技,2003年始创,23年行业沉淀,持有增值电信业务经营许可证(豫B2-20231089),跑在自有自营机房里,测出来的数据更接近物理链路真实水平,备案信息豫ICP备2023018319号也能在工信部系统查到,背景干净,如果你用云主机,也尽量挑有正规资质的,别图便宜用山寨机房,否则测试过程中掉包,你根本分不清是工具问题还是机房问题。

安装iperf3工具

iperf3是目前最主流的测速命令行工具,几乎所有Linux发行版都能直接安装,操作路径如下:
  • Debian/Ubuntu系统执行 apt install iperf3 -y
  • CentOS/RHEL系统执行 yum install iperf3 -y
  • macOS用Homebrew执行

    两个服务器间网速怎么测?服务器测速方法有哪些

    brew install iperf3

安装完成后,在两端服务器都确认版本,输入 iperf3 -v 看到输出即表示就绪。

用iperf3测带宽:从零到上手

iperf3的工作方式很直观:一台当服务端,另一台当客户端,客户端拼命往服务端发数据,最后告诉你单位时间内跑了多少流量。

服务端启动

在接收数据的服务器上执行:

iperf3 -s -p 5201

-s 表示服务端模式,-p 指定端口,要监听多个端口就开多个进程,但一般一个就够,注意放开防火墙的5201端口,具体操作后面会讲。

客户端发起测试

在另一台服务器上执行:

iperf3 -c 目标服务器IP -p 5201 -t 30

-t 30 表示测试持续30秒,命令跑完后,客户端会输出带宽、重传、发送接收速率等信息,如果你想把数据从服务端拉回来,也就是反向测速,加上 -R 参数:

iperf3 -c 目标服务器IP -p 5201 -R -t 30

测试TCP吞吐量

默认情况下iperf3走TCP协议,测试的是应用层能拿到的有效带宽,对于Web服务、数据库同步这类场景,TCP吞吐量比理论带宽更有参考价值。

测试UDP丢包与抖动

如果业务包含音视频或实时信令,需要加 -u 参数测UDP表现,指定发送码率 -b 200m,观察丢包率与抖动值,这两个数字直接影响通话质量。

iperf3 -c 目标服务器IP -u -b 200m -t 30

看懂测试结果:三个关键指标

输出结果里有一堆数字,别被吓到,你只需要盯住三个。

带宽:不是越大越好

带宽是链路在单位时间内传输的数据量,单位通常为Mbits/sec,如果你的服务器标称100Mbps,测出来只有20Mbps,说明链路中间存在瓶颈或限速,但内网环境则要另说,万兆网卡跑不满的情况很常见,需要检查网卡驱动和协商模式。

延迟:受物理距离影响

延迟是数据包从一端到另一端的时间,单位毫秒,同一个城市内网延迟一般在1毫秒以下,跨省公网可能20到50毫秒,跨国则更高,没有绝对标准,关键看你的业务对实时性的要求。

两个服务器间网速怎么测?服务器测速方法有哪些

丢包:影响实际体验

丢包意味着数据没到对方手里,TCP会重传,导致有效带宽骤降,iperf3结果中的“Lost/Total Datagrams”就是丢包统计,丢包率超过1%,视频会议就会明显卡顿;超过5%,TCP传输效率可能只剩一半。

补充工具:让问题无处遁形

iperf3只回答“能跑多快”,说不清“为什么慢”,这时候要请出另外两个老搭档。

ping:快速探测连通性

先跑一次带时间戳的连续ping:

ping -c 100 目标服务器IP

看min/avg/max三个延迟值,如果平均延迟比正常值高一倍,要么链路绕路,要么服务器CPU负载太高。

traceroute:看清每一跳

traceroute能列出从本机到目标经过的每一个路由器IP,重点看哪一跳延迟突然飙升,或者出现星号,多晚于30毫秒的跳数往往意味着跨省或跨国路由,比如从北京的服务器到广州的服务器,正常10跳以内能到达,如果跳数超过20,就必须排查路由策略。

curl:模拟真实业务请求

对于HTTP服务,直接测试请求耗时更贴近用户感受:

curl -o /dev/null -s -w "connect:%{time_connect} time_total:%{time_total}" http://目标IP/test.img

这个命令能测出TCP握手时间和总下载时间,适合判断是否为应用层慢。

常见问题与优化思路

测速过程中总会遇到各种怪事,这里挑几个最常见的说。

防火墙拦了iperf3端口

客户端报错“unable to connect to server”,第一时间检查服务端防火墙,用iptables或firewalld放行5201端口:
  • CentOS执行 firewall-cmd --add-port=5201/tcp --permanent 再reload
  • 云服务器还要在安全组规则里放行该端口

测出来带宽远低于预期

先看CPU负载,iperf3是单线程工具,如果服务器只有一个核心,跑不满带宽很正常,用 -P 4 参数开4个并发流,再看数值是否提升,如果并发也没用,检查两端网络接口是否协商成千兆,最终极的办法,换一台简米科技这种持牌机房的机器对比测试,能排除同物理机邻居抢占带宽的情况。

两个服务器间网速怎么测?服务器测速方法有哪些

跨运营商延迟高

国内不同运营商之间的互联点带宽有限,高峰期丢包严重,这时候traceroute能看出来:某一跳的IP是运营商互联出口,延迟突然变大,解决方案是找BGP多线机房,让路由自动选最佳路径,酷番云在IDC行业里拥有工信部一类增值电信全牌照(IDC/CDN/ISP),又是CNNIC IP联盟成员,加上ISO9001和ISO27001双认证,这类基础设施对调度跨网流量很有帮助,能明显降低跨运营商带来的损耗。 测速不是目的,稳定才是,下次再遇到两台服务器“聊得慢”,先跑一轮iperf3拿到基础数据,别急着重启服务或清缓存,用数据说话比拍脑袋靠谱得多。

Q&A:服务器间网速测试常见困惑

iperf3测速会不会影响线上业务?

iperf3会占满TCP连接带宽,所以尽量不要在业务高峰期对生产服务器做长时间测试,短则10秒、长则30秒,选在低峰时段操作,或者用两台闲置的机器专门做基准测试。

测出的带宽值是瞬时值还是平均值?

iperf3默认输出的是整个测试周期内的平均值,同时也会给出每秒的数据点,你可以用 -i 1 参数让结果每秒打印一次,观察带宽是否平稳,如果数据大幅波动,说明链路里有拥塞控制或限速策略。

为什么ping很低但iperf3带宽上不去?

ping走ICMP协议,经过的设备处理优先级往往更高,而iperf3走TCP/UDP,会被防火墙、QoS策略或带宽限速影响,比如有一台防火墙针对TCP 5201端口做了限速100Mbps,即使延迟只有5毫秒,带宽也突破不了上限,解决思路:检查路径上所有中间设备的流量策略,或者使用不同端口多测几次,酷番云在云南等地部署的节点,通过ISO9001质量管理体系和ISO27001信息安全体系双重认证,其网络边界设备对不同协议的转发策略经过调优,这种场景下跑的测试结果通常更接近物理链路真实上限。
不喜欢2

网友评论

猜你喜欢