0

0

Linux 网络延迟高的根因分析

舞夢輝影

舞夢輝影

发布时间:2026-01-27 19:29:02

|

253人浏览过

|

来源于php中文网

原创

mtr 是定位网络延迟和丢包位置最实用的工具,能通过持续带时间戳测量识别问题跳点;netstat -s/ss -s 比 ifconfig 更能揭示协议栈层瓶颈;网卡中断绑定与 RPS 配置不当会加剧抖动;tcpdump 应在 lo 或 any 接口同步抓包以避免 offload 和过滤失真。

linux 网络延迟高的根因分析

怎么看实时延迟和丢包率

直接用 ping 看不准,尤其在高负载或突发流量下。真正反映网络质量的是持续、带时间戳的测量结果。mtr 是最实用的工具,它融合了 tracerouteping 的能力,能定位延迟突增或丢包发生在哪一跳。

运行命令:mtr -r -c 100 -i 0.2 example.com(-c 控制次数,-i 缩短间隔,避免默认 1 秒太粗糙)

  • 重点关注「Loss%」列:某跳开始出现丢包,说明问题大概率出在该节点或其上游
  • 看「Avg」和「StDev」:标准差大意味着抖动严重,常见于无线、QoS 不足或网卡中断风暴
  • 如果第一跳(本地网关)就延迟高且不稳定,基本可排除远端问题,聚焦本机或局域网

为什么 netstat -sss -sifconfig 更有用

ifconfig 只显示收发包总数和错误计数(如 errorsdropped),但不区分原因;而 netstat -s 输出的是内核协议各层的统计,能暴露真实瓶颈点。

重点关注这几项:

  • TCP: InSegs vs InErrs:若后者持续增长,可能是校验失败或 IP 分片重组异常
  • UdpInErrors:非零值通常指向网卡驱动 bug、DMA 内存不足或 net.core.rmem_max 设置过小导致 UDP 包被静默丢弃
  • TCPSynRetrans:SYN 重传多,说明三次握手阶段就卡住,常见于防火墙拦截、目标端口未监听或 SYN Cookie 被误触发

对比 ss -s 输出更轻量,适合脚本采集,但字段粒度略粗;生产环境建议两者交叉验证。

Linux加PHP加MySQL案例教程
Linux加PHP加MySQL案例教程

通过大量实例系统全面地介绍了Linux+PHP+MySQL环境下的网络后台开发技术,详尽分析了近30个典型案例。 本书以培养高级网站建设与管理人才为目标,内容循序渐进,由浅入深,通过大量的实例系统全面地介绍了Linux+PHP+MySQL环境下的网络后台开发技术。 本书详尽分析了近30个典型案例。包括计数器、网站流量统计、留言扳、论坛系统、聊天室、投票与调查、用户管理、新闻发布系统、广告轮播

下载

网卡驱动与中断绑定不当会放大延迟抖动

现代多核 CPU 上,网卡中断默认可能全打到一个 CPU 核上,造成软中断(softirq)堆积,表现为 top%si 持续高于 20%,同时 cat /proc/interrupts | grep eth0 显示某 CPU 计数远高于其他核。

  • ethtool -l eth0 查看网卡支持的 RX/TX 队列数,再用 ethtool -L eth0 combined 4 均匀分配队列(需驱动支持)
  • 手动绑定中断:把每个队列对应的 IRQ 号写入 /proc/irq/*/smp_affinity_list,确保分散到不同物理核(避开超线程兄弟核)
  • 检查是否启用了 RPS(Receive Packet Steering):cat /sys/class/net/eth0/queues/rx-0/rps_cpus,若为空且 CPU 多于 1 颗,建议配置(如 echo f > rps_cpus

不做这些调整时,单核处理所有软中断会导致 TCP ACK 延迟上升、滑动窗口停滞,最终体现为应用层 RTT 波动剧烈。

为什么 tcpdump 抓包位置不对就白忙活

在服务器上直接 tcpdump -i eth0 port 80,可能根本看不到延迟源头——因为包在进入协议栈前就被丢弃(如 iptables DROP)、或在 eBPF/XDP 层被过滤、甚至被网卡 offload 功能绕过抓包点。

  • 优先在 lo 接口抓:确认服务进程发出的包是否本身就延迟高(比如后端调用慢)
  • tcpdump -i any 并配合 -w 保存,再用 Wireshark 看「Time since previous frame」列,比终端输出更准
  • 若怀疑 offload 导致异常,加 -K 参数禁用 checksum offload,或用 ethtool -K eth0 rx off tx off 临时关闭
  • 关键点:抓包必须和延迟现象同步发生,用 date; ping -c 3 target; date 定位时间窗,再回溯对应秒级的 pcap

很多团队花几小时分析 pcap 却漏掉一个事实:抓包点离问题发生点太远,数据本身已失真。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
cookie
cookie

Cookie 是一种在用户计算机上存储小型文本文件的技术,用于在用户与网站进行交互时收集和存储有关用户的信息。当用户访问一个网站时,网站会将一个包含特定信息的 Cookie 文件发送到用户的浏览器,浏览器会将该 Cookie 存储在用户的计算机上。之后,当用户再次访问该网站时,浏览器会向服务器发送 Cookie,服务器可以根据 Cookie 中的信息来识别用户、跟踪用户行为等。

6427

2023.06.30

document.cookie获取不到怎么解决
document.cookie获取不到怎么解决

document.cookie获取不到的解决办法:1、浏览器的隐私设置;2、Same-origin policy;3、HTTPOnly Cookie;4、JavaScript代码错误;5、Cookie不存在或过期等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

346

2023.11.23

阻止所有cookie什么意思
阻止所有cookie什么意思

阻止所有cookie意味着在浏览器中禁止接受和存储网站发送的cookie。阻止所有cookie可能会影响许多网站的使用体验,因为许多网站使用cookie来提供个性化服务、存储用户信息或跟踪用户行为。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

411

2024.02.23

cookie与session的区别
cookie与session的区别

本专题整合了cookie与session的区别和使用方法等相关内容,阅读专题下面的文章了解更详细的内容。

91

2025.08.19

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1079

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

169

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1372

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

16

2026.01.19

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.9万人学习

Git 教程
Git 教程

共21课时 | 3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号