blob: 32d01e7ea608c549b764deaae9aadf12965e8d22 [file] [log] [blame] [view]
# Alpha Benchmark tool
The Alpha Benchmark Project is a Stress test tool, Test Alpha speed by simulating sending Omega events. This simulator sends a set of global transactions with three sub-transactions
```prop
SagaStartedEvent
TxStartedEvent
TxEndedEvent
TxStartedEvent
TxEndedEvent
TxStartedEvent
TxEndedEvent
SagaEndedEvent
```
## Basic Usage
```bash
java -jar alpha-benchmark-0.5.0-SNAPSHOT-exec.jar --alpha.cluster.address=0.0.0.0:8080 --w=50 --n=200000 --c=500
```
Output:
```bash
Benchmarking ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
Warm Up 500
Concurrency Level 500
Time taken for tests 113 seconds
Complete requests 200000
Failed requests 0
Requests per second 1769 [#/sec]
Time per request 283 [ms]
Percentage of the requests served within a certain time (ms)
50% 274.33
60% 276.00
70% 278.29
80% 280.14
90% 280.17
100% 282.51
2019-07-15 16:12:50.208 INFO 39338 --- [ main] o.a.s.p.a.benchmark.SagaEventBenchmark : OK
```
## Command Line Options
```bash
--n requests Number of requests to perform
--c concurrency Number of multiple requests to make at a time
--w warm-up Number of multiple warm-up to make at a time
```
## Benchmarking Tips
Tuning Java Virtual Machines
```bash
java \
-Xmx8g -Xms8g -Xmn4g \
-Xss256k \
-XX:PermSize=128m -XX:MaxPermSize=512m \
-XX:+UseConcMarkSweepGC \
-XX:+UseParNewGC \
-XX:MaxTenuringThreshold=15 \
-XX:+ExplicitGCInvokesConcurrent \
-XX:+CMSParallelRemarkEnabled \
-XX:SurvivorRatio=8 \
-XX:+UseCompressedOops \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9090 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-jar alpha-server-0.5.0-SNAPSHOT-exec.jar \
--spring.datasource.username=saga-user \
--spring.datasource.password=saga-password \
--spring.datasource.url="jdbc:postgresql://0.0.09.0:5432/saga?useSSL=false" \
--spring.profile.active=prd \
--alpha.feature.akka.enabled=true
```
Optimizing System Performance
```bash
ulimit -u unlimited
ulimit -n 90000
```