上一篇 下一篇 分享链接 返回 返回顶部

如何用吞吐量与CPU负载区分海外服务器网络瓶颈和性能不足?

发布人:Minchunlin 发布时间:2026-10-06 14:49 阅读量:11

海外服务器带宽不足,通常表现为出站或入站吞吐量在业务高峰期长期贴近线路、实例或服务商设定的上限,传输速度出现平台期;同时连接队列、TCP重传、请求响应时间和超时数量可能同步上升。但吞吐量下降并不等于带宽不足,CPU计算、内存回收、磁盘等待、数据库锁等待、应用线程池耗尽,以及跨地域链路丢包,都可能让业务变慢。

区分网络瓶颈和服务器性能不足,不能只看CPU使用率或某一时刻的网卡速率。更可靠的做法是建立同一时间窗口,把网络吞吐量、CPU用户态与系统态占用、内存压力、磁盘I/O、TCP重传、队列长度、请求延迟和错误率放在一起比较,再排除客户端区域、应用并发和数据库等待等替代解释,最后通过相同条件复测。

一、先明确要观察的“吞吐量”和“负载”

带宽、吞吐量与业务传输量不是同一个指标

带宽更接近线路或端口的容量上限,吞吐量是某一时间段内实际传输的数据量。海外服务器可能同时受到以下几层限制:

  • 云服务器或物理服务器网卡的端口速率;
  • 服务商套餐的入站或出站带宽上限;
  • 虚拟化平台对实例的突发带宽和持续带宽限制;
  • 操作系统、网卡队列和TCP连接的处理能力;
  • 远端用户所在地区、运营商和跨境链路的实际质量;
  • 应用自身生成或发送数据的速度。

因此,监控中看到的网卡发送速率为 300 Mbps,并不能直接说明购买了 1 Gbps 带宽却只使用了 30%。应用可能只产生了 300 Mbps 数据,也可能因为CPU、磁盘或数据库等待,根本没有能力生成更多数据。

数据量换算时还要区分字节和比特。按十进制口径,1 GB 数据在60秒内传完,对应的平均速率为:

1 GB × 8 × 1000 ÷ 60 = 133.3 Mbps

如果60秒内传输的是10 GB,则平均速率为:

10 GB × 8 × 1000 ÷ 60 = 1333.3 Mbps

这个结果已经超过1 Gbps线路的理论速率,实际传输还会受到协议头、加密、重传和应用响应的影响。不要把 GB/s、GB、Gbps 和 Mbps混为一谈。

CPU负载也不能只看一个百分比

CPU使用率要拆成不同来源:

  • user:应用程序执行消耗;
  • system:内核、网络协议栈、系统调用等消耗;
  • iowait:CPU等待磁盘或其他块设备I/O完成的时间;
  • steal:虚拟机被宿主机调度出去的时间;
  • idle:空闲时间。

load average则主要反映处于可运行状态或不可中断等待状态的任务数量,不等同于CPU使用率。磁盘卡顿时,即使CPU还有较多空闲,负载平均值也可能明显升高。

例如,4核服务器的CPU总使用率为60%,但其中 iowait 为35%,这并不表示应用只用了60%的计算能力后仍然运行良好,而可能表示大量请求在等待磁盘。相反,CPU总使用率95%,其中用户态占90%,运行队列持续高于CPU核心数,才更接近计算资源不足。

同一个时间窗口应至少记录这些指标

指标类别建议观察项能够回答的问题
网络吞吐量网卡发送、接收速率,应用发送字节数是否真的接近端口或套餐上限
网络质量RTT、抖动、丢包、TCP重传、发送队列是容量不足,还是链路质量不稳定
CPUuser、system、iowait、steal、每核占用、运行队列是否存在计算、内核处理或虚拟化调度压力
内存available、swap in/out、缺页、回收活动是否因内存压力导致系统变慢
磁盘I/OIOPS、吞吐量、await、util、队列深度请求是否在等待存储
应用请求数、p50/p95/p99、工作线程、连接池、队列延迟发生在应用处理还是网络传输
数据库查询耗时、锁等待、活跃连接、慢查询、缓存命中是否是数据库成为上游瓶颈
结果指标超时率、4xx、5xx、断开连接数性能变化是否已经影响业务

