Versions Compared

Key

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

Hardware

Client host (epam1)

Approach

Benchmarks were run against two different versions of FIXEdge Java (1.10.2 and 1.9.0), and the results were compared in order to detect possible regressions.

Hardware

FIXEdge Machine

  • 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

...

Client Machine

  • 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

...

Benchmarks

Single Session Echo Scenario

...

  • One acceptor session is configured on the

...

  • FIXEdge Java side.

...

  • One initiator session is configured on the client

...

  • application side.

The

...

process

...

:

...

  1. The client application connects to the

...

  1. FIXEdge Java instance and sends

...

  1. 1000000 FIX 4.2 messages

...

  1. at a rate of

...

  1. 50000 messages per second.

...

  1. FIXEdge Java receives the messages and matches them to the same session using business layer logic.

...

  1. FIXEdge Java responds to the client application with the same message

...

  1. via the same TCP/IP connection (the same session).
  2. The client application collects the response time histogram.
  3. The process is repeated 5 times for each FIXEdge Java release version.

The response time measured by the client application is the difference between timestamps:

  • t1 - timestamp is taken right before sending a message to the

...

  • socket
  • t2 - timestamp is taken right after receiving the same message

...

  • from the

...

  • socket (from FIXEdge)

So the round-trip time formula is: RTT = t2 - t1 and the measurement unit is

...

microseconds.

The test scenario diagram:

Drawio
borderfalse
diagramNameFIXEdge Java Test Scenario
simpleViewerfalse

Results

Image Removed

...

width600
linksauto
tbstylehidden
diagramDisplayName
lboxfalse
diagramWidth540
revision1

Results

The performance of the FIXEdge Java 1.10.2 version is almost the same as the performance of the FIXEdge 1.9.0 version. There is no performance degradation.

Image Added


FEJ 1.9.0, usecFEJ 1.10.2, usec
Min9.064
8
9.
744
112
Max
206.719
205.183209.663
Median9.
383
4959.671
Average9.
65565
74139.97869
50%9.
383
4959.671
75%9.5759.
487
815
90%9.
719
67110.039
95%9.74310.
823
183
99%11.08711.
031
399
99.9%
123.967
113.215136.959
99.99%190.207
198
195.
143
071