讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux 带宽占满但业务无异常的原因

星萱小哥_5817

星萱小哥_5817

发布时间:2026-01-29 16:16:02

|

852人浏览过

|

来源于php中文网

原创

top和htop看不到带宽占用进程,因其不采集网络I/O数据;真实原因包括iptables转发、AF_PACKET抓包、eBPF程序、容器桥接绕过协议栈等,需用nethogs、ss、tc、bpftool等工具分层排查。

linux 带宽占满但业务无异常的原因

为什么 top 和 htop 看不到带宽占用进程

因为 top 和 htop 只显示 CPU、内存、进程状态等指标,不采集网络 I/O 数据。带宽打满但业务响应正常,往往意味着流量是“流经”系统而非“消耗”在本地——比如服务器作为透明代理、NAT 网关、或开启了 iptables 转发且未限速;又或者容器桥接模式下,流量绕过主机协议栈(如使用 hostNetwork: true 的 Pod),导致 /proc/net/dev 有计数,但 ss -i 或 netstat 查不到对应 socket 所属进程。

如何定位真实发包/收包进程

用 ss -tunlp 查监听端口和所属 PID,但注意:它只显示有 socket 绑定的连接;对于纯转发(如 iptables -j DNAT)、AF_PACKET 抓包(如 tcpdump、suricata)、或 eBPF 程序(如 cilium 的 datapath),需换方法:

  • 运行 sudo cat /proc/net/dev 确认哪个网卡(如 eth0)RX/TX 持续高位,再用 sudo tc -s class show dev eth0 看是否有 qdisc 限速或队列堆积
  • 用 sudo nethogs -t 实时按进程统计带宽,它基于 libpcap 抓包解析,能捕获转发流(但会引入轻微性能开销)
  • 检查是否启用 nf_conntrack:高并发短连接可能让 conntrack 表爆满,导致内核大量重传或伪造 ACK,表现为“带宽占满却无业务报错”,此时 cat /proc/sys/net/nf_conntrack_count 接近 /proc/sys/net/nf_conntrack_max

iptables FORWARD 链规则引发的隐性带宽消耗

若服务器启用了 ip_forward=1,且 iptables -t filter -L FORWARD 中存在大量 LOG 目标规则(如调试遗留),每条匹配日志都会触发内核写入 dmesg 缓冲区,而 rsyslog 或 journald 实时读取这些日志时,会反复调用 recvfrom() 从 /dev/log 或 AF_UNIX socket 收包——这本身就会产生可观的环回流量,并被计入 lo 接口统计,误判为“业务流量”。

Docker Compose Optimizer
Docker Compose Optimizer

优化 Docker Compose 配置,适用于开发和生产环境——审计服务、网络、卷、健康检查和资源管理。

下载
  • 临时禁用 LOG 规则:sudo iptables -t filter -D FORWARD -m state --state RELATED,ESTABLISHED -j LOG
  • 确认日志速率:dmesg -T | tail -50 | grep "IN=" 看是否高频输出网络事件
  • 更稳妥的做法是改用 nflog + 用户态收集,避免内核路径阻塞

容器或虚拟化环境下的“幽灵带宽”

在 Kubernetes 或 KVM 场景中,docker0、cni0、virbr0 等网桥接口的流量常被忽略。例如:calico 使用 BPF 程序做策略路由,其数据平面绕过 netfilter,iptables -t nat -L POSTROUTING 看不到 SNAT 规则,但 tc filter show dev cali+ 可能显示大量匹配动作;又如 QEMU 启用 vhost-net 后,virtio-net 发包直接进内核 vhost 内存区,不经过常规 socket 路径。

  • 查桥接流量:watch -n1 'cat /sys/class/net/docker0/statistics/{rx,tx}_bytes'
  • 查 eBPF 程序:bpftool prog list | grep -E "(tc|classifier|xdp)"
  • 检查是否启用 net.ipv4.conf.all.forwarding=1 且未配 rp_filter,导致反向路径校验失败后持续丢包重传

真正难排查的是那些不走 socket、不记 conntrack、也不触发 iptables 日志的路径——比如 DPDK 应用、SR-IOV VF 直通、或内核模块自定义 sk_buff 处理。这时候得看 /proc/interrupts 是否某 CPU 核中断飙升,再结合 perf record -e irq:softirq_entry -a sleep 10 定位软中断来源。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

码上飞
码上飞 Hot

一款基于自然语言的AI应用开发平台,可根据用户描述自动生成应用程序,帮助个人和团队快速完成应用原型与开发。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

相关专题

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

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

3208

2023.10.19

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

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

5249

2025.10.17

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

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

3869

2025.12.29

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

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

486

2026.01.19

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

6567

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2728

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

6567

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

2728

2023.08.10

Docker Desktop怎么设置端口映射
Docker Desktop怎么设置端口映射

本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。

0

2026.11.03

热门下载

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

精品课程

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

共0课时 | 0人学习

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

共0课时 | 0人学习

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

共0课时 | 0人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn