Skip to content

robustirc/benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

benchmark

This repository contains various programs to determine RobustIRC’s performance.

cmd/robustirc-loadtest

robustirc-loadtest is an orchestration tool for running a loadtest of RobustIRC on GCP (Google Cloud Platform). Using GCP is a simple way to ensure that loadtest results are reproducible.

Refer to deployments/cluster.yaml for details on the resources which are brought up as part of a loadtest. At the time of writing, the resources are 3 100 GB Persistent Disk SSD volumes and 3 n1-standard-8 Google Compute Engine VMs in a Google Container Engine cluster.

Refer to Google Compute Engine Pricing for the costs associated with these resources. At the time of writing, assuming a loadtest takes 10 minutes, the pricing sums up to $0.18 USD for the 3 n1-standard-8 VMs, with the Persistent Disk costs being negligible.

As prerequisite, please make sure to work through the “Before you begin” sections of the following quickstart guides:

Usage:

$ go get -u github.com/robustirc/benchmark/cmd/robustirc-loadtest
$ cd $GOPATH/src/github.com/robustirc/benchmark
$ robustirc-loadtest
[…]
2016/08/13 13:50:46 sent 2016, recv 2004, (last 10s) min = 1841, max = 2011, spread = 170
2016/08/13 13:50:47 sent 2039, recv 1963, (last 10s) min = 1841, max = 2011, spread = 170
2016/08/13 13:50:48 converged! spread is < 10%
2016/08/13 13:50:48 Giving Prometheus another 15s (scrape_interval)
2016/08/13 13:51:04 RobustIRC dashboard snapshot stored at https://snapshot.raintank.io/dashboard/snapshot/V3n7wxutEooAOu4N6e0k6vQpmblwJyYj
2016/08/13 13:51:04 RobustIRC dashboard snapshot stored at https://snapshot.raintank.io/dashboard/snapshot/GQqYuaNO1BQc0Onw8DoIi7deXw9Dwqa0

You can call robustirc-loadtest as often as you wish. Each run will recompile your local working copies of robustirc/robustirc, robustirc/benchmark and robustirc/bridge (currently unused in a loadtest), restart the network on GCP and run another test.

Once you’re done, be sure to cleanup to avoid paying for unused resources:

$ robustirc-loadtest -cleanup