降低linux内核定时器频率

降低linux内核定时器频率,第1张

概述当我使用Gentoo作为guest虚拟机运行虚拟机时,我发现tick_periodic函数有相当大的开销. (这是每个定时器中断运行的函数.)此函数使用write_seqlocks更新全局jiffy,从而导致开销. 这是一个HZ的grep和相关的东西在我的内核配置文件. sharan013@sitmac4:~$cat /boot/config | egrep 'HZ|TIME'# CONFIG 当我使用Gentoo作为guest虚拟机运行虚拟机时,我发现tick_periodic函数有相当大的开销. (这是每个定时器中断运行的函数.)此函数使用write_seqlocks更新全局jiffy,从而导致开销.

这是一个HZ的grep和相关的东西在我的内核配置文件.

sharan013@sitmac4:~$cat /boot/config | egrep 'HZ|TIME'# CONfig_RCU_FAST_NO_HZ is not setCONfig_NO_HZ=y# CONfig_HZ_100 is not set# CONfig_HZ_250 is not set# CONfig_HZ_300 is not setCONfig_HZ_1000=yCONfig_HZ=1000# CONfig_MACHZ_WDT is not setCONfig_TIMERFD=yCONfig_HIGH_RES_TIMERS=yCONfig_X86_CYCLONE_TIMER=yCONfig_HPET_TIMER=y

很明显,它已将配置设置为1000,但是当我做sysconf(_SC_CLK_TCK)时,我得到100作为我的定时器频率.那么我的系统的定时器频率是多少?

我想做的是将频率降至100,甚至更低.虽然它可能影响轮询/选择和调度器时间片段的交互性和精度,但我可以为更小的定时器中断牺牲这些事务,因为它将加速虚拟机.

当我试图找出需要做的事情时,我会在某些地方阅读,你可以通过更改配置文件来做到这一点,否则我读到那个添加divIDer = 10到引导参数的作业,否则我读到那个如果您可以将CONfig_HIGH_RES_TIMERS设置为即使没有增加定时器频率也能够实现低延迟定时器,那么也不需要它们,并且使用无错系统CONfig_NO_HZ也可以这样做.

我非常混淆什么是正确的方法.

所有我想要的是将定时器中断降低到尽可能低.

我可以知道这样做的正确方法吗?

解决方法 别担心你的混乱只不过是预料之中. linux定时器中断非常混乱,历史悠久而令人兴奋.

CLK_TCK

linux没有sysconf系统调用,glibc只是返回常量值100.对不起.

HZ < - 你可能想要什么 配置内核时,您可以选择100Hz,250Hz,300Hz或1000Hz的定时器频率.所有这些都是支持的,虽然1000Hz是默认值,但并不总是最好的. 当他们估计延迟时间(桌面或网络服务器)和价值吞吐量(HPC)的低值时,人们通常会选择高价值. CONfig_HIGH_RES_TIMERS 这与定时器中断无关,只是一种允许您具有更高分辨率计时器的机制.这基本上意味着像选择一样的呼叫超时可以比1 / HZ秒更准确. 分频器 此命令行选项是Red Hat提供的补丁.你可以使用这个(如果你使用Red Hat或CentOS),但是我会小心的.它引起了很多错误,您应该可以使用不同的Hz值重新编译. CONfig_NO_HZ 这实际上并没有太多的功能,这是为了省电,这意味着当没有执行任务时,刻度将停止(或至少变得不那么频繁).这可能已经在您的内核上启用了.当至少有一个任务可运行时,它没有任何区别. Frederic Weisbecker实际上有一个补丁挂起,将其概括为只运行一个任务的情况,但还有一点要离开.

总结

以上是内存溢出为你收集整理的降低linux内核定时器频率全部内容,希望文章能够帮你解决降低linux内核定时器频率所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1042934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存