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
plotsfolder. -
For more details check inside each benchmark's
outputfolder. -
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.shThe
benchmarksfolder contains all your custom benchmarks, inside it you should create:The
outputfolder contains everything thebenchmark.shscript creates as output (logfiles, csv, gnuplot logs, etc...).The
benchmark.shfile contains all the logic to the benchmark itself without the plotting. (Don't forget to chmod it for execution).The
plot.pis 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.shacts 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.shscript that will clean all contents of alloutputandplots. -
Main script:
The
run_benchmarks.shscript 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.