Linux 中怎么排查内网丢包与网络延迟过高

风杰君_4427

风杰君_4427

2026-10-25

609人浏览

原创

内网丢包和延迟过高多为时好时坏的瓶颈问题,需分层定位;先区分真丢包与高延迟伪装,再逐层排查物理链路、内核协议栈及应用接收。

linux 中怎么排查内网丢包与网络延迟过高

内网丢包和延迟过高,往往不是“网络不通”,而是“时好时坏”“只在高峰期出问题”,这类现象背后通常有明确的链路或系统瓶颈。排查关键不在于盲目抓包,而在于分层定位、逐段验证——从物理链路到内核协议栈,再到应用接收,每一层都可能成为“丢包黑点”或“延迟放大器”。

一、先确认是不是真丢包,还是延迟伪装成丢包

很多“丢包”其实是高延迟导致超时,被误判为丢包。比如 curl 超时、TCP 连接 hang 住、服务调用失败等,未必是包丢了,可能是处理慢了。

  • 用 ping -c 10 目标IP 看基础连通性与 RTT 波动:如果丢包率 0%,但最大延迟 >100ms(内网一般应
  • 用 hping3 -c 10 -S -p 22 目标IP(走 TCP SYN)绕过 ICMP 屏蔽,更贴近真实业务流量行为
  • 对比 curl -w "@format.txt" -o /dev/null -s http://内网服务 中的 time_connect 和 time_starttransfer:若前者稳定、后者大幅波动,问题大概率在服务端处理,而非网络

二、查本机网卡与驱动层是否在 silently 丢包

真正的丢包,常发生在数据刚进网卡还没进协议栈时,这时 tcpdump 抓不到,但 ip -s link 会留下痕迹。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 运行 ip -s link show dev eth0(把 eth0 换成你实际网卡名),重点看 RX 部分:
    dropped:软中断来不及处理、netdev_max_backlog 溢出
    overrun:Ring Buffer 满了,DMA 写不进内存(驱动/硬件瓶颈)
    errors:物理层异常(双工不匹配、线缆质量差、光衰高)
  • 用 ethtool eth0 检查:
    Speed/Duplex 是否为 “10000Mb/s Full”(非 Auto/Negotiation 失败状态)
    Link detected: yes(确保物理连接正常)
    如果出现 “Half Duplex”,立刻查交换机端口配置——这是内网丢包最常见却最易忽略的原因之一

三、定位丢包发生在哪一段路径上

内网虽短,但中间可能经过接入交换机、汇聚交换机、防火墙、VLAN 网关等节点。单靠 ping 不足以暴露中间跳点的问题。

  • 用 mtr -n -z -c 50 内网目标IP(-n 禁 DNS、-z 禁花哨字符、-c 50 多周期统计)
    重点关注每跳的 Loss%:如果只有最后一跳丢包,大概率是目标机问题;如果某中间跳持续 5%+ 丢包且后续跳 Loss% 不再上升,问题就在那一跳设备(比如某台老旧的三层交换机限速或 buffer 不足)
  • 对比双向路径:
    A → B 丢包,但 B → A 正常?说明问题在 A 的发包路径(如 A 的 TX 队列满、QoS 限速)或 B 的接收侧(如 B 的 netdev_max_backlog 小)

四、检查内核协议栈入口是否“堵车”

当突发流量打进来,软中断(ksoftirqd)处理不过来,就会在 netif_receive_skb 前丢弃 skb——这个阶段丢包不会进 TCP 层,所以 ss、netstat 看不到重传,tcpdump 也抓不到。

  • 查当前 backlog 设置:sysctl net.core.netdev_max_backlog(默认常为 1000)
    若业务是短连接高并发(如 API 网关、Redis 客户端密集访问),建议调至 3000–5000,配合增大 Ring Buffer
  • 观察软中断负载:cat /proc/softirqs | grep NET_RX
    多次执行看数值增长是否远高于其他项;再结合 top -H 查看 ksoftirqd/*/CPUx 占用是否持续 >80%
  • 临时验证:增大 backlog 后,用 watch -n1 'grep dropped /proc/net/dev' 观察 rx_dropped 是否停止增长

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux linux系统

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

940

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3152

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1036

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

929

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

474

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2876

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5392

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

847

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习