Table of Contents |
---|
Environment
Sender Host:
- Intel(R) Xeon(R) CPU E5-2643 v3 @ 3.40GHz (2 CPU Hyper-Trading Enabled, 24 Cores)
- RAM 128 GB, 2133 MHz
- NIC Solarflare Communications SFC9120 (Firmware-version: 4.2.2.1003 rx1 tx1)
- Linux (CentOS 7.0.1406 kernel 3.10.0-123.el7.x86_64)
- SolarFlare driver version: 4.1.0.6734a
...
- Intel(R) Xeon(R) CPU E5-2687W v3 @ 3.10GHz (2 CPU Hyper-Trading Enabled, 20 Cores)
- RAM 128 GB, 2133 MHz
- NIC Solarflare Communications SFC9120 (Firmware-version: 4.2.2.1003 rx1 tx1)
- Linux (CentOS 7.0.1406 kernel 3.10.0-123.el7.x86_64)
- SolarFlare driver version: 4.1.0.6734a
Test scenario
The test scenario is the following:
...
During the test Round-trip time (RTT) latency is measured. The first measurement, t1, is made before the message is sent by the Initiator, the second, t2, is made after the received message is parsed by the Initiator.
RTT=t2-t1.
Test configurations
Properties | Balanced | Optimized | |
---|---|---|---|
Nagle's algorithm1 | ✔ | ||
Message validation parameters | validateCheckSum | ✔ | |
validateGarbledMessage | ✔ | ||
Storage type | Persistent | In memory | |
Queue type | Persistent | In memory |
...
- Balanced. It is the good starting point with balanced performance and security. Basic validation options are enabled to prevent corrupted message processing.
- Optimized. It is the configuration aimed at maximum performance. All validation options as well as message persistence are disabled, so it has to be used only in the fully controlled environment.
Results
FIX Antenna Java configurations comparison
Configuration | Balanced | Optimized |
---|---|---|
Latency values (microseconds) | ||
Min | 39,9 | 27,2 |
Max | 1442,3 | 1200,7 |
Average | 45,8 | 31,1 |
Latency distribution (percentiles) | ||
50% | 43 | 29,5 |
95% | 62,6 | 39,3 |
99% | 74,8 | 57,6 |
FIX Antenna Java 2.15.27 vs QuickFIX Java 1.6.3
The benchmark code was ported to QuickFIXJ:
...