1000 HZ linux kernel necessary if I have tickless and high resolution timer?

If low jitter is important to you, yes, you may want to use both 1000hz and PREEMPT.

If those processes are really time-sensitive, thought, you will probably need some more realtime-oriented patches/kernels, or at least some process-level scheduling parameters, like rtprio.

Typical uses are audio servers, see for example advice from jackaudio


I am trying to improve performance on my server. I have a few processes that need low jitter (less than 10ms variance).

Any real time won't improve performance, it'd make the whole system running smoother but a bit slower, in fact. In other words, it's throughput vs. latency. If it's really what you need, then several options:

  • Use 300 Hz or even 1KHz, PREEMPT, and don't use tickless
  • Use nice, schedtool to assign proper priorities/classes according to your needs
  • Give a try to RT or BFS

1) Don't use tickless, it's still highly experimental and not recommended to anyone but developers working on it, it is also meant to help to powersave.

2) Fully preemtible system is supposed to increase responsiveness of desktor, while voluntary preemptible is for general use (mix of responsiveness and troughput). If your server got SMP (multiple cores), you should probably go for non-preemptible, since most work will be executed on their cores and without interrupts, which generally 1) take time 2) trash cache

3) 1000Hz is desktop value which introduces overhead, but allows to for example play games and stuff. 300 hz is value that is recommended for video (so stuff can reschedule and you still won't miss frames), while 100Hz provides best troughput (though not geared for lowlatency network stuff).

If you want to go as stable as it gets (without using RT patches), you should go: periodic ticks (stability) non-preemptible (stability) timer-frequency (up to you, 1000 for best responsiveness and low latiencies, 100 for best troughput but 10ms resolution on timer, e.g. stuff will run at least 10ms)

Hope this somewhat helps.