这些指标不必全部采用相同的采样间隔。系统指标可以按1秒或5秒采样,请求延迟可以按1分钟统计分位数,数据库锁等待可以按请求或事务记录。关键是时间戳统一,能够把同一时刻的变化对齐。

二、建立观察窗口,而不是凭单点数值下结论

同时保存基线、异常和恢复阶段

性能判断至少要包含三个阶段:

  1. 基线阶段:业务正常时记录10至30分钟,覆盖普通流量和一次常见高峰。
  2. 异常阶段:从问题发生前几分钟开始,持续记录到延迟、错误率或吞吐量恢复。
  3. 复测阶段:在相同请求类型、相近并发量和相同地域条件下重新观察。

如果只有异常时的一次CPU截图,就无法判断CPU是原因还是结果。例如,网络拥塞可能使应用连接长时间不结束,最终导致工作线程堆积,随后CPU和负载才升高。此时“CPU升高”和“业务变慢”同时出现,但CPU不一定是最初的瓶颈。

用变化关系代替固定阈值

不建议单独使用“CPU超过80%就是性能不足”或“网卡超过70%就是带宽不够”这样的规则。更有价值的是观察指标之间是否同步变化:

  • 吞吐量升高后是否在一个稳定平台停住;
  • 网卡接近上限时,CPU、磁盘和数据库是否仍有余量;
  • 响应时间增加时,TCP重传是否同步增加;
  • 请求队列变长前,究竟是网络发送队列、应用队列还是数据库锁等待先变化;
  • 降低并发后,问题是否迅速消失;
  • 更换访问地域后,服务器端指标是否仍然保持异常。

如果指标变化存在稳定的先后顺序,因果判断会比单点阈值更可信。

三、带宽不足通常会呈现怎样的联动信号

1. 吞吐量接近上限并出现平台期

最典型的容量型网络瓶颈,是发送或接收速率随着并发增加而上升,随后在某个水平附近长时间停留。此时应用仍有未完成的发送任务,但网卡或上游线路无法继续提高传输速度。

常见表现包括:

  • 出站流量长期接近实例或端口的配置上限;
  • 下载、视频、文件分发等大流量业务速度出现平台期;
  • 增加并发连接后,总吞吐量不再明显上升,但排队时间增加;
  • 服务器CPU、内存和磁盘利用率没有同步达到高位;
  • 单个请求的传输耗时变长,p95或p99延迟高于p50;
  • 连接数、发送队列或应用待发送队列增加;
  • 限速发生在发送方向,而不是所有方向同时异常。

例如,某服务器的理论出站上限约为1 Gbps,模拟监控数据如下:

三、带宽不足通常会呈现怎样的联动信号配图

时间段出站吞吐量CPU总占用磁盘iowaitTCP重传占比请求p955xx比例
正常阶段420 Mbps34%2%0.3%210 ms0.1%
流量增加后760 Mbps39%3%0.8%380 ms0.2%
高峰阶段880 Mbps42%3%3.5%960 ms0.9%
持续高峰885 Mbps41%4%4.1%1.1 s1.2%

这组数据只是用于说明判断过程的模拟样例,不代表实际监控结果。它的关键不在于“880 Mbps”这个绝对值,而在于:吞吐量逐步上升后停在接近1 Gbps的水平,CPU和磁盘仍有明显余量,延迟、重传和错误率随后同步恶化。此时应优先核对出站带宽限制、端口速率、实例套餐策略和出口设备队列。

2. 吞吐量不高,也可能是网络质量瓶颈

“带宽不够”有两种常被混淆的情况:

三、带宽不足通常会呈现怎样的联动信号配图

  • 容量型不足:线路或端口的可用容量本身不够;
  • 质量型异常:线路容量可能充足,但跨地域路径存在丢包、抖动、拥塞或路由绕行。

