Lowering linux kernel timer frequency

后端 未结 1 664
Happy的楠姐
Happy的楠姐 2021-02-01 06:59

When I run my Virtual Machine with Gentoo as guest, I have found that there is considerable overhead coming from tick_periodic function. (This is the function which

1条回答
  •  时光说笑
    2021-02-01 07:53

    Don't worry! Your confusion is nothing but expected. Linux timer interrupts are very confusing and have had a long and quite exciting history.

    CLK_TCK

    Linux has no sysconf system call and glibc is just returning the constant value 100. Sorry.

    HZ <-- what you probably want

    When configuring your kernel you can choose a timer frequency of either 100Hz, 250Hz, 300Hz or 1000Hz. All of these are supported, and although 1000Hz is the default it's not always the best.

    People will generally choose a high value when they value latency (a desktop or a webserver) and a low value when they value throughput (HPC).

    CONFIG_HIGH_RES_TIMERS

    This has nothing to do with timer interrupts, it's just a mechanism that allows you to have higher resolution timers. This basically means that timeouts on calls like select can be more accurate than 1/HZ seconds.

    divider

    This command line option is a patch provided by Red Hat. You can probably use this (if you're using Red Hat or CentOS), but I'd be careful. It's caused lots of bugs and you should probably just recompile with a different Hz value.

    CONFIG_NO_HZ

    This really doesn't do much, it's for power saving and it means that the ticks will stop (or at least become less frequent) when nothing is executing. This is probably already enabled on your kernel. It doesn't make any difference when at least one task is runnable.

    Frederic Weisbecker actually has a patch pending which generalizes this to cases where only a single task is running, but it's a little way off yet.

    0 讨论(0)
提交回复
热议问题