perf top 显示 [ksoftirqd] 高占比时的 softnet_stat / netdev_budget 调优-SQL

perf top中[ksoftirqd]占比高通常源于网络软中断处理瓶颈,需通过/proc/net/softnet_stat分析dropped和time_squeeze字段判断是否因netdev_budget过小、RSS不均或NAPI未启用导致。

perf top 看到 [ksoftirqd] 占比高,先确认是不是软中断瓶颈

这通常不是 CPU 被“占满”了,而是网络软中断(NET_RX)在 ksoftirqd 线程里持续被唤醒、处理不过来。关键要区分:是收包太快(网卡 flood),还是单核处理能力不足(如 RSS 未开启或不均),或是 net.core.netdev_budget 设置过小导致每次只处理少量包就让出 CPU,引发高频调度开销。

检查 softnet_stat 判断是否丢包和 backlog 积压

/proc/net/softnet_stat 每行对应一个 CPU 的软中断统计,用十六进制解析前两个字段:

  • 第 1 字段(processed):该 CPU 上成功入队并处理的包数
  • 第 2 字段(dropped):因 input_pkt_queue 满或内存不足被丢弃的包数 —— 若持续增长,说明软中断处理速度跟不上入队速度
  • 第 3 字段(time_squeeze):表示一次软中断上下文中,因超时(默认 2 jiffies)提前退出,被迫下次再处理 —— 高值直接指向 netdev_budget 过小或单次处理耗时过高

例如:echo "0x$(awk 'NR==1 {print $1}' /proc/net/softnet_stat | cut -d' ' -f1)" | bc 查当前 CPU 的 processed;重复执行对比增速,若 time_squeeze 增速 > processed,基本可断定预算不足。

netdev_budget 不是越大越好,需结合 NAPI 和中断合并调

net.core.netdev_budget 控制每次软中断上下文最多处理多少个包。默认 300,太小 → 频繁重调度 ksoftirqd;太大 → 单次处理太久,影响实时任务响应,还可能加剧 cache miss。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » perf top 显示 [ksoftirqd] 高占比时的 softnet_stat / netdev_budget 调优-SQL
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4028212+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4028213+
  • 本周更新: 0+
  • 最后更新: 2026-03-16