linux - 完全消除现代 Linux >=5.0 中的计时器滴答声
问题描述
我正在尝试完全消除安静机器上一组内核上的定时器中断。这些是这些内核定期处理的唯一中断。我已经isolcpu
完成了它们,并用 构建了一个内核CONFIG_NO_HZ_FULL
,实际上现在它们每秒只接收一次定时器中断。是否可以消除这个残留的 1Hz 定时器中断?
这个内核文档建议在某些时候偶尔需要打勾:
一些进程处理操作仍然需要偶尔的调度时钟滴答。这些操作包括计算CPU负载、维护sched average、计算CFS实体vruntime、计算avenrun和进行负载均衡。它们目前由每秒左右的调度时钟滴答来适应。即使对这些不频繁的调度时钟滴答声,正在进行的工作也将不再需要。
而这个内核补丁“删除 1 Hz 滴答代码”表明它已在更高版本的内核中被删除:
现在 1Hz 滴答已卸载到工作队列,我们可以安全地删除用于在本地处理它的残留代码。
我已经构建了 5.3.0 内核,希望这个残留的滴答声会被删除,但它仍然存在。
我需要设置其他引导参数吗?最新版本的内核中是否真的删除了剩余的计时器滴答声?(这个问题有一些相关信息)
解决方案
不能从所有 CPU 中完全删除 1HZ 刻度,否则我们将无法保留任何统计信息。相反,它现在通过一个工作队列运行,您现在可以配置一个housekeeping
CPU 来处理所有全局工作队列任务。有关详细信息,请参阅此提交。
还建议使用 nohz_full 命令行参数和 cpusets 来管理隔离 cpu 集。您仍然需要让其中一个(默认启动 CPU)成为管家 CPU。
推荐阅读
- mule4 - 如何在 Mule 4 中将 Mule 应用程序作为连接器发布到 Exchange
- c# - WebRequest\HttpClient C# 中的客户端证书身份验证失败
- android - 如何将android布局的元素放在另一个上
- awk - 从第 5 列中删除单词之间的空格
- php - 当从 php 调用脚本时,bash 脚本中的字符串比较不起作用
- web-scraping - 如何拆分里面的元素
网页抓取时标记
- postgresql - 在 debian10 arm64 上编译 timescaledb 源代码
- google-chrome-extension - 是否可以为扩展弹出窗口设置动画?
- c# - 如何将 g.ToList() 的所有实例包含到 Value
- html - 使用 Angular 只需单击一次复选框即可启用所有复选框