Table of Contents |
---|
...
You can find more details about this option here: http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/open-source-kernel-enhancements-paper.pdf Intel Whitepaper - Open Source Kernel Enhancements for Low-Latency Sockets using Busy Poll
Linux kernel support:
Kernel should be built with CONFIG_NET_RX_BUSY_POLL compilation option which is enabled by default in RHEL 7.x, no changes are needed for this OS.
...
Note |
---|
Note that SO_BUSY_POLL socket option is supported only by FIX Antenna 2.15.0 C++ and higher. |
Test Results
A modified Benchmark/Latency test was used in these tests. There were inserted 10ms delays between posts to make the test more realistic and the message rate similar to what occurs in practice. Number of messages = 1000.
The test was conducted on RHEL7.1, i7 3.6 GHz CPU, Myricom 10G NICs; packages were passed through 10G cross-over cable, everything was installed on a single machine.
SO_BUSY_POLL is enabled using SocketBusyPollTime. This is a new mode.
Code Block language bash Session.target/sender.SocketBusyPollTime = 600000 Session.target/sender.AggressiveReceiveDelay = 500 System::Thread::sleep(10) iterations = 1,000
Total latency (nanoseconds): <- time from sending till receiving the message
MIN: 13549
MAX: 130952
AVG: 16396- SO_BUSY_POLL is disabled.
Total latency (nanoseconds):
MIN: 39530
MAX: 166082
AVG: 47499 SO_BUSY_POLL is disabled, but “busy poll” is enabled inside of Antenna using installation.
Code Block language bash Session.target/sender.AggressiveReceiveDelay = 0
Total latency (nanoseconds):
MIN: 15854
MAX: 123549
AVG: 18831
...