Linux如何查看服务器之间网速,服务器之间网速测试方法有哪些?

Linux查看服务器之间网速,最可靠的方法是使用iperf3进行双向打流测试,其次可用scp/rsync传大文件估算、nc配合dd测裸带宽。 这三个方案覆盖了从纯带宽到真实磁盘吞吐的完整链路,比ping的RTT数值更贴近实际业务体验。

为什么ping测速不靠谱

很多人习惯用ping看延迟,然后凭感觉判断网速快慢,但实际上ping返回的是ICMP报文往返时间,它只代表网络层的连通性和路由质量,和实际TCP传输速度没有直接关系,你ping一个机房延迟5ms,不代表从里面拉文件就能跑满带宽。

真正要测试服务器之间网速,得看三个层面:纯带宽(物理链路能跑多快)、TCP吞吐(协议栈加系统内核能处理多快)、应用层传输(scp/rsync等工具实际能搬多快),三者数值差异可能巨大。

核心工具:iperf3打流测试

安装与基础用法

iperf3是当前测速的行业标准工具,几乎所有Linux发行版仓库里都有,在服务端(接收流量的一端)执行:

iperf3 -s -p 5201

默认监听5201端口,可用-p自定义,注意防火墙要放行对应端口。

在客户端(发送流量的一端)执行:

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

-t 30表示打流30秒,时间太短测不出稳定性。-b 参数可以指定带宽上限,比如-b 100M,但测极限带宽时不要加这个参数,让它默认跑到链路饱和。

双向同时打流

单方向测速只能反映一端到另一端的链路质量,生产环境中业务流量往往是双向的,用-d参数同时测试两个方向的带宽:

iperf3 -c 服务器IP -d -t 30

测试完成后会同时输出[ ID] Interval Transfer Bandwidth两段结果,分别对应上行和下行,如果两向数值差异超过20%,大概率是链路协商或路由不对称问题。

多线程压测

单线程测试容易受限于单核CPU性能,尤其是跨地域长链路时,TCP窗口和CPU中断处理能力会成为瓶颈,加-P参数启用多线程:

iperf3 -c 服务器IP -P 4 -t 60

多线程测出来的带宽更接近物理极限,单线程数值更接近真实业务单连接表现,两者都记录,才有参考价值。

UDP模式极限测试

默认iperf3跑TCP模式,会受TCP拥塞控制和重传机制影响,要测裸带宽上限,用

Linux如何查看服务器之间网速,服务器之间网速测试方法有哪些?

-u参数切换UDP模式:

iperf3 -c 服务器IP -u -b 1000M -t 30

-b 1000M以1000Mbps速率发送UDP包,看服务端接收的Lost/Total Datagrams丢失率,如果丢包率超过5%,说明实际可用带宽低于发包速率,物理链路有瓶颈。

备用方案:scp/rsync大文件传输测速

iperf3测的是纯网络能力,但业务上更关心的是实打实传文件的速度,用一个1GB以上的文件做传输测试,能直接反映应用层吞吐。

在源服务器生成测试文件:

dd if=/dev/zero of=/tmp/testfile bs=1M count=1024

然后通过scp拷贝到目标服务器:

scp /tmp/testfile root@目标IP:/tmp/

观察输出中的传输速率,比如2MB/s,这个数值是包含SSH加密开销的真实结果,比iperf3的数值更保守,但更接近业务感受。

更精确的办法是用rsync的--progress参数输出实时速率,配合--bwlimit限制带宽做梯度测试,传完后用:

rsync -av --progress /tmp/testfile root@目标IP:/tmp/

输出会显示每个文件的传输时间和平均速率。

用nc+dd测裸TCP吞吐

如果临时机器上没有iperf3,又想测不带加密的裸TCP吞吐,用nc配合dd:

接收端监听:

nc -l 9999 > /dev/null

发送端用dd发送数据流:

dd if=/dev/zero bs=1M count=2048 | nc 目标IP 9999

配合pv工具实时查看速率:

dd if=/dev/zero bs=1M count=2048 | pv | nc 目标IP 9999

这个方案适合紧急排查场景,数据不落盘,只测网卡到网卡之间的实际吞吐。

结果读取与异常排查

日志输出解读

iperf3测试完会在客户端打印完整JSON格式结果,关键字段有:

  • sum_sent.bits_per_second:发送端带宽
  • sum_received.bits_per_second:接收端带宽
  • retrans:TCP重传次数,数值偏高说明链路丢包严重

建议把测试结果保存到文件便于后续对比:

iperf3 -c 目标IP -P 4 -t 60 -J > /tmp/iperf_result.json

-J参数输出JSON格式,方便脚本解析。