质量型问题未必会让网卡吞吐量贴近上限。TCP发现丢包后会降低发送窗口,重传和等待会让实际吞吐量反而变低。海外访问中,跨地域RTT较高会延长拥塞控制收敛时间;如果同时发生丢包,单个连接的有效传输速度会更加明显地下降。

质量型网络问题常见的联动关系是:

  • 只有某个国家、地区或运营商的访问变慢;
  • 服务器CPU和磁盘利用率正常;
  • 服务器端看到的业务吞吐量不高,甚至低于平时;
  • RTT、抖动、TCP重传或连接重置数量上升;
  • 小请求也可能出现偶发超时,大文件下载速度波动明显;
  • 更换访问区域后,延迟和错误率差异较大。

因此,不能因为网卡只有200 Mbps就排除网络问题。若该200 Mbps伴随着较高重传、发送窗口缩小和远端区域延迟升高,问题更可能在链路质量,而不是服务器算力。

3. 发送方向和接收方向要分开判断

海外服务器常见的业务方向并不相同:

  • 网站、接口和文件分发通常更关注服务器出站流量;
  • 用户上传、备份回传、日志接收更关注入站流量;
  • 数据库复制、对象存储同步可能是固定方向的后台流量;
  • 多个业务共享一条出口时,后台同步可能挤占前台请求。

如果只看“总流量”,容易把入站高峰和出站高峰混在一起。应分别记录 rx 和 tx,并尽量与应用层的发送字节、接收字节对应。应用日志显示响应内容只有几百MB,但网卡出站达到数GB,可能存在重复传输、重试、后台同步或其他服务占用出口。

四、服务器性能不足时,吞吐量通常不是第一限制

网络传输只是请求链路中的一段。应用在生成响应前,还要经过业务计算、内存分配、文件读取、数据库查询和线程调度。只要其中任一环节耗时增加,网卡就可能因为“没有数据可发”而保持低利用率。

CPU瓶颈:高计算占用与高运行队列同时出现

CPU不足更接近以下组合,而不是单独看到CPU百分比升高:

  • 用户态或系统态占用持续接近高位;
  • 某些CPU核心先达到饱和,平均值却没有达到100%;
  • 运行队列持续增加;
  • 应用处理耗时上升,但TCP重传并未同步明显增加;
  • 服务器出站吞吐量低于带宽上限;
  • 降低并发或暂停某类计算任务后,响应时间快速恢复;
  • 应用进程、压缩、加密、序列化、正则匹配或脚本执行占用了主要CPU。

多核服务器中,平均CPU使用率可能掩盖单核瓶颈。例如8核实例的总CPU占用为45%,但一个单线程事件循环所在核心接近100%,请求仍可能排队。需要同时看每个核心、进程级CPU和应用线程池状态。

CPU瓶颈的示例数据如下:

时间段出站吞吐量CPU总占用最高单核占用运行队列TCP重传请求p95
正常阶段260 Mbps48%72%20.2%180 ms
业务计算增加300 Mbps78%100%70.3%520 ms
高并发阶段315 Mbps93%100%140.4%1.2 s

这同样是解释机制的模拟数据。虽然请求延迟上升,但出站吞吐量只从260 Mbps增加到315 Mbps,远没有接近线路上限;与此同时,CPU核心和运行队列先达到高位,重传变化很小,更支持“服务器计算能力或应用处理能力不足”的判断。

内存瓶颈:不要只看free内存

Linux系统中,free较低并不一定代表内存不足,因为系统会利用空闲内存作为文件缓存。判断内存压力时,应联动观察:

  • available是否持续下降;
  • 是否出现明显的swap写入和读入;
  • 进程缺页、内存回收和直接回收是否增加;
  • 应用是否频繁触发垃圾回收;
  • 磁盘I/O是否随内存回收同步升高;
  • 请求延迟和错误率是否在内存压力出现后变化。

