第 28 章 使用 RCU 回调提高 CPU 性能
Read-Copy-Update
(RCU
)系统是一个无锁定机制,用于内核中线程的相互排除。由于执行 RCU 操作,在删除内存安全时,调用-backs 有时会在 CPU 上排队。
使用 RCU 回调提高 CPU 性能:
- 您可以从 Operator 中删除 CPU 来运行 CPU 回调。
- 您可以分配一个 CPU 来处理所有 RCU 回调。此 CPU 称为内务 CPU。
- 您可以从 RCU 卸载线程的责任中减轻 CPU。
这个组合减少了专用于用户工作负载的 CPU 的不同影响。
先决条件
- 有管理员特权。
-
tuna
软件包已安装
28.1. 卸载 RCU 回调 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您可以使用 rcu_nocbs
和 rcu_nocb_poll
内核参数卸载 RCU
回调。
流程
要从运行 RCU 回调的候选中删除一个或多个 CPU,请在
rcu_nocbs
内核参数中指定 CPU 列表,例如:rcu_nocbs=1,4-6
rcu_nocbs=1,4-6
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者
rcu_nocbs=3
rcu_nocbs=3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 第二个示例指示了 CPU 3 是一个 no-callback CPU 的内核。这意味着,RCU 回调不会在
rcuc/$CPU
线程固定到 CPU 3 中,而是在rcuo/$CPU
线程中进行。您可以将此 trhead 移到内务 CPU,以减轻 CPU 3 从被分配的 RCU 回调作业。