How to Benchmark SSL Performance

OpenSSL is the default package for managing certificates and serving HTTPS pages on Linux servers. It’s how you’re seeing this page via HTTPS right now.

You might be interested in seeing how you can benchmark how fast your server can serve HTTPS requests as a part of tuning it.

the openssl command comes with this ability built in.

The following command will prompt openssl to make as many requests as it can for 30s and print the results:

openssl s_time -connect <HOST>:443

Replace with the hostname of the server you want to test e.g. example.com:443

Don’t run this command against a host you don’t have permission from as it will heavily load the system.

The output will look like the following (lots of stars omitted):

# openssl s_time -connect <HOST>:443
Collecting connection statistics for 30 seconds
*************************************************************************************************...

4148 connections in 2.62s; 1583.21 connections/user sec, bytes read 0
4148 connections in 31 real seconds, 0 bytes read per connection


Now timing with session id reuse.
starting
*************************************************************************************************...

4243 connections in 2.78s; 1526.26 connections/user sec, bytes read 0
4243 connections in 31 real seconds, 0 bytes read per connection

This server was able to perform 1526 requests per second.