Linux 网络延迟高的可能原因
发布时间 - 2026-01-23 00:00:00 点击率:次网卡驱动或固件过旧、网络栈参数配置不当、ARP冲突或广播风暴、容器/虚拟化转发跳数过多是导致延迟抖动的四大主因,需分别通过ethtool、sysctl、tcpdump、perf等工具定位并优化。
网卡驱动或固件过旧导致延迟抖动
老旧驱动常无法正确处理高吞吐下的中断合并、RSS 队列分配或TSO/GSO卸载,引发软中断堆积和延迟突增。特别是某些 Realtek、Intel I210 或 Broadcom BCM57xx 网卡在内核 5.4 之前版本中存在已知的 tx_timeout 延迟问题。
实操建议:
- 运行
ethtool -i eth0查看驱动名与版本,比对厂商官网最新固件; - 升级前先用
ethtool -K eth0 gso off tso off临时关闭卸载功能,观察延迟是否收敛; - 若使用 Intel 网卡,确认是否启用了
irqbalance,并检查/proc/interrupts中对应网卡 IRQ 是否集中在单个 CPU 核上。
网络栈参数配置不当放大 RTT 波动
默认 TCP 参数在高延迟或高丢包链路下容易触发重传退避、窗口收缩,表现为 ping 延迟忽高忽低,tcpping 显示超时率上升。典型诱因包括过小的 net.ipv4.tcp_rmem 缓冲区、未启用 tcp_slow_start_after_idle 关闭、或 net.core.netdev_max_backlog 过低导致队列溢出丢包。
实操建议:
- 用
ss -i观察连接的cwnd和rttvar,若rttvar持续 >100ms,说明 RTT 估计不稳定; - 临时调大接收缓冲:执行
sysctl -w net.ipv4.tcp_rmem="4096 65536 8388608"; - 禁用空闲后慢启动(避免突发流量被限速):
sysctl -w net.ipv4.tcp_slow_start_after_idle=0; - 检查
net.core.netdev_max_backlog是否小于当前接口 PPS,可设为5000或更高。
同一物理网段存在 ARP 冲突或广播风暴
局域网内异常设备持续发送伪造 ARP 响应、DHCP 请求泛洪或生成树协议(STP)震荡,会导致主机频繁刷新 arp -a 表项、触发 gratuitous ARP,并使内核 neighbour 子系统陷入高频垃圾回收,间接拖慢 IP 层转发路径。
实操建议:
- 用
tcpdump -i eth0 arp or broadcast抓包,过滤出异常源 MAC 的 ARP 流量; - 检查
/proc/net/neigh/eth0/stats中failed和unresolv计数是否持续增长; - 临时锁定关键网关 ARP 条目:
ip neigh replace 192.168.1.1 lladdr 00:11:22:33:44:55 dev eth0 nud permanent; - 若交换机可控,开启 DHCP Snooping 和 ARP Inspection 功能。
容器或虚拟化环境引入额外转发跳数
使用 Docker 默认桥接模式、Kubernetes Calico/Flannel 或 KVM 的 virtio-net + iptables 规则链时,每个数据包可能经历多次 netfilter hook(如 FORWARD、POSTROUTING),尤其当启用 conntrack 且连接数超限时,nf_conntrack 查找会成为瓶颈,表现为延迟毛刺与 dmesg 中大量

"nf_conntrack: table full" 日志。
实操建议:
- 用
perf record -e 'net:*' -a sleep 10采样,查看是否大量命中nf_hook_slow; - 检查 conntrack 使用量:
conntrack -S,若entries接近max,需调大net.netfilter.nf_conntrack_max; - 对非必要服务禁用 conntrack:
iptables -t raw -A PREROUTING -p tcp --dport 8080 -j NOTRACK; - 容器场景优先选用 hostNetwork 或 CNI 插件的 eBPF 模式(如 Cilium),绕过 iptables 路径。
__nf_ct_lookup 持有 nf_conntrack_lock)或网卡 ring buffer 溢出后丢弃了 ACK 包——这时 ping 看似正常,但应用层 TCP 吞吐已断崖下跌。
# linux
# docker
# 工具
# mac
# 栈
# ai
# kubernetes
# 虚拟化
# 网卡驱动
# .net
# 接口
# 堆
# table
# tcpdump
# 固件
# 表现为
# 的是
# 设为
# 不稳定
# 先用
# 数据包
# 并使
# 官网
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
HTML 中如何正确使用模板变量为元素的 name 属性赋值
🚀拖拽式CMS建站能否实现高效与个性化并存?
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
如何在服务器上配置二级域名建站?
详解Android图表 MPAndroidChart折线图
如何获取PHP WAP自助建站系统源码?
Mybatis 中的insertOrUpdate操作
详解Huffman编码算法之Java实现
Laravel如何处理文件下载请求?(Response示例)
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
公司门户网站制作流程,华为官网怎么做?
Java遍历集合的三种方式
香港服务器选型指南:免备案配置与高效建站方案解析
香港服务器建站指南:免备案优势与SEO优化技巧全解析
大型企业网站制作流程,做网站需要注册公司吗?
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
如何在万网主机上快速搭建网站?
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
如何在建站宝盒中设置产品搜索功能?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
高端云建站费用究竟需要多少预算?
Android实现代码画虚线边框背景效果
微信小程序 canvas开发实例及注意事项
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
JavaScript常见的五种数组去重的方式
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
油猴 教程,油猴搜脚本为什么会网页无法显示?
Linux系统运维自动化项目教程_Ansible批量管理实战
jquery插件bootstrapValidator表单验证详解
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
如何用已有域名快速搭建网站?
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
java获取注册ip实例
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
详解阿里云nginx服务器多站点的配置
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
网站制作价目表怎么做,珍爱网婚介费用多少?
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
免费网站制作appp,免费制作app哪个平台好?
iOS UIView常见属性方法小结
linux top下的 minerd 木马清除方法
制作公司内部网站有哪些,内网如何建网站?
如何挑选优质建站一级代理提升网站排名?
千库网官网入口推荐 千库网设计创意平台入口

