In this document you will find benchmark results for different endpoints of ORY
Hydra. All benchmarks are executed using
rakyll/hey. Please note that these benchmarks
run against the in-memory storage adapter of ORY Hydra. These benchmarks
represent what performance you would get with a zero-overhead database
We do not include benchmarks against databases (e.g. MySQL, PostgreSQL or
CockroachDB) as the performance greatly differs between deployments (e.g.
request latency, database configuration) and tweaking individual things may
greatly improve performance. We believe, for that reason, that benchmark results
for these database adapters are difficult to generalize and potentially
deceiving. They are thus not included.
This file is updated on every push to master. It thus represents the benchmark
data for the latest version.
All benchmarks run 10.000 requests in total, with 100 concurrent requests. All
benchmarks run on Circle-CI with a
"2 CPU cores and 4GB RAM"
ORY Hydra uses BCrypt to obfuscate secrets of OAuth 2.0 Clients. When using
flows such as the OAuth 2.0 Client Credentials Grant, ORY Hydra validates the
client credentials using BCrypt which causes (by design) CPU load. CPU load and
performance depend on the BCrypt cost which can be set using the environment
variable BCRYPT_COST. For these benchmarks, we have set BCRYPT_COST=8.
This endpoint uses BCrypt and generates IDs and secrets by reading
from which negatively impacts performance. Performance will be better if IDs and
secrets are set in the request as opposed to generated by ORY Hydra.
This test is currently disabled due to issues with /dev/urandom being inaccessible in the CI.