Run a load test using Apache Benchmark against whatever you want.
...or at least not without letting your closest DevOps know first...
...and even so, expect him to probably say "NO" anyway...
TODO: Use short/long opts and run more than one bench at the same time.
$ ./run_benchmarks.sh <total_requests> <concurrency> <benchmark_name>
-
The plotted graphs can be found inside the
plots
folder. -
For more details check inside each benchmark's
output
folder. -
All outputted files are named with this structure
<benchmark_name>_date('%d%m%Y')_time(%H%M%S)
This way you can pair plotted results with their according outputs.
-
In case you want to clean all your results, you can run
scripts/delete_results.sh
.
-
Folder structure:
base_dir/ ├───benchmarks/ ├─────<benchmark_folder> ├───────output/ ├───────benchmark.sh ├───────plot.p ├───plots/ ├───scripts/ ├───run_benchmarks.sh
The
benchmarks
folder contains all your custom benchmarks, inside it you should create:The
output
folder contains everything thebenchmark.sh
script creates as output (logfiles, csv, gnuplot logs, etc...).The
benchmark.sh
file contains all the logic to the benchmark itself without the plotting. (Don't forget to chmod it for execution).The
plot.p
is a gnuplot file which contains the configuration that gnuplot must follow for creating the images. -
Plots Folder:
Contains graphs from the benchmark plotted with GnuPlot.
-
Scripts Folder:
The
run_single_benchmark.sh
acts as a wrapper for all the steps of the benchmark (The actual benchmark and plotting the graph).It takes
<benchmark_name>
name as a parameter. You should not need to call this file, unless you know what you're doing.Additionally there's a
delete_results.sh
script that will clean all contents of alloutput
andplots
. -
Main script:
The
run_benchmarks.sh
script acts as a wrapper for all benchmarks and allows the user to define the total amount of requests, concurrency and call more than one benchmark.