[openamq-dev] Tuning
Martin Sustrik
sustrik at imatix.com
Wed Oct 24 11:16:45 CEST 2007
Hi,
Here are some tips & tricks for improving latency:
1. First of all you should take your OS into consideration. OS can
schedule other tasks to run instead of OpenAMQ, thus making the latency
extremely high at moments. The only way to get worst-case latency
guarantees is to use full-blown realtime OS, however, even with system
like Linux you can do several things to to get realtime-like behaviour:
a.) Recompile your kernel with kernel preemption on (either
CONFIG_PREEPT=y or CONFIG_PREEMPT_VOLUNTARY=y and CONFIG_PREEMPT_BKL=y).
b.) Use such a scheduling policy that gives OpenAMQ priority over other
processes (say use round-robin scheduling)
c.) Lock OpenAMQ into physical memory to avoid page faults.
d.) Thy experimenting with CPU affinities, CPU shielding etc.
2. Tune your network card:
a.) If there's a possibility to set max. interrupt rate in your NIC,
turn it off for best latency. Interrupts should be issued immediately
after data are received.
b.) Try experimenting with different settings of your NIC and chipsets.
Many systems have various "accelerators" for network traffic that may or
may not improve the latency.
3. Use direct connections instead of switched ones.
Martin
R Hayes wrote:
> We have an application where message latency is our dominant
> concern. It's also running over some moderately exotic hardware
> (infiniband) and potentially using SDP (which transparently drops TCP
> (&IP) out of the data path once the TCP/IP socket connection is made).
>
> In terms of tuning OpenAMQ, what would you recommend? We understand
> that optimizing for latency is likely to have a cost in terms of
> bandwidth and we're OK with this.
>
> -rhayes
>
> _______________________________________________
> openamq-dev mailing list
> openamq-dev at lists.openamq.org
> http://lists.openamq.org/mailman/listinfo/openamq-dev
More information about the openamq-dev
mailing list