内存不足可能间接制造“网络变慢”的错觉。比如应用响应需要从缓存中读取数据,内存紧张后频繁从磁盘换入,CPU并不一定满载,网卡吞吐量也不高,但请求处理时间会显著增加。如果只看网卡速率,可能误判为海外网络质量问题。

磁盘瓶颈:低磁盘吞吐量不代表磁盘没有问题

磁盘性能不能只看MB/s。随机读写、同步写入和小文件操作可能在吞吐量不高的情况下消耗大量IOPS,并使请求排队。

需要同时观察:

  • await:一次I/O从提交到完成的平均等待时间;
  • util:设备忙碌时间比例;
  • I/O队列长度;
  • 读写IOPS;
  • 应用的文件读写耗时;
  • iowait是否随磁盘队列同步升高;
  • 数据库查询、日志写入是否与磁盘延迟同时恶化。

磁盘瓶颈常见的表现是:服务器网络吞吐量不高,CPU用户态占用一般,但iowait、磁盘等待和应用响应时间同时升高。若降低日志级别、减少批量写入或暂停非关键备份任务后延迟恢复,磁盘方向的解释更有依据。

数据库瓶颈:CPU不高也能拖慢整条请求链

数据库等待经常被误认为网络慢,尤其是海外服务器访问远端数据库或数据库连接池配置不合理时。需要区分以下情况:

  • 查询本身执行时间变长;
  • 锁等待和事务阻塞增加;
  • 活跃连接数接近连接池上限;
  • 数据库CPU或磁盘达到瓶颈;
  • 应用线程都在等待数据库返回;
  • 数据库与应用之间RTT较高,频繁的小查询放大了等待时间;
  • 查询结果较大,数据库已完成计算,但应用仍在等待数据接收。

如果应用请求p95从200ms升到2s,服务器出站吞吐量没有明显增加,CPU为35%,磁盘iowait为5%,但数据库锁等待从几毫秒升至800ms,那么优先方向应是数据库事务和连接池,而不是购买更多带宽。

应用瓶颈:工作线程和队列可能先于系统资源报警

应用层资源耗尽时,服务器硬件监控可能看起来并不紧张。典型指标包括:

  • 工作线程、进程或事件循环达到上限;
  • 请求队列长度持续增加;
  • 连接池等待时间上升;
  • 上游服务响应慢,导致本地线程被占用;
  • 垃圾回收暂停、运行时锁竞争或线程锁等待增加;
  • 应用返回超时,但网络重传没有明显增加;
  • 降低并发后,请求耗时迅速回落。

此类问题的关键是把“请求排队时间”和“实际处理时间”拆开。如果排队时间占总耗时的大部分,继续增加带宽通常无法解决工作线程不足。

五、把网络瓶颈与服务器瓶颈放在同一张对照表中

观察组合更可能的原因需要进一步核对
出站吞吐量贴近上限,CPU和磁盘有余量,发送队列变长出口容量或套餐限速实例带宽、端口速率、服务商限速、其他业务占用
出站吞吐量不高,CPU用户态高,运行队列持续增加CPU或应用计算不足每核占用、进程CPU、线程池、压缩和加密任务
吞吐量不高,iowait、await和I/O队列同时升高磁盘或存储延迟设备利用率、读写类型、备份和日志任务
吞吐量不高,available下降,swap活动增加内存压力内存回收、进程RSS、缓存占用、交换分区
CPU和磁盘正常,数据库锁等待或连接池等待增加数据库瓶颈慢查询、锁、连接数、数据库网络延迟
只有部分地区变慢,RTT和重传升高跨地域链路质量或路由问题地区对比、运营商对比、路径变化
多地区同时变慢,服务器队列和应用耗时同步增加源站或应用性能不足应用日志、进程状态、数据库和存储指标
服务器端指标正常,但客户端经常超时客户端网络、路径或中间设备问题不同地区、不同运营商和不同协议的对比

这张表只能用于建立候选方向。比如出口容量不足也可能让应用线程堆积,CPU随后升高;数据库查询慢也可能让连接持续占用,最终带来网络连接数增加。因此仍需观察指标的时间先后关系。

六、按“变化—联动—排除—复测”执行判断

第一步:确定业务和网络的观察边界

先确认问题到底是:

  • 文件下载速度慢;
  • 页面首字节时间变长;
  • 接口整体响应变慢;
  • 上传速度下降;
  • 连接建立失败;
  • 跨地域用户更明显;
  • 只有特定业务或特定时间段发生。

然后记录请求方向、数据量和访问地域。一个返回2KB JSON的接口,和一个持续发送2GB文件的下载接口,不能用同一套吞吐量直觉判断。

同时记录当前实例的:

  • CPU核心数和虚拟化类型;
  • 内存容量和交换空间;
  • 磁盘类型;
  • 网卡名称和速率;
  • 出入站带宽限制;
  • 业务进程与数据库所在位置;
  • 是否存在备份、同步、日志采集等后台任务。

第二步:同时采集系统和网络指标

在Linux服务器上,可以使用只读监控命令进行初步观察。下面的命令不修改系统配置,但需要根据发行版确认工具是否已安装,并将网卡名称替换为实际接口。

date
uptime
nproc

mpstat -P ALL 1 10
vmstat 1 10
iostat -xz 1 10
sar -n DEV 1 10

ss -s
ip -s link show dev eth0

这些命令的观察重点如下:

  • mpstat:看总CPU和每个CPU核心是否有单点饱和;
  • vmstat:看运行队列、内存、swap和iowait变化;
  • iostat -xz:看设备等待时间、利用率和队列;
  • sar -n DEV:看网卡的接收和发送速率;
  • ss -s:看连接总量和TCP连接状态;
  • ip -s link:看网卡收发包、丢包和错误计数。

如果已经确定某个进程与问题相关,可以进一步观察进程级资源变化:

pidstat -u -r -d -p  1 10

需要替换为实际进程号。该命令可以辅助判断进程CPU、缺页和磁盘读写活动,但不等同于应用层性能分析。仍应结合应用日志中的请求耗时、排队时间、状态码和请求大小。

部分系统还提供TCP统计信息,可在确认工具可用后查看:

command -v sar
command -v nstat
nstat -az

如果不同发行版的统计字段名称不一致,应以本机帮助信息和实际输出为准,不要直接套用其他系统的字段解释。

第三步:把网卡速率与应用字节数对应起来

网卡发送速率只能说明接口层传输量,不能直接说明某个应用占用了多少带宽。需要把以下数据对齐:

  • 网卡发送和接收字节数;
  • Web服务器或应用记录的响应字节数;
  • 数据库复制、备份和日志传输量;
  • 同一时间段的请求数量和平均响应大小;
  • TCP重传造成的额外流量。

例如,某接口每分钟处理6000个请求,每个响应平均500KB,则理论业务响应量约为:

6000 × 500 KB = 3,000,000 KB

按十进制换算约为3 GB。若该业务持续1分钟,理论有效业务速率为:

3 GB × 8 × 1000 ÷ 60 = 400 Mbps

如果网卡出站达到700 Mbps,需要进一步解释多出来的部分,可能来自响应头、协议开销、重传、其他业务或后台同步。反过来,如果网卡只有200 Mbps,但接口计算出的业务数据量应为400 Mbps,可能是请求并没有真正完成发送,或者应用统计口径与网卡时间窗口不一致。

第四步:排除“看起来像带宽不足”的替代解释

排除客户端和地域因素

如果只有某个地区访问慢,先做地区对比:

  • 同一接口、同一响应大小;
  • 相同时间段;
  • 不同国家或运营商;
  • 相近并发量;
  • 对比TTFB、总响应时间、重传和错误率。

服务器端CPU、磁盘、应用队列都正常,而某一地区的RTT、抖动和重传明显高于其他地区,更接近路径质量问题。需要注意,ping无响应不能单独证明链路中断,因为设备可能限制ICMP;路径探测中的某一跳丢包,也不能直接等同于端到端业务丢包,应结合最终目的地和TCP数据判断。

