GitHub - rustls/rustls-bench-app (original) (raw)

Rustls bench runner

This repository contains rustls' bench runner software, meant to be deployed to a bare-metal server (though nothing prevents deploying to a VPS for testing). There are two main directories, each with a readme providing more information:

Configuration

GitHub app

The bench runner needs an associated GitHub app to receive event notifications and react to them. The app should be private, to ensure it only gets installed on the official rustls repository. If you are creating the GitHub app from scratch (e.g. for testing purposes), ensure it requires the following repository permissions:

The app should also require subscriptions to the following events (don't forget to configure the webhook's URL and a secret to ensure event authenticity):

Make sure to set the GitHub webook URL for your application with the correct/webhooks/github route, e.g.:

Hardware settings

To reduce noise, the server should be configured to disable dynamic frequency scaling (also known as Turbo Boost) and hyper threading. This needs to be done at the BIOS / UEFI level.

Bencher.dev project

The bench runner saves the results from main to a local database, but it can also push them toBencher.dev for visualization. For that, you will need to:

Features

The following features are supported:

Interesting ideas for later:

Nix Support

Since this repository requires both Ansible, and Rust, a Nix flake is provided to offer a self-contained developer environment.

To use:

  1. Install Nix
  2. nix develop
  3. You're all set! Use cargo and ansible as needed.

You may also install Direnv and direnv allow this directory to have the Nix developer environment load/unload automatically when you enter/leave the directory.