Hi all/jim, On 9/17/06, Jim Cromie <jim.cromie@xxxxxxxxx> wrote:
Tharindu Rukshan Bamunuarachchi wrote: > Hi all, > > What is the best method of improving the real time behaviour of an > application. > 'best' needs more elaboration. - what constraints ?
We have trading system with 4-7 hops connected in a loop. When a network packet reach each host, we need minimum latecey to wake up application and do the processing. Processin time is very samll and usually takes around 50-60microseconds. I have tested this with two HZ values; 1. 1000 set to HZ 2. 1500 set to HZ for 1000HZ i got around 2000 microsecond latencey in best case for 1500HZ i got around 1300 microsecond latencey in best case
old / new kernels ?
This new 2.6.9 kernel (Actually RHEL 4 update 2)
keeping old apps ?
We have minimized other appllications. Only application per host.
how hard/soft is your RT reqs ?
I think we need soft RT
CONFIG_PREEMPT_RT is in recent mainline, as is PREEMPT_VOLUNTARY
I have settled PREEMPT_RT option
then theres the -rt tree, and xenomai.org for a co-kernel approach. > I can see two approaches > you seem to limit your consideration to main-line kernels. > 1) setting the scheduling class & priority (chrt & nice) > > 2) setting of kernel parameters ( The option 1 is not available, bcos > of app is not allowed to adjust its scheduling attributes) > > We have already set HZ =1000. > > Can we reduce the default time slice to 10ms or 20 ms without any side > effects.
I think for 1000 HZ default timeslice is around 100ms; ( i may be wrong ;)
whats the default timeslice ? loss of thruput is a side effect, and cutting slice 10-fold is bound to increase context switches.
-- Tharindu Rukshan Bamunuarachchi all fabrications are subject to decay -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/