The OnixS directConnect: CME iLink 3 Binary Order Entry Handler SDK now supports the SolarflareTM TCPDirect ultra-low latency network stack API to ensure the lowest possible latency and minimal jitter.
Understanding Performance Benchmarks
So what does this mean in terms of comparative performance? What benchmark performance can we expect between three different approaches of:
- native sockets,
- using just the SolarflareTM OpenOnload network stack,
- and using the specific features of the SolarflareTM TCPDirect API?
First, it is important to note that all OnixS direct market access SDKs, including the OnixS directConnect: CME iLink 3 Binary Order Entry Handler SDK discussed here, include reference implementation source code samples.
These are intended as fast-start reference codes for developers to review, run and adapt to the specific target deployment context. These samples include reference implementation samples include Getting Started samples for connectivity, order entry, storage persistence, SBE Decoding, session scheduling, thread pools, trading clients, and general and TCPDirect specific benchmarks.
We provide the reference implementation benchmark source code samples to encourage firms to execute the benchmarks on the target platforms near the target production deployment context. This provides real benchmark profile results rather than opaque vendor numbers.
As an example, when executing the three scenarios above, representative benchmark profiles are presented as below:
Native sockets:
Handler Receive |
min: |
34 |
median: |
65 |
99th percentile: |
84 |
Handler Send |
min: |
44 |
median: |
46 |
99th percentile: |
60 |
Handler Send+Receive |
min: |
81 |
median: |
112 |
99th percentile: |
132 |
OS + Handler Send (depends on the network card, kernel bypass software, OS load) |
|
min: |
1782 |
median: |
1945 |
99th percentile: |
3639 |
One-Way (Round-Trip/2) |
min: |
3327 |
median: |
4131 |
99th percentile: |
4921 |
onload --profile=latency:
Handler Receive |
min: |
30 |
median: |
37 |
99th percentile: |
73 |
Handler Send |
min: |
44 |
median: |
46 |
99th percentile: |
62 |
Handler Send+Receive |
min: |
76 |
median: |
84 |
99th percentile: |
124 |
OS + Handler Send (depends on the network card, kernel bypass software, OS load) |
|
min: |
454 |
median: |
571 |
99th percentile: |
693 |
One-Way (Round-Trip/2) |
min: |
2127 |
median: |
2189 |
99th percentile: |
2643 |
TCPDirect:
Handler Receive |
min: |
21 |
median: |
23 |
99th percentile: |
34 |
Handler Send |
min: |
44 |
median: |
46 |
99th percentile: |
56 |
Handler Send+Receive |
min: |
66 |
median: |
69 |
99th percentile: |
82 |
OS + Handler Send (depends on the network card, kernel bypass software, OS load) |
|
min: |
198 |
median: |
203 |
99th percentile: |
297 |
One-Way (Round-Trip/2) |
min: |
1804 |
median: |
1954 |
99th percentile: |
2180 |
All latencies here are shown in nanoseconds.
The reference environment used for the above was:
- Version:
OnixS directConnect: CME iLink 3 Binary Order Entry Handler SDK C++ implementation version 1.10.0
- Hardware:
Intel i7-7700K@5GHz, Solarflare Flareon Ultra SFN8542-Plus Server Adapter
- Software:
Ubuntu 18.04, gcc 7.5.0
Clear Latency Performance Improvements
The numbers speak for themselves with latency performance showing incremental improvements across the 3 scenarios, and the variance band for the TCPDirect 99th percentile results being much narrower – i.e. less jitter and more deterministic.
To reiterate, these are executions of the OnixS standard benchmark samples for informational comparison. If you’ve read this far, then we’d suggest that you have a closer look and try them yourself.
For more technical information on the OnixS directConnect: CME iLink 3 Binary Order Entry Handler SDK – and the SolarflareTM Onload and TCPDirect features – refer to the OnixS directConnect: CME iLink 3 Binary Order Entry Handler SDK Programming Guide.
Request Evaluation Access
To request a free evaluation of the OnixS directConnect: CME iLink 3 Binary Order Entry Handler SDK to support CME Globex iLink 3 and the BrokerTec migration to CME Globex, register to download an evaluation SDK.