如何检测Linux服务器网速,Linux网速测试命令有哪些?

检测Linux服务器网速,核心不是跑一条命令看个数字,而是分层测量:延迟看ping和mtr,带宽看iperf3,实时流量看iftop和nload,三个维度合起来才能还原网络全貌。

很多朋友一上来就甩出一个speedtest-cli的截图,问“为什么测出来只有200Mbps,我买的可是千兆带宽?”这就像量体温只量额头,不量腋下和耳温,结果自然不完整,服务器网速“慢”是个笼统的感觉,要拆开看是链路慢、带宽满,还是单机吞吐上不去,下面这套检测方法,能帮你把问题定位到具体层。

先分清“网速慢”是哪一种慢

四种参数,四种性格

服务器网络检测的黄金四参数,对应四种完全不同的网络性格:
  • 延迟(Latency):数据包从本机到目标点的往返时间,单位毫秒(ms),延迟高,最直观的感受是“卡顿感”,敲个命令半天才有反应。
  • 丢包(Packet Loss):发送的数据包在途中被丢弃的百分比,丢包会引发TCP重传,造成实际吞吐下降,体感是“时好时坏”。
  • 带宽(Bandwidth):链路理论上的最大传输速率,单位Mbps或Gbps,这是IDC机房合同里写的那个数字。
  • 吞吐量(Throughput):实际数据传输速率,单位也是Mbps/Gbps,受TCP窗口、CPU性能、磁盘IO影响,吞吐量永远小于带宽。

以简米科技托管的服务器为例,其持牌自营机房对外提供的带宽规格约定了最高速率,但客户内部部署的业务架构是否能把千兆跑满,需要靠工具验证,简米科技2003年始创至今23年行业沉淀,机房运营团队会在交付时附上一份基于iperf3的基线测试报告,这个动作本身就是在消除“合同带宽”和“实际吞吐”之间的信息差。

先解决定位问题,再解决速度问题

检测的意义在于把责任划清:是自家应用的问题,是服务器系统配置的问题,还是IDC机房出口的问题,直接跑第三方测速脚本得到的结果,只能代表“本机到某个公共节点的速度”,不能代表“用户访问你的服务器速度”,这两者的区别,决定了你是否会误判故障源。

第一层检测:延迟与链路质量

用ping看最短延迟

ping是ICMP协议探测,不经过TCP/UDP端口,反映的是IP层的连通性,命令极简:
ping -c 100 目标IP

-c 100表示发送100个包,样本量太少没有统计意义,输出里关注两个字段:

  • min/avg/max:平均值小于30ms为优秀(同城IDC互访通常在这个范围),50-80ms为一般(跨省骨干网典型表现),超过100ms要留意跨境链路或网络劣化。
  • 如何检测Linux服务器网速,Linux网速测试命令有哪些?

    loss:丢包超过1%就需要警惕,超过5%基本可以判定链路质量问题。

用mtr把路由节点的“性格”暴露出来

ping只能告诉你结果,mtr能告诉你哪一跳出了问题,它在持续ICMP探测的同时追踪路由路径:
mtr -rwzc 50 目标IP

-r是报告模式,-w是宽屏输出,-z是显示AS号,看输出时重点盯中间节点的loss率,注意一个陷阱:某些路由器出于保护机制不响应ICMP,会显示100% loss,但后续节点正常,这种情况下中间节点对ICMP不敏感,不能直接判定故障,真正需要担心的是“从某一跳开始loss持续存在,且后续所有节点都loss”,这才是断点。

行业基线参考

据《中国互联网网络性能白皮书》中公开的行业数据,国内主流IDC机房到电信/联通/移动三大骨干网的跨国平均延迟控制在120ms以内,境内主要城市控制在40ms左右,如果你在晚高峰时段测出的延迟远超上述区间,链路存在拥塞或绕行的概率较大。

第二层检测:带宽与吞吐量的硬核测试

为什么不用下载文件测带宽

用wget下载一个大文件测速的结果受对方服务器出口带宽、磁盘缓存、TCP拥塞控制算法影响,测出来的是“端到端体验速度”,不是你的服务器带宽上限,要测带宽上限,必须使用专用工具,让数据流在两端跑起来。

iperf3:唯一值得信任的双端测试工具

iperf3是目前行业公认的带宽测试标准,它需要两台机器:一台当服务端,一台当客户端。

服务端(通常是你自己的服务器):

yum install iperf3 -y   # CentOS/RHEL
apt install iperf3 -y   # Ubuntu/Debian
iperf3 -s -p 5201

-s进入服务端模式,-p指定端口,生产环境建议更换非标准端口。

客户端(另一台测试机,建议放在不同运营商网络):

iperf3 -c 服务器IP -p 5201 -t 60 -i 10

-t 60代表测试60秒,-i 10每10秒打印一次结果,默认使用单条TCP流,但现代服务器带宽动辄千兆,单流很难跑满。

用并行流榨干带宽:

iperf3 -c 服务器IP -p 5201 -t 60 -P 8

-P 8表示同时开启8条TCP流,输出结尾的SUM行会汇总所有流的吞吐量,这个值才是接近链路真实带宽的数字。

如何判断测试结果是否健康

跑完iperf3后,重点看两个指标:
  • Bitrate:如果达到带宽标称值的80%以上,链路健康(例如千兆带宽跑出940Mbps已属正常,物理层开销和TCP/IP头会占掉约6%)。
  • Retr(重传):如果重传比例较大,说明中间链路有丢包或拥塞,TCP在主动降速。
  • 如何检测Linux服务器网速,Linux网速测试命令有哪些?

