The twist here is a low-latency kernel, which is the mainline kernel with real-time patch set with additional aggressive settings. The platform is Ubuntu 10.10 (Maverick) with kernels pulled from 11.04 development PPA, the compiler is GCC 4.4.5 which is widely reported to be slower than previous versions.
http://jackschnippes.freeunix.net/index.php/2010/11/04/lowlatency-kernel-and-realtime-kernel-for-ubuntu-10-10-maverick Attached are heat maps showing the following: [image: glLRZ.png] <http://imgur.com/BlHPi.png> *http://imgur.com/1X3tY.png* * * Y-axis is latency in microseconds, X-axis is time in seconds. Chart records test of 10,000 packets-per-second send out and received, a total of 20,000 datagrams-per-second. The left hand side shows Linux 2.6.36 with normal scheduling (SCHED_OTHER) with a tight grouping around 200us; the right hand side shows Linux 2.6.26 with real-time scheduling (SCHED_FIFO) with tighter grouping at 200us but larger spread of outliers. [image: BlHPi.png] *http://imgur.com/bJJ7V.png* Normal scheduler shows a tight grouping at 250us with minor spread of outliers; real time scheduling shows grouping at a better latency of 200us but higher spread of outliers. [image: l1wUr.png] *http://imgur.com/OPGY2.png* Normal scheduler shows grouping at 250us with spread from 200us-1ms; real time scheduling shows spread of grouping 200-250us with outliers to 1ms. [image: 0OyI7.png] *http://imgur.com/AG6cZ.png* Normal scheduler shows grouping 200-600us with outliers spread to 2ms; real time scheduling shows grouping 250-300us with outliers spread to 1.5ms with a strange gap from 1.0-1.3ms. [image: ws9uH.png] *http://imgur.com/0ba1I.png* The test program is written to busy wait, or delay, for time periods less than 2ms in duration. This ensures timely response to short timers such as created by the rate limiter. This graph shows the side effects of busy waiting and the choice of scheduler with a very high rate limit. TODO: Show timing with rate limiter at low setting. -- Steve-o
_______________________________________________ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev