Multi threaded Benchmark Example - accelio/JXIO GitHub Wiki

A multi-threaded client, and a multi-threaded server demonstrating how to scale and work in multi threaded environment.
This example is also used as the main JXIO data path benchmark tool.

The example below demonstrates a scenario where the client is connected to the server on the IP 2.2.2.3. It sends 1KB payload requests to the server and receives an “ack” of size 0 as response.

The results on our test machine where:

  • average_TPS = 1110626.32
  • average_TX_BW = 1084.596015625 MB

Shell run script: https://github.com/accelio/JXIO/blob/master/examples/runJBenchmarkTest.py
Source code: https://github.com/accelio/JXIO/tree/master/examples/org/accelio/jxio/tests/benchmarks

Benchmark test on client side

$ example/runJBenchmarkTest.py -c -a 2.2.2.3 -i 1024 -o 0
PYTHONPATH is /usr/bin/python
LD library is: <path to JXIO>/tests
Compiling JAVA files....
------ Running Client Test Application -----
running client task number 1
gathering results from tasks
processing results
average_TPS = 1110626.32, average_RX_BW = 0.0 MB, average_TX_BW = 1084.596015625 MB, in_msg_size = 0 Bytes, out_msg_size = 1024 Bytes

Benchmark test on server side:

$./runJBenchmarkTest.py -s -a 2.2.2.3 -i 1024 -o 0
PYTHONPATH is /usr/bin/python
LD library is: <path to JXIO>/tests
Compiling JAVA files....
------ Running Server Test Application -----
Starting server portal workers
Server worker number 1 is up and waiting for requests
Server worker number 1 got new Session, now handling 1 sessions
got event SESSION_CLOSED, the reason is SESSION_DISCONNECTED
Server worker number 1 disconnected from a Session, now handling 0 sessions