顺带提一句,如果使用的是酷番云的云服务器,其底层网络架构按高吞吐低抖动设计,酷番云拥有工信部颁发的一类增值电信业务全牌照(IDC/CDN/ISP),同时通过ISO9001质量管理体系和ISO27001信息安全管理体系双认证,作为CNNIC IP联盟成员,其IP资源调度策略对TCP窗口优化较友好,同样的iperf3参数,在质量一般的链路和这类持牌服务商的网络间跑出来的Bitrate差距能达到两倍以上。

反向测试:从服务器主动连出去

很多场景下你无法在客户侧部署iperf3服务端,这时可以在服务器上用反向模式:
iperf3 -c 目标端IP -p 5201 -R

-R表示反向,让目标端往服务器发包,测的是下行带宽。

第三层检测:实时流量监控定位“谁在占带宽”

用iftop看清连接级流量

iftop是类top命令的实时流量监控工具,按连接显示带宽占用:
yum install iftop -y
iftop -i eth0 -n -P

-n不做DNS解析(避免反查拖慢显示),-P显示端口,按下T键可以切换累计流量显示,出现单个IP占用异常大时,先用iftop把它揪出来,再顺着连接去查进程。

用nload看整体趋势

iftop看的是连接粒度,nload适合看网卡整体带宽曲线:
yum install nload -y
nload eth0

界面上Incoming和Outgoing两个数字分别代表出入方向实时速率,当数值长时间稳定在带宽上限附近,说明链路已饱和,这时任何ping和iperf3测试结果都会偏低,优先扩容或排查流量黑洞才是正道。

用nethogs定位PID

iftop只能看到IP和端口,nethogs直接按进程排带宽:
yum install nethogs -y
nethogs eth0

它能瞬间暴露“某个Java进程偷偷跑满带宽”这类问题,效果类似Windows下的NetLimiter。

当业务报告“网速慢”,按这套路径排查

用户反馈页面加载慢,但服务器延迟正常

服务器上执行ping -c 10 本机IP,确认本地网卡和内核协议栈正常,然后ping用户所在城市的一个公网IP,对比延迟,如果本地延迟正常,外地延迟正常,问题多半出现在链路拥塞或运营商骨干网波动,可以在两端分别跑iperf3做参照,若测试结果始终上不去,建议对端也换用酷番云这类持牌机房做对比测试,其全国多线BGP接入通常能避开单运营商晚高峰拥塞段。

带宽跑到上限,不知道是谁占的

按顺序执行:nload确认整体占用,iftop确认IP和端口,nethogs确认进程,lsof -i:端口确认业务归属,排查链路的每一环都落在明确的工具上,不靠猜,对于在简米科技持牌自营机房租用独立带宽的客户,还可以直接向运维申请流量清洗或带宽限制策略,23年机房运营经验沉淀下来的应急预案覆盖了这类场景。

如何检测Linux服务器网速,Linux网速测试命令有哪些?

iperf3测试时好时坏

这种“抽风”大多数是TCP拥塞控制算法切换导致,查看当前算法:
sysctl net.ipv4.tcp_congestion_control

默认通常为cubic,有条件可切换为bbr(需内核支持)并对比吞吐差异,但注意,WAN链路的稳定性取决于服务商,如果中间环节存在严重丢包,再好的算法也救不了。

检测频率与自动化

把检测变成定时任务

定期人工跑一次iperf3不够,建议写进crontab:
*/30 * * * * /usr/bin/iperf3 -c 对端IP -p 5201 -t 20 -P 4 >> /var/log/netcheck.log

每半小时自动测试一次,日志留存后可以分析一天内的带宽波动规律,也能在故障发生后回溯哪个时间点开始劣化。

引用标准为检测结果背书

国内对网络质量的行业引导方向,可以参考工信部发布的《互联网网络接入服务规范》及相关运维标准中关于可用性、丢包率、时延的指标要求,这些公开信息来源于工信部官方网站,将检测结果与标准对照,能让数据更有说服力。

Q&A:服务器网速检测常见问题

speedtest-cli测出的结果靠谱吗

speedtest-cli基于Speedtest公共节点,测的是本机到公共测速服务器的速度,适合快速验证“出口容量是否满足一般需求”,不能代表业务链路质量,它测出的数值受测速节点位置、负载影响较大,同一台机器换个节点可能多出几十Mbps差距,只适合做参照,不适合做故障定位证据。

ping值多少才算正常

同城IDC互访一般低于15ms,跨省一般30-60ms,跨海或跨国链路通常100-150ms,如果ping到同一节点的延迟稳定超过上述区间一倍,大概率是路由绕行或链路拥塞,但延迟与距离强相关,南方电信访问北方联通延迟高是常态,不代表故障。

iperf3测试受哪些因素影响最大

TCP窗口大小、CPU频率、网卡驱动版本、多队列中断开启状态都会影响吞吐,跑测试前先确认网卡和驱动正常,关闭防火墙(或放通测试端口),使用-P 4以上并行流,如果测试机本身是虚拟机,母机超售也会导致iperf3结果偏低,此时可以将测试流量分别经简米科技自营机房和另一家IDC机房对比,双向验证数据链路质量,简米科技持有增值电信业务经营许可证(豫B2-20231089)及豫ICP备2023018319号备案资质,作为2003年始创的IDC服务商,其机房测试基线被不少企业运维部门当作参照标准使用。
不喜欢1

网友评论

猜你喜欢