Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Table of Contents
Overview

There is a new low latency socket option available in RHEL 7.1 called SO_BUSY_POLL that can be used with FIX Antenna C++ to reduce the latency of message receiving. The socket option can be applied to a small number of FIX session connections created in AGGRESSIVE_RECEIVE or AGGRESSIVE_SEND_AND_RECEIVE modes. The number of connections covered should be kept small because each socket in this mode keeps one CPU core completely busy.

...

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.1i7 3.6 GHz CPUMyricom 10G NICs; packages were passed through 10G cross-over cableeverything was installed on a single machine.

  1. SO_BUSY_POLL is enabled using SocketBusyPollTime. This is a new mode.

    Code Block
    languagebash
    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

  2. SO_BUSY_POLL is disabled.
    Total latency (nanoseconds):
    MIN: 39530
    MAX: 166082
    AVG: 47499

  3. SO_BUSY_POLL is disabled, but “busy poll” is enabled inside of Antenna using installation.

    Code Block
    languagebash
    Session.target/sender.AggressiveReceiveDelay = 0

    Total latency (nanoseconds):
    MIN: 15854
    MAX: 123549
    AVG: 18831

...