排除后台流量抢占

检查是否存在:

  • 定时备份;
  • 文件同步;
  • 数据库复制;
  • 日志上传;
  • 镜像拉取或推送;
  • 批量下载;
  • 其他租户或容器共享出口。

如果后台任务开始后出站吞吐量接近上限,前台请求延迟同步升高,但CPU和磁盘仍然正常,表面上像“带宽突然不够”,实际可能是带宽被额外任务占用。需要按进程、容器或服务拆分流量,而不是只看整台服务器网卡。

排除连接数和端口资源问题

连接建立失败不一定由带宽不足引起。还要观察:

  • 连接状态是否大量处于SYN-SENT、SYN-RECV或TIME-WAIT;
  • 应用监听队列是否溢出;
  • 文件描述符是否接近上限;
  • 反向代理或应用连接池是否达到上限;
  • 上游连接是否大量超时。

如果请求总量不大、网卡吞吐量很低,但新连接建立时间明显变长,应优先排查连接队列和应用连接资源。

排除MTU、网卡错误和链路设备问题

如果网卡速率没有达到上限,却出现大量传输错误、丢包、重传或连接重置,应查看网卡统计、虚拟网卡状态和上游网络设备信息。常见方向包括:

  • 网卡或虚拟网卡错误计数增加;
  • 大包传输时问题更明显;
  • 特定路径或协议表现异常;
  • 网卡协商速率与预期不一致;
  • 云平台安全策略或网络设备出现丢弃。

这类问题不宜直接通过修改MTU或防火墙规则解决。修改前应记录当前配置、明确影响范围,并准备恢复原配置的方法;在云服务器上还应优先核对服务商网络文档和控制台状态。

第五步:形成条件化判断

可以使用以下判断边界:

六、按“变化—联动—排除—复测”执行判断配图

更支持“带宽容量不足”的条件:

  1. 问题发生时,特定方向的网卡吞吐量长期接近已知上限;
  2. 增加并发不能明显提高总吞吐量,只会增加排队和响应时间;
  3. CPU、内存、磁盘和数据库没有同步成为主瓶颈;
  4. 多个业务共享出口,且流量叠加后都出现传输变慢;
  5. 降低后台流量或减少大文件并发后,前台请求恢复。

更支持“服务器性能不足”的条件:

  1. 吞吐量明显低于线路能力;
  2. CPU核心、运行队列、内存回收、磁盘等待或数据库锁等待中至少有一项先达到异常;
  3. 应用处理耗时或排队时间增加,网络重传变化不明显;
  4. 降低计算量、减少并发或暂停高I/O任务后,响应时间恢复;
  5. 不同访问地区表现接近,服务器内部指标也同步异常。

更支持“跨地域链路质量问题”的条件:

  1. 只有特定地区或运营商受到影响;
  2. 服务器资源和网卡容量仍有余量;
  3. RTT、抖动、重传或连接重置与异常时间同步;
  4. 同一业务在不同地区的表现差异明显;
  5. 固定大小的请求也出现随机延迟和超时,而不是稳定的平台期。

如果网络容量和CPU都同时达到高位,不能强行二选一。可能是大流量传输消耗了系统协议栈处理能力,也可能是CPU不足导致发送不及时。此时应继续观察哪个指标先发生变化,并拆分业务流量和进程资源。

七、用复测验证判断,而不是停留在监控截图

网络容量复测

在获得授权并选择业务低峰期后,可以使用固定大小的测试文件或固定接口,控制并发逐步增加。复测时保持以下条件一致:

  • 访问地区和运营商尽量一致;
  • 文件大小、响应内容和压缩方式一致;
  • 并发逐级增加,而不是一次性压满;
  • 同步记录服务器端CPU、磁盘、网卡速率和TCP重传;
  • 避免对生产业务造成额外流量。

如果并发增加后吞吐量在某个水平形成平台,同时服务器资源仍有余量,且降低并发后排队恢复,容量型网络瓶颈的可能性较高。测试工具本身也会消耗CPU和网络,不能把测试结果直接当成线路理论值。

CPU或I/O复测

对计算密集型接口,可以在保持网络响应大小不变的情况下,减少业务计算量或降低并发,观察:

  • CPU用户态是否下降;
  • 运行队列是否缩短;
  • 应用处理时间是否同步下降;
  • 网卡吞吐量是否仍远低于上限;
  • TCP重传是否没有明显变化。

对磁盘或数据库业务,则应关注I/O等待、查询耗时和请求队列。不要只看总响应时间,因为总时间下降可能只是请求量变少,并不能说明瓶颈已消失。

地域链路复测

选择多个访问区域时,应尽量使用同一接口和相近请求大小,并记录:

  • DNS解析时间;
  • TCP连接建立时间;
  • TLS握手时间;
  • 首字节时间;
  • 内容下载时间;
  • 总请求时间;
  • HTTP状态码;
  • 重试次数;
  • 服务器端收到请求和完成响应的时间。

如果服务器日志显示处理时间稳定,但客户端总耗时在某地区明显增加,问题大概率发生在服务器处理链路之外。若服务器日志中的处理时间本身也同步增加,则仍需回到CPU、数据库、磁盘和应用队列继续分析。

八、常见误判及修正方式

只看CPU低,就认定服务器没有问题

CPU低只能排除部分计算瓶颈,不能排除磁盘等待、内存回收、数据库锁、连接池耗尽和应用队列。尤其是大量请求等待数据库或远端服务时,CPU可能长期保持较低水平。

修正方式是同时看iowait、磁盘await、数据库等待、应用线程状态和请求排队时间。

只看网卡没有跑满,就认定不是网络问题

链路丢包、抖动和TCP窗口收缩会让有效吞吐量下降。海外访问中,路径质量问题可能比容量不足更常见地表现为“速度忽快忽慢”。

修正方式是把吞吐量与RTT、重传、抖动、发送队列和地域分布一起观察。

看到load average升高,就认定CPU不够

高负载可能由磁盘不可中断等待造成。若load average升高的同时,CPU用户态不高、iowait和磁盘队列升高,应优先分析I/O。

修正方式是按CPU核心数观察运行队列,并拆分可运行任务和I/O等待任务。

把RTT高直接等同于带宽小

RTT反映往返时间,不等于线路容量。跨地域访问的RTT可能天然较高,但在低丢包和足够并发的情况下,仍能获得较高吞吐量。反过来,RTT不高也可能存在出口限速。

修正方式是把RTT、吞吐量、丢包、重传和请求大小放在同一窗口中判断。

只看平均响应时间

平均值容易被少量慢请求或大量快请求掩盖。网络排队和连接抖动通常首先反映在p95、p99和超时率上。

修正方式是同时观察p50、p95、p99、最大值、超时率和错误率,并按地域、接口、响应大小分组。

下一次故障应同时观察的指标组合

下一次海外服务器出现“访问慢、下载慢或接口超时”时,建议至少保存以下四组指标,并使用统一时间戳对齐:

  1. 带宽容量组合:发送速率、接收速率、实例或端口上限、应用发送字节数、发送队列、共享出口的其他流量。
  2. 网络质量组合:RTT、抖动、丢包、TCP重传、连接建立时间、超时率、不同地区的请求耗时。
  3. 服务器资源组合:每核CPU、user/system/iowait、load average、运行队列、available内存、swap、磁盘await和I/O队列。
  4. 应用与数据库组合:请求数、p50/p95/p99、排队时间、工作线程、连接池等待、数据库查询耗时、锁等待、5xx比例。

如果第一组异常而第三组稳定,优先核对带宽容量和出口流量;如果第三组先异常而第一组没有接近上限,应优先处理CPU、内存、磁盘、数据库或应用队列;如果只有特定地区的第二组异常,则应把重点放在跨地域路径和链路质量。经过一次相同条件的复测,才能把“看起来像网络慢”转化为可验证的性能判断。

目录结构
全文