rcu detected stall on CPU 的 rcu_sched / rcu_bh 超时调优参数-SQL

RCU stall 根本原因是 callback 积压或 grace period 过长,需结合 rcu_nocbs、rcu_kthreads 等启动参数及 rcu_cpu_stall_timeout 等运行时参数协同调优,而非单纯调大超时。

RCU stall 检测到 CPU 卡住,本质是 RCU callback 积压或 grace period 过长,不是简单调大超时就能解决的。

rcu\_sched 和 rcu\_bh 的 stall 超时机制差异

内核通过 rcu_cpu_stall_timeout 控制 stall 检测周期(单位:秒),但 rcu_sched 和 rcu_bh 共享同一套检测逻辑,不区分独立超时值。真正影响 stall 触发时机的是:

  • rcu_cpu_stall_timeout:默认 21 秒,超过该时间未完成 grace period 就报 rcu detected stall on CPU
  • rcu_cpu_stall_info:设为 1 可在 stall 发生时打印更多上下文(如最近的 rcu_pending、rcu_qs 状态)
  • rcu_nocbs:若启用(如 rcu_nocbs=1),会把 callback 移出 softirq,在 kthread 中执行,可能缓解 softirq 堵塞导致的 rcu_bh stall

常见触发场景与对应参数调整建议

不能只改超时值,得先定位卡点类型:

  • 高负载下 softirq 处理不过来(尤其 rcu_bh)→ 启用 rcu_nocbs 并绑定到隔离 CPU:rcu_nocbs=1 isolcpus=noirq,managed_irq,1-3
  • 长时间关中断(local_irq_disable)或禁抢占(preempt_disable)→ 检查驱动或模块,rcu_cpu_stall_timeout 调小(如 5)反而更容易暴露问题
  • 大量 callback 积压(如频繁 call_rcu + 长耗时 callback)→ 改用 call_rcu_tasks 或拆分 callback 工作,避免阻塞 RCU softirq
  • 虚拟化环境(KVM)中 vCPU 被调度器长期挂起 → 调大 rcu_cpu_stall_timeout 是合理妥协,但需配合 rcu_kthreads=1 启用专用 kthread 加速 grace period

/proc/sys/kernel/ 下可运行时修改的关键参数

这些参数支持 sysctl 或 echo 写入,适合调试阶段快速验证:

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

本站指数

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