CS Capstone November 2017
This is the entry point to my Earlham College CS Capstone project.
The aim of my research was to investigate the performance of innovative load balancing algorithms. This repository contains information for running my simulations along with all the source code.
Running the Simulation
setup.sh script will setup and run a load balancing
simulation using Go, Nginx, Apache Bench, and Gnuplot. All you need to
provide is the number of webservers to launch, total requests to
benchmark, and number of concurrent requests allowed. You can also
specify the directory the plot will be generated in (default is
./setup.sh <servers: 1..8> <requests> <concurrent> [plot directory]
There is a detailed log file generated in
each execution of
setup.sh. If all goes well, the script will
generate a new graph in
simulations/plots/ with the simulation
For the best performance, you should recompile Nginx with debugging turned off (see my Nginx readme).
Running multiple simulations
run_sims.sh script provides an example for executing as many
simulations as one would like. It may run for a while, so consider
nohup ./run_sims.sh & tail -f nohup.out
If something goes wrong when running the simulation or any other script, make sure that the Nginx and all websevers are no longer running.
# check if process is running ps aux | grep [n]ginx ps aux | grep "./app -name" # kill processes nginx -s stop pkill -f "./app -name" # be careful with using pkill -f