Skip to content
My Earlham College CS Capstone Project
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

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

Executing the 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 simulations/plots/).

./ <servers: 1..8> <requests> <concurrent> [plot directory]

There is a detailed log file generated in simulations/logs/ after each execution of If all goes well, the script will generate a new graph in simulations/plots/ with the simulation results.

For the best performance, you should recompile Nginx with debugging turned off (see my Nginx readme).

Running multiple simulations

The script provides an example for executing as many simulations as one would like. It may run for a while, so consider using nohup.

nohup ./ &
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

More information about this repository

You can’t perform that action at this time.