-
Notifications
You must be signed in to change notification settings - Fork 121
Benchmarking
In order to compile the benchmarks JAR run: ./gradlew benchmarks
fix-gateway-system-tests/build/libs/fix-gateway-system-tests-0.1-SNAPSHOT-benchmarks.jar
is just a standard JMH benchmark jar, so for example to run the stub decoder benchmark run:
java -jar ./fix-gateway-system-tests/build/libs/fix-gateway-system-tests-0.1-SNAPSHOT-benchmarks.jar StubDecoderBenchmark
Run the server:
java -cp ./fix-gateway-system-tests/build/libs/fix-gateway-system-tests-0.1-SNAPSHOT-benchmarks.jar uk.co.real_logic.gateway.system_benchmarks.FixBenchmarkServer
Run the benchmark client:
java -cp ./fix-gateway-system-tests/build/libs/fix-gateway-system-tests-0.1-SNAPSHOT-benchmarks.jar uk.co.real_logic.figateway.system_benchmarks.FixBenchmarkClient
If you want to build an EC2 image from scratch,
- Pick an Ubuntu HVM image
- At least a c3.2xlarge
- Install requirements/utilities
sudo apt-get install htop screen mosh
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
- Upload the current benchmark directory
scp -i /path/to/pem.pem -r bench/ ubuntu@<server-address>.compute.amazonaws.com:
You can optionally upload your .screenrc
scp -i /path/to/pem.pem ~/.screenrc ubuntu@<server-address>.compute.amazonaws.com:
Boot the "FIX Benchmark" AMI.
- Re-compile and upload the benchmarks jar:
./gradlew benchmarks
scp -i /path/to/pem.pem fix-gateway-system-tests/build/libs/*-benchmarks.jar ubuntu@<server-address>.compute.amazonaws.com:bench/
-
Run the benchmark on the EC2 image using the
./server
and./client
scripts in screen. -
Pull down the flight recording to analyse locally.
scp -i /path/to/pem.pem ubuntu@<server-address>.compute.amazonaws.com:bench/dump.jfr .