在 CentOS 上用抓包定位网络瓶颈的实操流程
一、先界定瓶颈类型与快速定位
二、抓包取证的关键方法与判读要点
三、常见瓶颈场景与对应证据链
| 瓶颈场景 | 抓包/监控证据 | 进一步动作 |
|---|---|---|
| 出口/链路带宽打满 | nload/iftop/sar -n DEV 显示接近物理上限;抓包显示持续大流量且应用层速率上不去 | 与上游/运营商确认带宽;在核心链路上做限速/QoS;优化大流量任务调度 |
| 接收端/发送端队列溢出 | netstat -s 的 dropped 增长;增大 netdev_max_backlog 与 ring buffer 后丢包下降 | 优化应用消费速度;调大网卡队列与内核缓冲;必要时分布式/多队列分担 |
| 远端拥塞或链路不稳 | Wireshark 高 Retransmissions/Dup ACK/Out-of-Order | 更换链路/路径;与对端协同调参(窗口、拥塞控制);启用更稳健的协议参数 |
| 窗口/BDP 不匹配 | 窗口长时间很小、吞吐远低于链路能力 | 启用 窗口缩放(Window Scaling);评估 MTU/巨帧(如 9000);优化主机/对端窗口与发送速率 |
| 连接风暴/半开连接 | SYN 洪泛、大量 TIME_WAIT | 调整 tcp_tw_reuse/tcp_tw_recycle(视内核版本与场景而定);优化应用连接复用与超时 |
| 应用层处理慢 | 抓包看到请求-响应间隔大,但网络 RTT 正常;nethogs/ss 显示单进程占用高 | 优化应用逻辑/SQL/缓存;扩容实例或拆分负载;检查 CPU/内存/磁盘 I/O |
| 以上对应关系可快速把“现象”与“证据”对上号,从而制定有效优化措施。 |
四、优化与验证的闭环操作