benchmarking-proxies icon indicating copy to clipboard operation
benchmarking-proxies copied to clipboard

Automation to perform automated benchmarks against reverse proxy services.

  • Reverse Proxy Benchmarks

Hello, and my apologies. There's a nontrivial amount of ~bash~ code here.

This is an accompanying repository for a forthcoming blog post about reverse proxy performance. The automation here is intended to perform benchmarking in a maximally reproducible and least hands-on way.

Once any prerequisite setup steps have been completed, you should be able to run, measure, and report on benchmarks with ~./bench.sh~.

** Getting Started

  • Install [[https://nixos.wiki/wiki/Flakes][nix flakes]].

  • Run ~nix develop .~ to enter a development shell with all prerequisite programs installed.

  • Configure the [[https://docs.aws.amazon.com/cli/index.html][AWS command-line tools]] (~nix~ will install it, you just need to configure it). You'll be building cloud instances, so you may want to check your setup with ~aws ec2 describe-instances~ or something.

  • ~terraform init~

  • Copy your desired remote ssh pubkey of choice to ~./ssh_pubkey~ (Terraform will look for it there).

  • Put extra spending cash into Jeff Bezos' wallet:

    #+begin_src shell ./bench.sh #+end_src

You may start with additional "virtual users" -- k6's term for concurrent clients -- with an invocation like:

#+begin_src shell VUS=100 ./bench.sh #+end_src

Your end results are a file that begins with ~table~ in ~results/~ and various ~.svg~ files in the same directory generated by ~gnuplot~.