0

0

ksoftirqd 长期占用 20~40% 的 softnet backlog 调优与网卡参数

舞夢輝影

舞夢輝影

发布时间:2026-01-19 17:55:02

|

260人浏览过

|

来源于php中文网

原创

ksoftirqd高cpu占用本质是网卡收包速率超协议栈处理能力,需通过多队列、中断亲和、调优netdev_budget等降低softnet backlog。

ksoftirqd 长期占用 20~40% 的 softnet backlog 调优与网卡参数

ksoftirqd 占用高 CPU(20~40%)且伴随 softnet backlog 持续堆积,本质是内核软中断处理网络收包不及时,不是 ksoftirqd 本身有问题,而是它在“拼命干活”——说明网卡收包速率超过了协议处理能力。调优核心是:**让硬件收得更稳、内核处理得更快、队列堆积得更少**。

检查并确认瓶颈来源

先排除误判:

  • 运行 cat /proc/net/softnet_stat,逐列看每 CPU 的第 1 列(processed)、第 2 列(dropped)、第 3 列(time_squeeze)。若某 CPU 的 time_squeeze 长期增长快,说明该 CPU 软中断处理不过来;dropped 非零则已丢包。
  • perf top -g -p $(pgrep ksoftirqd)热点函数,常见如 napi_poll__netif_receive_skb_coreip_rcv,确认是否卡在协议栈上层(如 iptables、conntrack)或底层驱动。
  • 检查是否单队列网卡绑定到单个 CPU,导致负载不均。执行 ethtool -l ethX 查看当前通道数,cat /proc/interrupts | grep ethX 看中断分布是否集中。

网卡多队列与中断亲和性调优

让多个 CPU 分担收包压力,避免单核瓶颈:

VIVA
VIVA

一个免费的AI创意视觉设计平台

下载
  • 启用多队列:ethtool -L ethX combined N(N 通常设为 CPU 核心数或略少),再确认 ethtool -l ethX 显示 rx/tx 队列已生效。
  • 绑定每个 RX 队列中断到不同 CPU:echo "CPU_MASK" > /proc/irq/IRQ_NUM/smp_affinity_list,建议按 NUMA 节点分组,例如 CPU 0-3 绑定队列 0-3,CPU 4-7 绑定队列 4-7。
  • 开启 RPS(软件层面补充负载均衡):对非多队列网卡或需要跨 CPU 分流时有效。echo "FF" > /sys/class/net/ethX/queues/rx-0/rps_cpus(十六进制掩码表示 CPU 位图)。

调整内核网络参数降低 backlog 压力

控制入队节奏与处理深度,防止 softnet backlog 溢出:

  • 增大 per-CPU softnet backlog 队列长度(默认 1000):sysctl -w net.core.netdev_max_backlog=5000。注意过高会增加延迟,5000~10000 是较安全起点。
  • 限制单次软中断处理的包数,避免长时间占用 CPU:sysctl -w net.core.netdev_budget=300(默认 300,可尝试 150~600 区间,需实测平衡吞吐与 latency)。
  • 关闭可能拖慢收包路径的功能:如非必要,禁用 net.bridge.bridge-nf-call-iptables=0net.ipv4.conf.all.rp_filter=0(仅限可信内网)。

驱动与固件层面优化

很多问题根源在驱动或硬件配置:

  • 升级网卡驱动和固件(尤其是 Intel ixgbe、i40e、mlx5 等),旧版本存在 NAPI 调度缺陷或队列唤醒延迟。
  • 关闭 LRO/GRO(巨型帧重组):ethtool -K ethX lro off gro off。GRO 在高并发小包场景下反而加剧 softirq 压力,建议只开 GSO(发送端)。
  • 调整 Ring Buffer 大小:ethtool -G ethX rx 4096 tx 4096(根据内存和流量特征调,避免过小溢出、过大增缓存压力)。

调优后持续观察 /proc/net/softnet_stattop 中 ksoftirqd 的 CPU 使用率变化,重点看 time_squeeze 是否收敛、dropped 是否归零。多数情况下,合理设置多队列 + 中断亲和 + netdev_budget 控制,即可将 ksoftirqd 占用压至 5% 以下。

热门AI工具

更多
DeepSeek
DeepSeek

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

豆包大模型
豆包大模型

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

通义千问
通义千问

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

腾讯元宝
腾讯元宝

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

文心一言
文心一言

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

讯飞写作
讯飞写作

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

即梦AI
即梦AI

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

ChatGPT
ChatGPT

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

相关专题

更多
堆和栈的区别
堆和栈的区别

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

443

2023.07.18

堆和栈区别
堆和栈区别

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

605

2023.08.10

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

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

443

2023.07.18

堆和栈区别
堆和栈区别

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

605

2023.08.10

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

870

2024.01.03

python中class的含义
python中class的含义

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

30

2025.12.06

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

22

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

48

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

93

2026.03.06

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1万人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.4万人学习

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

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