常见原因可分为网络层和存储/硬件层:网络层包括带宽受限、跨国路由延迟、丢包或ISP限速;存储/硬件层包括磁盘IO瓶颈、RAID/控制器缓存问题、网络卡(网络卡或NIC)配置不当或中断/驱动问题。
判断方向建议先用简单网络工具(ping、mtr、iperf3)确认往返时延与丢包,再用磁盘IO工具(iostat、fio、iotop)确认读写延迟与利用率,最后检查系统/驱动与虚拟化配置(NUMA、SR-IOV、VM网络桥接)。
关注的关键指标包括:带宽利用率、RTT与丢包率、磁盘队列长度(await/avgqu-sz)、I/O延迟(ms)、CPU中断负载与NIC错误计数。
先用 iostat -x 1 或 sar -d 查看设备的 %util、await、svctm、avgqu-sz:%util 接近100% 且 await 高(数十到数百 ms)通常表明磁盘成为瓶颈。
使用 fio 做合成压力测试(随机/顺序、不同block size、读/写混合)可以重现问题并测出 IOPS/延迟。iotop 可以实时看到哪个进程占用 I/O。smartctl/hddtemp 可检查盘健康与高温。
检查 RAID/控制器:硬件 RAID 的缓存和电池(BBU)状态会显著影响写入性能;查看 mdadm / megacli / storcli 输出。对于 NVMe 要看 NVMe 命名空间与队列深度(fio --iodepth)。
注意文件系统与挂载参数(noatime、barrier、flock)以及 LVM、快照或备份任务是否在高峰期触发造成突发 I/O。
先用 iperf3 在同一机房内做单向/双向测量,排除远端路径问题。若本地带宽达不到预期,使用 ethtool -S
检查 /proc/interrupts 看中断分布是否集中到单核导致CPU成为瓶颈。使用 ethtool -k
检测RSS/分流与队列:高并发场景需启用多队列与RSS,将中断分散到多核;对于支持 SR-IOV 的网卡,可以做直通或虚拟函数来提升性能。若出现大量校验错误或丢包,应更换网线/交换机端口或调整 MTU(巨帧)并确保两端一致。
硬件要点包括:磁盘类型(SATA/HDD vs SSD vs NVMe)、RAID卡性能与缓存、电源与温控、内存与缓存(写缓存/操作系统页缓存)、CPU瓶颈与中断分布、网卡型号与驱动稳定性。
交换机/路由器端也影响:端口速率、链路聚合(LACP)是否正确配置、交换机QoS或流量镜像导致的负载、跨区域链路的国际出口质量。虚拟化场景还需关注宿主机的 NUMA 拆分与 I/O 亲和性。
工具列表:磁盘检测用 iostat、iotop、fio、smartctl;网络检测用 iperf3、mtr、traceroute、ethtool、tcpdump(抓包分析);系统监控用 sar、vmstat、perf、top/htop、/proc/interrupts。
优化建议示例:对于磁盘瓶颈可采用更快的存储(NVMe)、调整队列深度和 fio 参数、启用写缓存或调整 RAID 策略;对于 NIC 瓶颈可升级驱动、开启多队列/RSS、调整卸载选项或使用 SR-IOV。
网络层面可优化 TCP 参数(调整 TCP window、拥塞控制算法如 bbr/cubic、修改 net.core.rmem_max/wmem_max),并与机房/ISP 协商路由与带宽保障;必要时使用 CDN 或就近镜像减少跨境延迟。