11.4. 减少 CPU 性能激增
常见延迟高峰来源是内核计时器循环处理器中常见锁定的多个 CPU 持续时。负责争用的常见锁定是 xtime_lock,由计时系统和 Read-Copy-Update (RCU)结构锁定使用。通过使用 skew_tick=1,您可以偏移每个 CPU 的计时器循环,以在不同时间启动,并避免潜在的锁定冲突。
skew_tick 内核命令行参数可能会阻止低到具有大型核心数的大型系统的延迟波动,并具有对延迟敏感的工作负载。
先决条件
- 有管理员权限。
流程
使用
grubby启用skew_tick=1参数。grubby --update-kernel=ALL --args="skew_tick=1"
# grubby --update-kernel=ALL --args="skew_tick=1"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启以使更改生效。
reboot
# rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
注意
启用 skew_tick=1 会导致功耗显著增加,因此只有在您运行对延迟敏感实时工作负载且一致性延迟时,必须启用 skew 引导参数。
验证
显示 /proc/cmdline 文件,并确保指定了 skew_tick=1。/proc/cmdline 文件显示传递给内核的参数。
检查
/proc/cmdline文件中的新设置。cat /proc/cmdline
# cat /proc/cmdlineCopy to Clipboard Copied! Toggle word wrap Toggle overflow