Skip to content

ctz/openssl-bench

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenSSL bench

This repository provides benchmarks that measure the throughput and memory footprint you get from OpenSSL 3.x. They have been used in the past to compare performance against rustls (see the results of December 2023 and July 2019).

The measured aspects are:

  1. Bulk data transfer throughput in MiB/s;
  2. Handshake throughput (full, session id, tickets) in handshakes per second;
  3. Memory usage per connection.

Building

The code expects a built OpenSSL tree in ../openssl/ and the rustls repository in ../rustls.

Optionally you may provide a BoringSSL tree in ../boringssl/, and select it using make ... BORINGSSL=1

Running

  • make measure: runs bulk transfer and handshake throughput benchmarks using a predefined list of cipher suites.
  • make memory: measures memory usage for different amounts of connections.
  • make threads: measures bulk transfer and handshake throughput benchmarks over a range of concurrency levels.

We usually extend the duration of the benchmarks in an attempt to neutralize the effect of cold CPU and page caches, giving us more accurate results. This is done through the BENCH_MULTIPLIER environment variable, which tells the benchmark runner to multiply the amount of work done. For instance, BENCH_MULTIPLIER=8 will ensure we do 8 times the work.

About

OpenSSL benchmarking tools

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published