当我运行我的虚拟机使用Gentoo作为嘉宾,我发现有来自未来相当大的开销tick_periodic
功能。 (这是运行在每个定时器中断功能)。此功能更新了全球jiffy
使用write_seqlocks
导致的开销。
下面是一个grep的HZ
及相关的东西,在我的内核配置文件。
sharan013@sitmac4:~$ cat /boot/config | egrep 'HZ|TIME'
# CONFIG_RCU_FAST_NO_HZ is not set
CONFIG_NO_HZ=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
# CONFIG_MACHZ_WDT is not set
CONFIG_TIMERFD=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_X86_CYCLONE_TIMER=y
CONFIG_HPET_TIMER=y
显然,它已经将配置设置为1000,但是当我做sysconf(_SC_CLK_TCK)
我得到100我的定时器的频率。 那么,什么是我的系统定时器的频率?
我想要做的是把频率降低到100,甚至更低如果可能的话。 虽然它可能影响的交互性和精确度poll
/ select
和调度时间片,我豁出去了这些东西较少定时器中断,因为这将加快VM。
当我试图找出哪些必须做我在一些地方,你可以在配置文件中改变,这样做阅读别的地方,我读了加分频= 10到引导参数做工作,别的地方我读了如果你可以设置需要它没有一个CONFIG_HIGH_RES_TIMERS
到acheive低延时定时器,即使不增加计时器频率和同样是可能的空循环系统CONFIG_NO_HZ
。
我extermely困惑什么是正确的做法。
我想要的是打倒定时器中断来尽可能低。
我知道这样做的正确方法吗?