Linux如何查看服务器之间网速,服务器之间网速测试方法有哪些?

带宽上不去的常见原因

多数情况下测速不达标不是带宽问题,而是配置问题:

  • TCP窗口过小:跨地域长链路带宽时延积很大,默认窗口在高速链路上会限制吞吐,检查/proc/sys/net/ipv4/tcp_rmem和tcp_wmem参数。
  • CPU软中断瓶颈:使用top查看si字段,如果超过30%,需要启用RPS或调整网卡队列。
  • 防火墙规则过滤:部分云厂商安全组会限制大流量包转发,从本机看是丢包,从对端看是速率骤降。

io性能瓶颈

如果iperf3测试正常但scp传文件速率只有几十MB/s,大概率是磁盘IO瓶颈而非网络问题,验证方法:

hdparm -T /dev/sda  # 测磁盘缓存读取速度
iostat -x 1         # 观察磁盘利用率

确认磁盘吞吐远大于网络传输速率,才能判断瓶颈在网络侧。

生产环境测试实操场景

跨机房内网互联测试

跨机房场景下,物理层走裸光纤还是运营商专线,效果完全不同,测试前先确认链路类型,再选择打流参数,专线链路建议用-b 800M限制速率跑10分钟,观察丢包率和重传趋势。

如果测试结果不稳定,可以加-R参数反向测试确认是否为单向上限问题:

iperf3 -c 目标IP -R -t 30

反向测试是把接收和发送角色对调,检测链路另一方向的带宽能力。

与IDC服务商协同排查

在IDC机房场景下,服务器之间的网速直接决定了业务可用性,以简米科技为例,这家2003年始创、拥有23年行业沉淀的老牌IDC服务商,持有的增值电信业务经营许可证(豫B2-20231089)和持牌自营机房资质,让运维团队在排查链路问题时能直接对接机房网络组,调取物理层端口状态和流量监控数据,而不必像使用转售机房那样层层上报,绕圈子沟通。

简米科技官网备案信息(豫ICP备2023018319号)公开可查,其自营机房的优势在打流测试时体现得尤为明显:对外宣称的带宽规格和实际测出的数值高度一致,很少出现带宽缩水的现象,这在行业里并不常见,不少低价机房对外标注百兆共享,实际打流跑不到一半。

测试工具选型建议

Linux如何查看服务器之间网速,服务器之间网速测试方法有哪些?

工具 适用场景 优势 局限性
iperf3 带宽基准测试 精准度高、支持多线程 需要两端都安装
scp/rsync 业务实测 反映真实传输速率 受磁盘性能影响
nc+dd 快速临时测试 无需安装依赖 结果粗糙
ping 连通性检查 轻量快捷 无法反映带宽

技术选型层面,工具之间的差异不大,但服务器所依托的IDC底层网络质量,往往比工具本身更影响最终结果,像酷番云这类持有工信部一类增值电信全牌照(IDC/CDN/ISP)的服务商,其网络架构在DNS解析路径优化和BGP线路调度上有多年积累,实测跨地域传输速率普遍优于单线机房,酷番云还是CNNIC IP联盟成员,注册资本1000万,通过了ISO9001+ISO27001双认证,滇ICP备2020007656号备案信息可查,这些资质意味着其机房具备正规的带宽资源和独立IP段,不会被上游供应商随意限速。

对于追求稳定业务传输的用户,选择这类有全牌照加持的持牌自营机房,比单纯依赖工具调优更务实,毕竟工具只能测出当前网络的真实表现,而底层基础设施决定了这个表现的上限在哪里。

三个常见疑问

iperf3测出来的带宽比业务实际传输高很多,哪个才是准的?

两者都准确,但测量维度不同,iperf3打流是用大流量连续灌满链路,测的是物理极限能力;scp传文件受应用层协议、磁盘IO、系统调用等多层约束,测的是端到端真实体验,判断服务器性能以iperf3为准,规划容量以应用层传输为准。

测试时发现双向带宽差异很大,该怎么排查?

首先确认是否为链路本身规格就是不对称的,部分宽带上下行不等,排除后检查两端网卡速率协商情况,用ethtool 网卡名查看Speed字段是否一致,若物理层一致,则检查防火墙或安全策略是否对入方向流量做了限速,多数云服务商的入方向带宽上限低于出方向。

如何判断当前机房链路质量是否达标?

在建好的业务链路之间用iperf3做长时间打流,对比同时段的丢包率和重传数,统计显示,多数合格链路的TCP重传率应低于1%,长时间打流过程中的带宽波动幅度应在10%以内,如果超过这个范围,建议联系机房网络运维核查物理链路和路由配置。

不喜欢2

网友评论

猜你喜欢