From b2cdf2b328dd32d088cdc1fa183729cb8327db29 Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 13:14:14 +0200 Subject: [PATCH 01/29] docs: Adds CI benchmarks --- .circleci/config.yml | 19 ++++ BENCHMARKS.md | 232 +++++++++++++++++++++++++++++++++++++++++++ scripts/run-bench.sh | 137 +++++++++++++++++++++++++ 3 files changed, 388 insertions(+) create mode 100644 BENCHMARKS.md create mode 100644 scripts/run-bench.sh diff --git a/.circleci/config.yml b/.circleci/config.yml index 056aba5bc10..2178ca72cee 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -142,6 +142,21 @@ jobs: - run: "cp ./docs/api.swagger.json ../docs/apis/hydra.json" - run: "(cd ../docs && git add -A && git commit -a -m \"Updates ORY Hydra Swagger definitions\" && git push origin) || exit 0" + benchmark: + docker: + - image: circleci/golang:1.10 + working_directory: /go/src/github.com/ory/hydra + steps: + - checkout + - run: git config --global user.email "hi@ory.am" + - run: git config --global user.name "ORY Continuous Integration" + - run: curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh + - run: go get -u https://github.com/rakyll/hey + - run: dep ensure -vendor-only + - run: go install . + - run: ./scripts/test-install.sh + - run: "git commit -a -m \"Updates benchmark document\" && git push origin || exit 0" + workflows: version: 2 "test, build, push, and deploy": @@ -158,6 +173,10 @@ workflows: filters: branches: only: master + - benchmark: + filters: + branches: + only: master - swagger: filters: tags: diff --git a/BENCHMARKS.md b/BENCHMARKS.md new file mode 100644 index 00000000000..d3ae30d6581 --- /dev/null +++ b/BENCHMARKS.md @@ -0,0 +1,232 @@ +# Benchmarks + +In this document you will find benchmark results for different endpoints of ORY Hydra. All benchmarks are executed +using [rakyll/hey](https://github.com/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 implementation. + +We do not include benchmarks against databases (e.g. MySQL or PostgreSQL) 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. + +## OAuth 2.0 + +This section contains various benchmarks against + +### Token Introspection + +``` + +Summary: + Total: 0.4724 secs + Slowest: 0.1059 secs + Fastest: 0.0002 secs + Average: 0.0046 secs + Requests/sec: 21169.1376 + + Total data: 1550000 bytes + Size/request: 155 bytes + +Response time histogram: + 0.000 [1] | + 0.011 [9694] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.021 [204] |■ + 0.032 [1] | + 0.042 [0] | + 0.053 [0] | + 0.064 [0] | + 0.074 [0] | + 0.085 [14] | + 0.095 [77] | + 0.106 [9] | + + +Latency distribution: + 10% in 0.0008 secs + 25% in 0.0018 secs + 50% in 0.0032 secs + 75% in 0.0051 secs + 90% in 0.0076 secs + 95% in 0.0094 secs + 99% in 0.0797 secs + +Details (average, fastest, slowest): + DNS+dialup: 0.0007 secs, 0.0002 secs, 0.1059 secs + DNS-lookup: 0.0002 secs, 0.0000 secs, 0.0531 secs + req write: 0.0000 secs, 0.0000 secs, 0.0044 secs + resp wait: 0.0035 secs, 0.0001 secs, 0.0482 secs + resp read: 0.0002 secs, 0.0000 secs, 0.0057 secs + +Status code distribution: + [200] 10000 responses + + + +``` + +### Client Credentials Grant + +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` + +``` +``` + +## OAuth 2.0 Client Management + +### Creating OAuth 2.0 Clients + +``` + +Summary: + Total: 166.4903 secs + Slowest: 1.9983 secs + Fastest: 0.0286 secs + Average: 1.6563 secs + Requests/sec: 60.0636 + + Total data: 2960000 bytes + Size/request: 296 bytes + +Response time histogram: + 0.029 [1] | + 0.226 [7] | + 0.423 [9] | + 0.620 [11] | + 0.816 [10] | + 1.013 [11] | + 1.210 [14] | + 1.407 [11] | + 1.604 [2421] |■■■■■■■■■■■■■■ + 1.801 [6903] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 1.998 [602] |■■■ + + +Latency distribution: + 10% in 1.5426 secs + 25% in 1.6045 secs + 50% in 1.6648 secs + 75% in 1.7204 secs + 90% in 1.7713 secs + 95% in 1.8132 secs + 99% in 1.9173 secs + +Details (average, fastest, slowest): + DNS+dialup: 0.0009 secs, 0.0286 secs, 1.9983 secs + DNS-lookup: 0.0003 secs, 0.0000 secs, 0.0661 secs + req write: 0.0000 secs, 0.0000 secs, 0.0011 secs + resp wait: 1.6553 secs, 0.0284 secs, 1.9983 secs + resp read: 0.0001 secs, 0.0000 secs, 0.0006 secs + +Status code distribution: + [201] 10000 responses + + + +``` + +### Listing OAuth 2.0 Clients + +``` + +Summary: + Total: 1.3342 secs + Slowest: 0.1486 secs + Fastest: 0.0004 secs + Average: 0.0131 secs + Requests/sec: 7495.0405 + + +Response time histogram: + 0.000 [1] | + 0.015 [8892] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.030 [961] |■■■■ + 0.045 [46] | + 0.060 [0] | + 0.075 [0] | + 0.089 [36] | + 0.104 [52] | + 0.119 [7] | + 0.134 [4] | + 0.149 [1] | + + +Latency distribution: + 10% in 0.0091 secs + 25% in 0.0111 secs + 50% in 0.0122 secs + 75% in 0.0135 secs + 90% in 0.0155 secs + 95% in 0.0184 secs + 99% in 0.0820 secs + +Details (average, fastest, slowest): + DNS+dialup: 0.0007 secs, 0.0004 secs, 0.1486 secs + DNS-lookup: 0.0002 secs, 0.0000 secs, 0.0496 secs + req write: 0.0000 secs, 0.0000 secs, 0.0086 secs + resp wait: 0.0117 secs, 0.0003 secs, 0.0582 secs + resp read: 0.0007 secs, 0.0000 secs, 0.0269 secs + +Status code distribution: + [200] 10000 responses + + + +``` + +### Fetching a specific OAuth 2.0 Client + +``` + +Summary: + Total: 0.3439 secs + Slowest: 0.1068 secs + Fastest: 0.0001 secs + Average: 0.0034 secs + Requests/sec: 29080.4190 + + Total data: 2650000 bytes + Size/request: 265 bytes + +Response time histogram: + 0.000 [1] | + 0.011 [9892] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.021 [7] | + 0.032 [0] | + 0.043 [0] | + 0.053 [0] | + 0.064 [0] | + 0.075 [0] | + 0.085 [0] | + 0.096 [11] | + 0.107 [89] | + + +Latency distribution: + 10% in 0.0009 secs + 25% in 0.0014 secs + 50% in 0.0021 secs + 75% in 0.0031 secs + 90% in 0.0044 secs + 95% in 0.0056 secs + 99% in 0.0927 secs + +Details (average, fastest, slowest): + DNS+dialup: 0.0008 secs, 0.0001 secs, 0.1068 secs + DNS-lookup: 0.0003 secs, 0.0000 secs, 0.0663 secs + req write: 0.0000 secs, 0.0000 secs, 0.0023 secs + resp wait: 0.0019 secs, 0.0001 secs, 0.0488 secs + resp read: 0.0004 secs, 0.0000 secs, 0.0077 secs + +Status code distribution: + [200] 10000 responses + + + +``` diff --git a/scripts/run-bench.sh b/scripts/run-bench.sh new file mode 100644 index 00000000000..e4d08cbe87a --- /dev/null +++ b/scripts/run-bench.sh @@ -0,0 +1,137 @@ +#!/bin/bash + +set -euo pipefail + +cd "$( dirname "${BASH_SOURCE[0]}" )/.." + +numReqs=10000 +numParallel=100 +clientId=benchclient +clientSecret=benchsecret +basicAuth=YmVuY2hjbGllbnQ6YmVuY2hzZWNyZXQ= + +cat > BENCHMARKS.md << EOF +# Benchmarks + +In this document you will find benchmark results for different endpoints of ORY Hydra. All benchmarks are executed +using [rakyll/hey](https://github.com/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 implementation. + +We do not include benchmarks against databases (e.g. MySQL or PostgreSQL) 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. + +## BCrypt + +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\`. + +EOF + +BCRYPT_COST=8 PORT=9000 ISSUER_URL=http://localhost:9000 DATABASE_URL=memory hydra serve --dangerous-force-http --disable-telemetry > /dev/null 2>&1 & + +while ! echo exit | nc 127.0.0.1 9000; do sleep 1; done + +sleep 1 + +echo "Creating benchmark client" +hydra clients create \ + -g client_credentials \ + --id $clientId \ + --secret $clientSecret \ + -a foo \ + --endpoint http://localhost:9000 + +echo "Generating initial access tokens for token introspection benchmark" +authToken=$(hydra token client --endpoint http://localhost:9000 --client-id $clientId --client-secret $clientSecret) +introToken=$(hydra token client --endpoint http://localhost:9000 --client-id $clientId --client-secret $clientSecret) + +cat >> BENCHMARKS.md << EOF +## OAuth 2.0 + +This section contains various benchmarks against OAuth 2.0 endpoints + +### Token Introspection + +\`\`\` +EOF + +hey -n $numReqs -c $numParallel -m POST \ + -H "Authorization: Bearer $authToken" \ + -H "Content-Type: application/x-www-form-urlencoded" \ + -d "token=$introToken" \ + http://localhost:9000/oauth2/introspect 2>&1 \ + | tee -a BENCHMARKS.md + + +cat >> BENCHMARKS.md << EOF +\`\`\` + +### Client Credentials Grant + +This endpoint uses [BCrypt](#bcrypt). + +\`\`\` +EOF + +#hey -n $numReqs -c $numParallel -m POST \ +# -H "Authorization: Basic $basicAuth" \ +# -H "Content-Type: application/x-www-form-urlencoded" \ +# -d "grant_type=client_credentials" \ +# http://localhost:9000/oauth2/token 2>&1 \ +# | tee -a BENCHMARKS.md + + +cat >> BENCHMARKS.md << EOF +\`\`\` + +## OAuth 2.0 Client Management + +### Creating OAuth 2.0 Clients + +This endpoint uses [BCrypt](#bcrypt) and generates IDs and secrets by reading from `/dev/urandom` which negatively impacts +performance. Performance will be better if IDs and secrets are set in the request as opposed to generated by ORY Hydra. + +\`\`\` +EOF + +hey -n $numReqs -c $numParallel -m POST \ + -H "Content-Type: application/json" \ + -d '{}' \ + http://localhost:9000/clients 2>&1 \ + | tee -a BENCHMARKS.md + +cat >> BENCHMARKS.md << EOF +\`\`\` + +### Listing OAuth 2.0 Clients + +\`\`\` +EOF + +hey -n $numReqs -c $numParallel -m GET \ + http://localhost:9000/clients 2>&1 \ + | tee -a BENCHMARKS.md + +cat >> BENCHMARKS.md << EOF +\`\`\` + +### Fetching a specific OAuth 2.0 Client + +\`\`\` +EOF + +hey -n $numReqs -c $numParallel -m GET \ + http://localhost:9000/clients/$clientId 2>&1 \ + | tee -a BENCHMARKS.md + +cat >> BENCHMARKS.md << EOF +\`\`\` +EOF \ No newline at end of file From 5f9b9d427715a781d27dda4796451677911a3ab6 Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 13:14:40 +0200 Subject: [PATCH 02/29] docs: Adds CI benchmarks --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2178ca72cee..c4ebd6f12a4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -176,7 +176,7 @@ workflows: - benchmark: filters: branches: - only: master + only: test-bench - swagger: filters: tags: From 4dc15e57899502b9cea028c50c2a1fdb7eb54a49 Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 13:16:27 +0200 Subject: [PATCH 03/29] docs: Adds CI benchmarks --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index c4ebd6f12a4..3c31ebf7891 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -151,7 +151,7 @@ jobs: - run: git config --global user.email "hi@ory.am" - run: git config --global user.name "ORY Continuous Integration" - run: curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh - - run: go get -u https://github.com/rakyll/hey + - run: go get -u github.com/rakyll/hey - run: dep ensure -vendor-only - run: go install . - run: ./scripts/test-install.sh From d1b01a5378fbb91cdd5eed0bc70050699e57a096 Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 13:17:58 +0200 Subject: [PATCH 04/29] docs: Adds CI benchmarks --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3c31ebf7891..b3851ddc3a8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -154,7 +154,7 @@ jobs: - run: go get -u github.com/rakyll/hey - run: dep ensure -vendor-only - run: go install . - - run: ./scripts/test-install.sh + - run: ./scripts/run-bench.sh - run: "git commit -a -m \"Updates benchmark document\" && git push origin || exit 0" workflows: From f21606ef531ee891fab54ecb4ae391ce337ddf29 Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 13:19:09 +0200 Subject: [PATCH 05/29] docs: Adds CI benchmarks --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 02c38cb4365..35e5f3caf24 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ able to securely manage JSON Web Keys. - [ORY Keto: Access Control Policies as a Server](#ory-keto-access-control-policies-as-a-server) - [Security](#security) - [Disclosing vulnerabilities](#disclosing-vulnerabilities) +- [Benchmarks](#benchmarks) - [Telemetry](#telemetry) - [Documentation](#documentation) - [Guide](#guide) @@ -220,6 +221,10 @@ Read [the security guide now](https://www.ory.sh/docs/1-hydra/0-tutorial/0-readm If you think you found a security vulnerability, please refrain from posting it publicly on the forums, the chat, or GitHub and send us an email to [hi@ory.am](mailto:hi@ory.am) instead. +## Benchmarks + +Our continuous integration runs a collection of benchmarks against ORY Hydra. You can find the results in [./BENCHMARKS.md](BENCHMARKS.md). + ## Telemetry Our services collect summarized, anonymized data which can optionally be turned off. Click From d81d8a8677ae190b10edc5b39ba61e6e08e8b1bc Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 13:19:30 +0200 Subject: [PATCH 06/29] unstaged --- scripts/run-bench.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 scripts/run-bench.sh diff --git a/scripts/run-bench.sh b/scripts/run-bench.sh old mode 100644 new mode 100755 From f1d667ac44ae86f5f6a173122e473f32aed38967 Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 13:22:42 +0200 Subject: [PATCH 07/29] docs: Adds CI benchmarks --- scripts/run-bench.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/run-bench.sh b/scripts/run-bench.sh index e4d08cbe87a..914ada583b1 100755 --- a/scripts/run-bench.sh +++ b/scripts/run-bench.sh @@ -81,12 +81,12 @@ This endpoint uses [BCrypt](#bcrypt). \`\`\` EOF -#hey -n $numReqs -c $numParallel -m POST \ -# -H "Authorization: Basic $basicAuth" \ -# -H "Content-Type: application/x-www-form-urlencoded" \ -# -d "grant_type=client_credentials" \ -# http://localhost:9000/oauth2/token 2>&1 \ -# | tee -a BENCHMARKS.md +hey -n $numReqs -c $numParallel -m POST \ + -H "Authorization: Basic $basicAuth" \ + -H "Content-Type: application/x-www-form-urlencoded" \ + -d "grant_type=client_credentials" \ + http://localhost:9000/oauth2/token 2>&1 \ + | tee -a BENCHMARKS.md cat >> BENCHMARKS.md << EOF From 666f2c22bdb41b4b9ab306954cb148e5ae0d957c Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 13:27:17 +0200 Subject: [PATCH 08/29] docs: Adds CI benchmarks --- scripts/run-bench.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/scripts/run-bench.sh b/scripts/run-bench.sh index 914ada583b1..2482821d3fc 100755 --- a/scripts/run-bench.sh +++ b/scripts/run-bench.sh @@ -24,7 +24,9 @@ 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 10.000 requests in total, with 100 concurrent requests. All benchmarks run on Circle-CI with a +["2 CPU cores and 4GB RAM"](https://support.circleci.com/hc/en-us/articles/360000489307-Why-do-my-tests-take-longer-to-run-on-CircleCI-than-locally-) +configuration. ## BCrypt @@ -100,13 +102,14 @@ This endpoint uses [BCrypt](#bcrypt) and generates IDs and secrets by reading fr 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. EOF -hey -n $numReqs -c $numParallel -m POST \ - -H "Content-Type: application/json" \ - -d '{}' \ - http://localhost:9000/clients 2>&1 \ - | tee -a BENCHMARKS.md +##hey -n $numReqs -c $numParallel -m POST \ +# -H "Content-Type: application/json" \ +# -d '{}' \ +# http://localhost:9000/clients 2>&1 \ +# | tee -a BENCHMARKS.md cat >> BENCHMARKS.md << EOF \`\`\` From 2a3eb4a79eef34fedde677d2c2aad586dacd579b Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 13:35:03 +0200 Subject: [PATCH 09/29] docs: Adds CI benchmarks --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b3851ddc3a8..ddc2d6448ae 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -155,7 +155,7 @@ jobs: - run: dep ensure -vendor-only - run: go install . - run: ./scripts/run-bench.sh - - run: "git commit -a -m \"Updates benchmark document\" && git push origin || exit 0" + - run: "git commit -a -m \"Updates benchmark document\" && git push --set-upstream $CIRCLE_BRANCH origin || exit 0" workflows: version: 2 From c03f264b1d043300c5b8945df2a776605c5bf8b2 Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 13:37:30 +0200 Subject: [PATCH 10/29] docs: Adds CI benchmarks --- .circleci/config.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ddc2d6448ae..3a7d3da61fb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -155,7 +155,9 @@ jobs: - run: dep ensure -vendor-only - run: go install . - run: ./scripts/run-bench.sh - - run: "git commit -a -m \"Updates benchmark document\" && git push --set-upstream $CIRCLE_BRANCH origin || exit 0" + - run: git remote rm origin + - run: git remote add origin https://arekkas:$GITHUB_TOKEN@github.com/ory/hydra.git + - run: "git commit -m \"Updates benchmark document\" -- CHANGELOG.md && git push --set-upstream $CIRCLE_BRANCH origin || exit 0" workflows: version: 2 From 17ff59b51cd20f708da28c8bd7a5a6f657975d7b Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 13:39:22 +0200 Subject: [PATCH 11/29] docs: Adds CI benchmarks --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3a7d3da61fb..88742030327 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -157,7 +157,8 @@ jobs: - run: ./scripts/run-bench.sh - run: git remote rm origin - run: git remote add origin https://arekkas:$GITHUB_TOKEN@github.com/ory/hydra.git - - run: "git commit -m \"Updates benchmark document\" -- CHANGELOG.md && git push --set-upstream $CIRCLE_BRANCH origin || exit 0" + - run: "git commit -m \"Updates benchmark document\" -- BENCHMARKS.md || exit 0" + - run: git push --set-upstream $CIRCLE_BRANCH origin || exit 0 workflows: version: 2 From 8cc7104a483a4c9a618e0c3a074214536a7cb67f Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 13:48:20 +0200 Subject: [PATCH 12/29] docs: Adds CI benchmarks --- .circleci/config.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 88742030327..1d248eb232b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -158,7 +158,8 @@ jobs: - run: git remote rm origin - run: git remote add origin https://arekkas:$GITHUB_TOKEN@github.com/ory/hydra.git - run: "git commit -m \"Updates benchmark document\" -- BENCHMARKS.md || exit 0" - - run: git push --set-upstream $CIRCLE_BRANCH origin || exit 0 + - run: git fetch origin + - run: git push -u origin $CIRCLE_BRANCH || exit 0 workflows: version: 2 From dfe482bc7e9a76ee2b19572effd59c3fc2ac5107 Mon Sep 17 00:00:00 2001 From: ORY Continuous Integration Date: Sun, 3 Jun 2018 11:49:45 +0000 Subject: [PATCH 13/29] Updates benchmark document --- BENCHMARKS.md | 260 ++++++++++++++++++++++++++------------------------ 1 file changed, 136 insertions(+), 124 deletions(-) diff --git a/BENCHMARKS.md b/BENCHMARKS.md index d3ae30d6581..e8934b7130e 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -11,55 +11,64 @@ 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 10.000 requests in total, with 100 concurrent requests. All benchmarks run on Circle-CI with a +["2 CPU cores and 4GB RAM"](https://support.circleci.com/hc/en-us/articles/360000489307-Why-do-my-tests-take-longer-to-run-on-CircleCI-than-locally-) +configuration. + +## BCrypt + +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`. ## OAuth 2.0 -This section contains various benchmarks against +This section contains various benchmarks against OAuth 2.0 endpoints ### Token Introspection ``` Summary: - Total: 0.4724 secs - Slowest: 0.1059 secs + Total: 1.2983 secs + Slowest: 0.0601 secs Fastest: 0.0002 secs - Average: 0.0046 secs - Requests/sec: 21169.1376 + Average: 0.0125 secs + Requests/sec: 7702.6034 Total data: 1550000 bytes Size/request: 155 bytes Response time histogram: 0.000 [1] | - 0.011 [9694] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.021 [204] |■ - 0.032 [1] | - 0.042 [0] | - 0.053 [0] | - 0.064 [0] | - 0.074 [0] | - 0.085 [14] | - 0.095 [77] | - 0.106 [9] | + 0.006 [2297] |■■■■■■■■■■■■■■■■■■■■■■■ + 0.012 [2044] |■■■■■■■■■■■■■■■■■■■■ + 0.018 [3997] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.024 [1093] |■■■■■■■■■■■ + 0.030 [318] |■■■ + 0.036 [136] |■ + 0.042 [78] |■ + 0.048 [30] | + 0.054 [4] | + 0.060 [2] | Latency distribution: - 10% in 0.0008 secs - 25% in 0.0018 secs - 50% in 0.0032 secs - 75% in 0.0051 secs - 90% in 0.0076 secs - 95% in 0.0094 secs - 99% in 0.0797 secs + 10% in 0.0021 secs + 25% in 0.0067 secs + 50% in 0.0133 secs + 75% in 0.0165 secs + 90% in 0.0207 secs + 95% in 0.0252 secs + 99% in 0.0381 secs Details (average, fastest, slowest): - DNS+dialup: 0.0007 secs, 0.0002 secs, 0.1059 secs - DNS-lookup: 0.0002 secs, 0.0000 secs, 0.0531 secs - req write: 0.0000 secs, 0.0000 secs, 0.0044 secs - resp wait: 0.0035 secs, 0.0001 secs, 0.0482 secs - resp read: 0.0002 secs, 0.0000 secs, 0.0057 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0601 secs + DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0212 secs + req write: 0.0001 secs, 0.0000 secs, 0.0202 secs + resp wait: 0.0117 secs, 0.0002 secs, 0.0588 secs + resp read: 0.0004 secs, 0.0000 secs, 0.0236 secs Status code distribution: [200] 10000 responses @@ -70,65 +79,66 @@ Status code distribution: ### Client Credentials Grant -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` - -``` -``` - -## OAuth 2.0 Client Management - -### Creating OAuth 2.0 Clients +This endpoint uses [BCrypt](#bcrypt). ``` Summary: - Total: 166.4903 secs - Slowest: 1.9983 secs - Fastest: 0.0286 secs - Average: 1.6563 secs - Requests/sec: 60.0636 + Total: 24.5916 secs + Slowest: 1.3067 secs + Fastest: 0.0205 secs + Average: 0.2387 secs + Requests/sec: 406.6423 - Total data: 2960000 bytes - Size/request: 296 bytes + Total data: 1570000 bytes + Size/request: 157 bytes Response time histogram: - 0.029 [1] | - 0.226 [7] | - 0.423 [9] | - 0.620 [11] | - 0.816 [10] | - 1.013 [11] | - 1.210 [14] | - 1.407 [11] | - 1.604 [2421] |■■■■■■■■■■■■■■ - 1.801 [6903] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 1.998 [602] |■■■ + 0.021 [1] | + 0.149 [2045] |■■■■■■■■■■■■■■■■■■ + 0.278 [4642] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.406 [2658] |■■■■■■■■■■■■■■■■■■■■■■■ + 0.535 [472] |■■■■ + 0.664 [91] |■ + 0.792 [37] | + 0.921 [38] | + 1.050 [11] | + 1.178 [4] | + 1.307 [1] | Latency distribution: - 10% in 1.5426 secs - 25% in 1.6045 secs - 50% in 1.6648 secs - 75% in 1.7204 secs - 90% in 1.7713 secs - 95% in 1.8132 secs - 99% in 1.9173 secs + 10% in 0.1059 secs + 25% in 0.1775 secs + 50% in 0.2122 secs + 75% in 0.2971 secs + 90% in 0.3866 secs + 95% in 0.4242 secs + 99% in 0.6237 secs Details (average, fastest, slowest): - DNS+dialup: 0.0009 secs, 0.0286 secs, 1.9983 secs - DNS-lookup: 0.0003 secs, 0.0000 secs, 0.0661 secs - req write: 0.0000 secs, 0.0000 secs, 0.0011 secs - resp wait: 1.6553 secs, 0.0284 secs, 1.9983 secs - resp read: 0.0001 secs, 0.0000 secs, 0.0006 secs + DNS+dialup: 0.0001 secs, 0.0205 secs, 1.3067 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0081 secs + req write: 0.0001 secs, 0.0000 secs, 0.0616 secs + resp wait: 0.2383 secs, 0.0205 secs, 1.3066 secs + resp read: 0.0002 secs, 0.0000 secs, 0.0647 secs Status code distribution: - [201] 10000 responses + [200] 10000 responses +``` + +## OAuth 2.0 Client Management + +### Creating OAuth 2.0 Clients + +This endpoint uses [BCrypt](#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. ``` ### Listing OAuth 2.0 Clients @@ -136,42 +146,44 @@ Status code distribution: ``` Summary: - Total: 1.3342 secs - Slowest: 0.1486 secs - Fastest: 0.0004 secs - Average: 0.0131 secs - Requests/sec: 7495.0405 + Total: 0.6174 secs + Slowest: 0.0344 secs + Fastest: 0.0002 secs + Average: 0.0060 secs + Requests/sec: 16196.1857 + Total data: 2670000 bytes + Size/request: 267 bytes Response time histogram: 0.000 [1] | - 0.015 [8892] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.030 [961] |■■■■ - 0.045 [46] | - 0.060 [0] | - 0.075 [0] | - 0.089 [36] | - 0.104 [52] | - 0.119 [7] | - 0.134 [4] | - 0.149 [1] | + 0.004 [2674] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.007 [3538] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.010 [3021] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.014 [549] |■■■■■■ + 0.017 [108] |■ + 0.021 [61] |■ + 0.024 [15] | + 0.028 [13] | + 0.031 [15] | + 0.034 [5] | Latency distribution: - 10% in 0.0091 secs - 25% in 0.0111 secs - 50% in 0.0122 secs - 75% in 0.0135 secs - 90% in 0.0155 secs - 95% in 0.0184 secs - 99% in 0.0820 secs + 10% in 0.0007 secs + 25% in 0.0032 secs + 50% in 0.0053 secs + 75% in 0.0087 secs + 90% in 0.0100 secs + 95% in 0.0113 secs + 99% in 0.0175 secs Details (average, fastest, slowest): - DNS+dialup: 0.0007 secs, 0.0004 secs, 0.1486 secs - DNS-lookup: 0.0002 secs, 0.0000 secs, 0.0496 secs - req write: 0.0000 secs, 0.0000 secs, 0.0086 secs - resp wait: 0.0117 secs, 0.0003 secs, 0.0582 secs - resp read: 0.0007 secs, 0.0000 secs, 0.0269 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0344 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0095 secs + req write: 0.0001 secs, 0.0000 secs, 0.0151 secs + resp wait: 0.0035 secs, 0.0001 secs, 0.0186 secs + resp read: 0.0012 secs, 0.0000 secs, 0.0147 secs Status code distribution: [200] 10000 responses @@ -185,44 +197,44 @@ Status code distribution: ``` Summary: - Total: 0.3439 secs - Slowest: 0.1068 secs - Fastest: 0.0001 secs - Average: 0.0034 secs - Requests/sec: 29080.4190 + Total: 0.6884 secs + Slowest: 0.0297 secs + Fastest: 0.0002 secs + Average: 0.0067 secs + Requests/sec: 14527.3755 Total data: 2650000 bytes Size/request: 265 bytes Response time histogram: 0.000 [1] | - 0.011 [9892] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.021 [7] | - 0.032 [0] | - 0.043 [0] | - 0.053 [0] | - 0.064 [0] | - 0.075 [0] | - 0.085 [0] | - 0.096 [11] | - 0.107 [89] | + 0.003 [2180] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.006 [2121] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.009 [2873] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.012 [2315] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.015 [267] |■■■■ + 0.018 [173] |■■ + 0.021 [34] | + 0.024 [10] | + 0.027 [15] | + 0.030 [11] | Latency distribution: - 10% in 0.0009 secs - 25% in 0.0014 secs - 50% in 0.0021 secs - 75% in 0.0031 secs - 90% in 0.0044 secs - 95% in 0.0056 secs - 99% in 0.0927 secs + 10% in 0.0006 secs + 25% in 0.0042 secs + 50% in 0.0075 secs + 75% in 0.0091 secs + 90% in 0.0104 secs + 95% in 0.0120 secs + 99% in 0.0167 secs Details (average, fastest, slowest): - DNS+dialup: 0.0008 secs, 0.0001 secs, 0.1068 secs - DNS-lookup: 0.0003 secs, 0.0000 secs, 0.0663 secs - req write: 0.0000 secs, 0.0000 secs, 0.0023 secs - resp wait: 0.0019 secs, 0.0001 secs, 0.0488 secs - resp read: 0.0004 secs, 0.0000 secs, 0.0077 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0297 secs + DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0099 secs + req write: 0.0001 secs, 0.0000 secs, 0.0104 secs + resp wait: 0.0052 secs, 0.0001 secs, 0.0235 secs + resp read: 0.0007 secs, 0.0000 secs, 0.0122 secs Status code distribution: [200] 10000 responses From 2f3a0a11ca220563327f97fc343405c7ed264d53 Mon Sep 17 00:00:00 2001 From: ORY Continuous Integration Date: Sun, 3 Jun 2018 11:51:31 +0000 Subject: [PATCH 14/29] Updates benchmark document --- BENCHMARKS.md | 212 +++++++++++++++++++++++++------------------------- 1 file changed, 106 insertions(+), 106 deletions(-) diff --git a/BENCHMARKS.md b/BENCHMARKS.md index e8934b7130e..3f2096854ef 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -31,44 +31,44 @@ This section contains various benchmarks against OAuth 2.0 endpoints ``` Summary: - Total: 1.2983 secs - Slowest: 0.0601 secs - Fastest: 0.0002 secs - Average: 0.0125 secs - Requests/sec: 7702.6034 + Total: 1.5589 secs + Slowest: 0.0875 secs + Fastest: 0.0003 secs + Average: 0.0149 secs + Requests/sec: 6414.9386 Total data: 1550000 bytes Size/request: 155 bytes Response time histogram: 0.000 [1] | - 0.006 [2297] |■■■■■■■■■■■■■■■■■■■■■■■ - 0.012 [2044] |■■■■■■■■■■■■■■■■■■■■ - 0.018 [3997] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.024 [1093] |■■■■■■■■■■■ - 0.030 [318] |■■■ - 0.036 [136] |■ - 0.042 [78] |■ - 0.048 [30] | - 0.054 [4] | - 0.060 [2] | + 0.009 [3877] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.018 [2413] |■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.026 [2139] |■■■■■■■■■■■■■■■■■■■■■■ + 0.035 [1066] |■■■■■■■■■■■ + 0.044 [325] |■■■ + 0.053 [95] |■ + 0.061 [44] | + 0.070 [22] | + 0.079 [11] | + 0.088 [7] | Latency distribution: - 10% in 0.0021 secs - 25% in 0.0067 secs - 50% in 0.0133 secs - 75% in 0.0165 secs - 90% in 0.0207 secs - 95% in 0.0252 secs - 99% in 0.0381 secs + 10% in 0.0020 secs + 25% in 0.0055 secs + 50% in 0.0127 secs + 75% in 0.0221 secs + 90% in 0.0300 secs + 95% in 0.0352 secs + 99% in 0.0501 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0601 secs - DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0212 secs - req write: 0.0001 secs, 0.0000 secs, 0.0202 secs - resp wait: 0.0117 secs, 0.0002 secs, 0.0588 secs - resp read: 0.0004 secs, 0.0000 secs, 0.0236 secs + DNS+dialup: 0.0001 secs, 0.0003 secs, 0.0875 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0147 secs + req write: 0.0002 secs, 0.0000 secs, 0.0222 secs + resp wait: 0.0139 secs, 0.0002 secs, 0.0874 secs + resp read: 0.0005 secs, 0.0000 secs, 0.0257 secs Status code distribution: [200] 10000 responses @@ -84,44 +84,44 @@ This endpoint uses [BCrypt](#bcrypt). ``` Summary: - Total: 24.5916 secs - Slowest: 1.3067 secs - Fastest: 0.0205 secs - Average: 0.2387 secs - Requests/sec: 406.6423 + Total: 24.5716 secs + Slowest: 0.8436 secs + Fastest: 0.0211 secs + Average: 0.2398 secs + Requests/sec: 406.9740 Total data: 1570000 bytes Size/request: 157 bytes Response time histogram: 0.021 [1] | - 0.149 [2045] |■■■■■■■■■■■■■■■■■■ - 0.278 [4642] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.406 [2658] |■■■■■■■■■■■■■■■■■■■■■■■ - 0.535 [472] |■■■■ - 0.664 [91] |■ - 0.792 [37] | - 0.921 [38] | - 1.050 [11] | - 1.178 [4] | - 1.307 [1] | + 0.103 [765] |■■■■■■■■ + 0.186 [2106] |■■■■■■■■■■■■■■■■■■■■■■■ + 0.268 [3678] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.350 [2048] |■■■■■■■■■■■■■■■■■■■■■■ + 0.432 [956] |■■■■■■■■■■ + 0.515 [312] |■■■ + 0.597 [77] |■ + 0.679 [33] | + 0.761 [17] | + 0.844 [7] | Latency distribution: - 10% in 0.1059 secs - 25% in 0.1775 secs - 50% in 0.2122 secs - 75% in 0.2971 secs - 90% in 0.3866 secs - 95% in 0.4242 secs - 99% in 0.6237 secs + 10% in 0.1135 secs + 25% in 0.1763 secs + 50% in 0.2226 secs + 75% in 0.2990 secs + 90% in 0.3779 secs + 95% in 0.4235 secs + 99% in 0.5371 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0205 secs, 1.3067 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0081 secs - req write: 0.0001 secs, 0.0000 secs, 0.0616 secs - resp wait: 0.2383 secs, 0.0205 secs, 1.3066 secs - resp read: 0.0002 secs, 0.0000 secs, 0.0647 secs + DNS+dialup: 0.0002 secs, 0.0211 secs, 0.8436 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0223 secs + req write: 0.0002 secs, 0.0000 secs, 0.0562 secs + resp wait: 0.2388 secs, 0.0210 secs, 0.8433 secs + resp read: 0.0003 secs, 0.0000 secs, 0.0649 secs Status code distribution: [200] 10000 responses @@ -146,44 +146,44 @@ This test is currently disabled due to issues with /dev/urandom being inaccessib ``` Summary: - Total: 0.6174 secs - Slowest: 0.0344 secs + Total: 0.7975 secs + Slowest: 0.0484 secs Fastest: 0.0002 secs - Average: 0.0060 secs - Requests/sec: 16196.1857 + Average: 0.0077 secs + Requests/sec: 12539.8177 Total data: 2670000 bytes Size/request: 267 bytes Response time histogram: 0.000 [1] | - 0.004 [2674] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.007 [3538] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.010 [3021] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.014 [549] |■■■■■■ - 0.017 [108] |■ - 0.021 [61] |■ - 0.024 [15] | - 0.028 [13] | - 0.031 [15] | - 0.034 [5] | + 0.005 [3543] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.010 [3000] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.015 [2731] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.019 [388] |■■■■ + 0.024 [137] |■■ + 0.029 [86] |■ + 0.034 [55] |■ + 0.039 [42] | + 0.044 [8] | + 0.048 [9] | Latency distribution: - 10% in 0.0007 secs - 25% in 0.0032 secs - 50% in 0.0053 secs - 75% in 0.0087 secs - 90% in 0.0100 secs - 95% in 0.0113 secs - 99% in 0.0175 secs + 10% in 0.0010 secs + 25% in 0.0034 secs + 50% in 0.0068 secs + 75% in 0.0108 secs + 90% in 0.0134 secs + 95% in 0.0169 secs + 99% in 0.0299 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0344 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0095 secs - req write: 0.0001 secs, 0.0000 secs, 0.0151 secs - resp wait: 0.0035 secs, 0.0001 secs, 0.0186 secs - resp read: 0.0012 secs, 0.0000 secs, 0.0147 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0484 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0150 secs + req write: 0.0002 secs, 0.0000 secs, 0.0264 secs + resp wait: 0.0047 secs, 0.0001 secs, 0.0307 secs + resp read: 0.0016 secs, 0.0000 secs, 0.0234 secs Status code distribution: [200] 10000 responses @@ -197,44 +197,44 @@ Status code distribution: ``` Summary: - Total: 0.6884 secs - Slowest: 0.0297 secs + Total: 0.7238 secs + Slowest: 0.0667 secs Fastest: 0.0002 secs - Average: 0.0067 secs - Requests/sec: 14527.3755 + Average: 0.0070 secs + Requests/sec: 13816.1990 Total data: 2650000 bytes Size/request: 265 bytes Response time histogram: 0.000 [1] | - 0.003 [2180] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.006 [2121] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.009 [2873] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.012 [2315] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.015 [267] |■■■■ - 0.018 [173] |■■ - 0.021 [34] | - 0.024 [10] | - 0.027 [15] | - 0.030 [11] | + 0.007 [6032] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.014 [3093] |■■■■■■■■■■■■■■■■■■■■■ + 0.020 [698] |■■■■■ + 0.027 [66] | + 0.033 [12] | + 0.040 [3] | + 0.047 [8] | + 0.053 [54] | + 0.060 [2] | + 0.067 [31] | Latency distribution: - 10% in 0.0006 secs - 25% in 0.0042 secs - 50% in 0.0075 secs - 75% in 0.0091 secs - 90% in 0.0104 secs - 95% in 0.0120 secs - 99% in 0.0167 secs + 10% in 0.0007 secs + 25% in 0.0030 secs + 50% in 0.0061 secs + 75% in 0.0092 secs + 90% in 0.0129 secs + 95% in 0.0157 secs + 99% in 0.0316 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0297 secs - DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0099 secs - req write: 0.0001 secs, 0.0000 secs, 0.0104 secs - resp wait: 0.0052 secs, 0.0001 secs, 0.0235 secs - resp read: 0.0007 secs, 0.0000 secs, 0.0122 secs + DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0667 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0217 secs + req write: 0.0002 secs, 0.0000 secs, 0.0282 secs + resp wait: 0.0022 secs, 0.0001 secs, 0.0275 secs + resp read: 0.0025 secs, 0.0000 secs, 0.0422 secs Status code distribution: [200] 10000 responses From ed93064dcf4cb82f52a8cf0732fea4e0e5eb8195 Mon Sep 17 00:00:00 2001 From: ORY Continuous Integration Date: Sun, 3 Jun 2018 11:53:39 +0000 Subject: [PATCH 15/29] Updates benchmark document --- BENCHMARKS.md | 208 +++++++++++++++++++++++++------------------------- 1 file changed, 104 insertions(+), 104 deletions(-) diff --git a/BENCHMARKS.md b/BENCHMARKS.md index 3f2096854ef..4f57744f7a5 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -31,44 +31,44 @@ This section contains various benchmarks against OAuth 2.0 endpoints ``` Summary: - Total: 1.5589 secs - Slowest: 0.0875 secs - Fastest: 0.0003 secs - Average: 0.0149 secs - Requests/sec: 6414.9386 + Total: 1.4782 secs + Slowest: 0.0952 secs + Fastest: 0.0002 secs + Average: 0.0142 secs + Requests/sec: 6764.9679 Total data: 1550000 bytes Size/request: 155 bytes Response time histogram: 0.000 [1] | - 0.009 [3877] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.018 [2413] |■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.026 [2139] |■■■■■■■■■■■■■■■■■■■■■■ - 0.035 [1066] |■■■■■■■■■■■ - 0.044 [325] |■■■ - 0.053 [95] |■ - 0.061 [44] | - 0.070 [22] | - 0.079 [11] | - 0.088 [7] | + 0.010 [4037] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.019 [3630] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.029 [1265] |■■■■■■■■■■■■■ + 0.038 [596] |■■■■■■ + 0.048 [246] |■■ + 0.057 [109] |■ + 0.067 [78] |■ + 0.076 [23] | + 0.086 [13] | + 0.095 [2] | Latency distribution: - 10% in 0.0020 secs + 10% in 0.0016 secs 25% in 0.0055 secs - 50% in 0.0127 secs - 75% in 0.0221 secs - 90% in 0.0300 secs - 95% in 0.0352 secs - 99% in 0.0501 secs + 50% in 0.0122 secs + 75% in 0.0186 secs + 90% in 0.0295 secs + 95% in 0.0372 secs + 99% in 0.0584 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0003 secs, 0.0875 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0147 secs - req write: 0.0002 secs, 0.0000 secs, 0.0222 secs - resp wait: 0.0139 secs, 0.0002 secs, 0.0874 secs - resp read: 0.0005 secs, 0.0000 secs, 0.0257 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0952 secs + DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0100 secs + req write: 0.0001 secs, 0.0000 secs, 0.0101 secs + resp wait: 0.0137 secs, 0.0002 secs, 0.0932 secs + resp read: 0.0002 secs, 0.0000 secs, 0.0091 secs Status code distribution: [200] 10000 responses @@ -84,44 +84,44 @@ This endpoint uses [BCrypt](#bcrypt). ``` Summary: - Total: 24.5716 secs - Slowest: 0.8436 secs - Fastest: 0.0211 secs - Average: 0.2398 secs - Requests/sec: 406.9740 + Total: 24.5264 secs + Slowest: 0.7948 secs + Fastest: 0.0205 secs + Average: 0.2378 secs + Requests/sec: 407.7238 Total data: 1570000 bytes Size/request: 157 bytes Response time histogram: 0.021 [1] | - 0.103 [765] |■■■■■■■■ - 0.186 [2106] |■■■■■■■■■■■■■■■■■■■■■■■ - 0.268 [3678] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.350 [2048] |■■■■■■■■■■■■■■■■■■■■■■ - 0.432 [956] |■■■■■■■■■■ - 0.515 [312] |■■■ - 0.597 [77] |■ - 0.679 [33] | - 0.761 [17] | - 0.844 [7] | + 0.098 [641] |■■■■■■■ + 0.175 [1616] |■■■■■■■■■■■■■■■■■ + 0.253 [3814] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.330 [2555] |■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.408 [700] |■■■■■■■ + 0.485 [258] |■■■ + 0.563 [242] |■■■ + 0.640 [132] |■ + 0.717 [40] | + 0.795 [1] | Latency distribution: - 10% in 0.1135 secs - 25% in 0.1763 secs - 50% in 0.2226 secs - 75% in 0.2990 secs - 90% in 0.3779 secs - 95% in 0.4235 secs - 99% in 0.5371 secs + 10% in 0.1066 secs + 25% in 0.1829 secs + 50% in 0.2087 secs + 75% in 0.2963 secs + 90% in 0.3833 secs + 95% in 0.4698 secs + 99% in 0.5936 secs Details (average, fastest, slowest): - DNS+dialup: 0.0002 secs, 0.0211 secs, 0.8436 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0223 secs - req write: 0.0002 secs, 0.0000 secs, 0.0562 secs - resp wait: 0.2388 secs, 0.0210 secs, 0.8433 secs - resp read: 0.0003 secs, 0.0000 secs, 0.0649 secs + DNS+dialup: 0.0002 secs, 0.0205 secs, 0.7948 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0109 secs + req write: 0.0002 secs, 0.0000 secs, 0.0796 secs + resp wait: 0.2371 secs, 0.0205 secs, 0.7947 secs + resp read: 0.0002 secs, 0.0000 secs, 0.1591 secs Status code distribution: [200] 10000 responses @@ -146,44 +146,44 @@ This test is currently disabled due to issues with /dev/urandom being inaccessib ``` Summary: - Total: 0.7975 secs - Slowest: 0.0484 secs + Total: 0.7142 secs + Slowest: 0.0239 secs Fastest: 0.0002 secs - Average: 0.0077 secs - Requests/sec: 12539.8177 + Average: 0.0069 secs + Requests/sec: 14001.0457 Total data: 2670000 bytes Size/request: 267 bytes Response time histogram: 0.000 [1] | - 0.005 [3543] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.010 [3000] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.015 [2731] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.019 [388] |■■■■ - 0.024 [137] |■■ - 0.029 [86] |■ - 0.034 [55] |■ - 0.039 [42] | - 0.044 [8] | - 0.048 [9] | + 0.003 [1748] |■■■■■■■■■■■■■■■■■ + 0.005 [1075] |■■■■■■■■■■ + 0.007 [1494] |■■■■■■■■■■■■■■■ + 0.010 [4113] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.012 [1164] |■■■■■■■■■■■ + 0.014 [220] |■■ + 0.017 [75] |■ + 0.019 [46] | + 0.022 [51] | + 0.024 [13] | Latency distribution: - 10% in 0.0010 secs - 25% in 0.0034 secs - 50% in 0.0068 secs - 75% in 0.0108 secs - 90% in 0.0134 secs - 95% in 0.0169 secs - 99% in 0.0299 secs + 10% in 0.0005 secs + 25% in 0.0045 secs + 50% in 0.0080 secs + 75% in 0.0091 secs + 90% in 0.0106 secs + 95% in 0.0116 secs + 99% in 0.0176 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0484 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0150 secs - req write: 0.0002 secs, 0.0000 secs, 0.0264 secs - resp wait: 0.0047 secs, 0.0001 secs, 0.0307 secs - resp read: 0.0016 secs, 0.0000 secs, 0.0234 secs + DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0239 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0082 secs + req write: 0.0001 secs, 0.0000 secs, 0.0111 secs + resp wait: 0.0061 secs, 0.0001 secs, 0.0222 secs + resp read: 0.0004 secs, 0.0000 secs, 0.0111 secs Status code distribution: [200] 10000 responses @@ -197,44 +197,44 @@ Status code distribution: ``` Summary: - Total: 0.7238 secs - Slowest: 0.0667 secs + Total: 0.5706 secs + Slowest: 0.0341 secs Fastest: 0.0002 secs - Average: 0.0070 secs - Requests/sec: 13816.1990 + Average: 0.0055 secs + Requests/sec: 17526.6077 Total data: 2650000 bytes Size/request: 265 bytes Response time histogram: 0.000 [1] | - 0.007 [6032] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.014 [3093] |■■■■■■■■■■■■■■■■■■■■■ - 0.020 [698] |■■■■■ - 0.027 [66] | - 0.033 [12] | - 0.040 [3] | - 0.047 [8] | - 0.053 [54] | - 0.060 [2] | - 0.067 [31] | + 0.004 [2845] |■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.007 [4588] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.010 [1915] |■■■■■■■■■■■■■■■■■ + 0.014 [330] |■■■ + 0.017 [220] |■■ + 0.021 [53] | + 0.024 [11] | + 0.027 [5] | + 0.031 [12] | + 0.034 [20] | Latency distribution: - 10% in 0.0007 secs + 10% in 0.0013 secs 25% in 0.0030 secs - 50% in 0.0061 secs - 75% in 0.0092 secs - 90% in 0.0129 secs - 95% in 0.0157 secs - 99% in 0.0316 secs + 50% in 0.0050 secs + 75% in 0.0070 secs + 90% in 0.0089 secs + 95% in 0.0110 secs + 99% in 0.0172 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0667 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0217 secs - req write: 0.0002 secs, 0.0000 secs, 0.0282 secs - resp wait: 0.0022 secs, 0.0001 secs, 0.0275 secs - resp read: 0.0025 secs, 0.0000 secs, 0.0422 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0341 secs + DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0142 secs + req write: 0.0001 secs, 0.0000 secs, 0.0137 secs + resp wait: 0.0020 secs, 0.0001 secs, 0.0193 secs + resp read: 0.0017 secs, 0.0000 secs, 0.0172 secs Status code distribution: [200] 10000 responses From 9ada387e91cb3c37bc6b8bf3457d01298c2cd446 Mon Sep 17 00:00:00 2001 From: ORY Continuous Integration Date: Sun, 3 Jun 2018 11:56:45 +0000 Subject: [PATCH 16/29] Updates benchmark document --- BENCHMARKS.md | 210 +++++++++++++++++++++++++------------------------- 1 file changed, 105 insertions(+), 105 deletions(-) diff --git a/BENCHMARKS.md b/BENCHMARKS.md index 4f57744f7a5..9d9409f4724 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -31,44 +31,44 @@ This section contains various benchmarks against OAuth 2.0 endpoints ``` Summary: - Total: 1.4782 secs - Slowest: 0.0952 secs - Fastest: 0.0002 secs - Average: 0.0142 secs - Requests/sec: 6764.9679 + Total: 1.9742 secs + Slowest: 0.1187 secs + Fastest: 0.0003 secs + Average: 0.0186 secs + Requests/sec: 5065.3484 Total data: 1550000 bytes Size/request: 155 bytes Response time histogram: 0.000 [1] | - 0.010 [4037] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.019 [3630] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.029 [1265] |■■■■■■■■■■■■■ - 0.038 [596] |■■■■■■ - 0.048 [246] |■■ - 0.057 [109] |■ - 0.067 [78] |■ - 0.076 [23] | - 0.086 [13] | - 0.095 [2] | + 0.012 [4127] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.024 [2931] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.036 [1642] |■■■■■■■■■■■■■■■■ + 0.048 [791] |■■■■■■■■ + 0.060 [308] |■■■ + 0.071 [115] |■ + 0.083 [65] |■ + 0.095 [16] | + 0.107 [2] | + 0.119 [2] | Latency distribution: - 10% in 0.0016 secs - 25% in 0.0055 secs - 50% in 0.0122 secs - 75% in 0.0186 secs - 90% in 0.0295 secs - 95% in 0.0372 secs - 99% in 0.0584 secs + 10% in 0.0021 secs + 25% in 0.0071 secs + 50% in 0.0151 secs + 75% in 0.0263 secs + 90% in 0.0395 secs + 95% in 0.0479 secs + 99% in 0.0683 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0952 secs - DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0100 secs - req write: 0.0001 secs, 0.0000 secs, 0.0101 secs - resp wait: 0.0137 secs, 0.0002 secs, 0.0932 secs - resp read: 0.0002 secs, 0.0000 secs, 0.0091 secs + DNS+dialup: 0.0001 secs, 0.0003 secs, 0.1187 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0101 secs + req write: 0.0002 secs, 0.0000 secs, 0.0271 secs + resp wait: 0.0170 secs, 0.0002 secs, 0.1186 secs + resp read: 0.0009 secs, 0.0000 secs, 0.0308 secs Status code distribution: [200] 10000 responses @@ -84,44 +84,44 @@ This endpoint uses [BCrypt](#bcrypt). ``` Summary: - Total: 24.5264 secs - Slowest: 0.7948 secs + Total: 25.1758 secs + Slowest: 0.8371 secs Fastest: 0.0205 secs - Average: 0.2378 secs - Requests/sec: 407.7238 + Average: 0.2445 secs + Requests/sec: 397.2071 Total data: 1570000 bytes Size/request: 157 bytes Response time histogram: 0.021 [1] | - 0.098 [641] |■■■■■■■ - 0.175 [1616] |■■■■■■■■■■■■■■■■■ - 0.253 [3814] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.330 [2555] |■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.408 [700] |■■■■■■■ - 0.485 [258] |■■■ - 0.563 [242] |■■■ - 0.640 [132] |■ - 0.717 [40] | - 0.795 [1] | + 0.102 [570] |■■■■■■■ + 0.184 [2367] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.265 [3322] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.347 [2262] |■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.429 [930] |■■■■■■■■■■■ + 0.510 [357] |■■■■ + 0.592 [118] |■ + 0.674 [52] |■ + 0.755 [19] | + 0.837 [2] | Latency distribution: - 10% in 0.1066 secs - 25% in 0.1829 secs - 50% in 0.2087 secs - 75% in 0.2963 secs - 90% in 0.3833 secs - 95% in 0.4698 secs - 99% in 0.5936 secs + 10% in 0.1191 secs + 25% in 0.1721 secs + 50% in 0.2297 secs + 75% in 0.3038 secs + 90% in 0.3787 secs + 95% in 0.4407 secs + 99% in 0.5704 secs Details (average, fastest, slowest): - DNS+dialup: 0.0002 secs, 0.0205 secs, 0.7948 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0109 secs - req write: 0.0002 secs, 0.0000 secs, 0.0796 secs - resp wait: 0.2371 secs, 0.0205 secs, 0.7947 secs - resp read: 0.0002 secs, 0.0000 secs, 0.1591 secs + DNS+dialup: 0.0002 secs, 0.0205 secs, 0.8371 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0169 secs + req write: 0.0002 secs, 0.0000 secs, 0.0352 secs + resp wait: 0.2437 secs, 0.0204 secs, 0.8370 secs + resp read: 0.0002 secs, 0.0000 secs, 0.0664 secs Status code distribution: [200] 10000 responses @@ -146,44 +146,44 @@ This test is currently disabled due to issues with /dev/urandom being inaccessib ``` Summary: - Total: 0.7142 secs - Slowest: 0.0239 secs + Total: 0.6263 secs + Slowest: 0.0424 secs Fastest: 0.0002 secs - Average: 0.0069 secs - Requests/sec: 14001.0457 + Average: 0.0060 secs + Requests/sec: 15967.0072 Total data: 2670000 bytes Size/request: 267 bytes Response time histogram: 0.000 [1] | - 0.003 [1748] |■■■■■■■■■■■■■■■■■ - 0.005 [1075] |■■■■■■■■■■ - 0.007 [1494] |■■■■■■■■■■■■■■■ - 0.010 [4113] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.012 [1164] |■■■■■■■■■■■ - 0.014 [220] |■■ - 0.017 [75] |■ - 0.019 [46] | - 0.022 [51] | - 0.024 [13] | + 0.004 [3632] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.009 [4248] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.013 [1421] |■■■■■■■■■■■■■ + 0.017 [498] |■■■■■ + 0.021 [101] |■ + 0.026 [41] | + 0.030 [46] | + 0.034 [3] | + 0.038 [5] | + 0.042 [4] | Latency distribution: - 10% in 0.0005 secs - 25% in 0.0045 secs - 50% in 0.0080 secs - 75% in 0.0091 secs - 90% in 0.0106 secs - 95% in 0.0116 secs - 99% in 0.0176 secs + 10% in 0.0015 secs + 25% in 0.0030 secs + 50% in 0.0053 secs + 75% in 0.0076 secs + 90% in 0.0119 secs + 95% in 0.0142 secs + 99% in 0.0211 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0239 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0082 secs - req write: 0.0001 secs, 0.0000 secs, 0.0111 secs - resp wait: 0.0061 secs, 0.0001 secs, 0.0222 secs - resp read: 0.0004 secs, 0.0000 secs, 0.0111 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0424 secs + DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0145 secs + req write: 0.0001 secs, 0.0000 secs, 0.0148 secs + resp wait: 0.0012 secs, 0.0001 secs, 0.0184 secs + resp read: 0.0026 secs, 0.0000 secs, 0.0219 secs Status code distribution: [200] 10000 responses @@ -197,44 +197,44 @@ Status code distribution: ``` Summary: - Total: 0.5706 secs - Slowest: 0.0341 secs + Total: 0.6742 secs + Slowest: 0.0343 secs Fastest: 0.0002 secs - Average: 0.0055 secs - Requests/sec: 17526.6077 + Average: 0.0065 secs + Requests/sec: 14833.3300 Total data: 2650000 bytes Size/request: 265 bytes Response time histogram: 0.000 [1] | - 0.004 [2845] |■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.007 [4588] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.010 [1915] |■■■■■■■■■■■■■■■■■ - 0.014 [330] |■■■ - 0.017 [220] |■■ - 0.021 [53] | - 0.024 [11] | - 0.027 [5] | - 0.031 [12] | - 0.034 [20] | + 0.004 [3159] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.007 [2552] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.010 [2364] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.014 [1409] |■■■■■■■■■■■■■■■■■■ + 0.017 [339] |■■■■ + 0.021 [101] |■ + 0.024 [45] |■ + 0.027 [16] | + 0.031 [0] | + 0.034 [14] | Latency distribution: - 10% in 0.0013 secs - 25% in 0.0030 secs - 50% in 0.0050 secs - 75% in 0.0070 secs - 90% in 0.0089 secs - 95% in 0.0110 secs - 99% in 0.0172 secs + 10% in 0.0009 secs + 25% in 0.0027 secs + 50% in 0.0058 secs + 75% in 0.0099 secs + 90% in 0.0115 secs + 95% in 0.0140 secs + 99% in 0.0195 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0341 secs - DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0142 secs - req write: 0.0001 secs, 0.0000 secs, 0.0137 secs - resp wait: 0.0020 secs, 0.0001 secs, 0.0193 secs - resp read: 0.0017 secs, 0.0000 secs, 0.0172 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0343 secs + DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0164 secs + req write: 0.0001 secs, 0.0000 secs, 0.0103 secs + resp wait: 0.0034 secs, 0.0001 secs, 0.0238 secs + resp read: 0.0016 secs, 0.0000 secs, 0.0159 secs Status code distribution: [200] 10000 responses From 88c6439c5276eddda982370f98391adf2ac951be Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 14:00:26 +0200 Subject: [PATCH 17/29] docs: Adds CI benchmarks --- .circleci/config.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 1d248eb232b..8810c095ae3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -157,9 +157,8 @@ jobs: - run: ./scripts/run-bench.sh - run: git remote rm origin - run: git remote add origin https://arekkas:$GITHUB_TOKEN@github.com/ory/hydra.git - - run: "git commit -m \"Updates benchmark document\" -- BENCHMARKS.md || exit 0" - run: git fetch origin - - run: git push -u origin $CIRCLE_BRANCH || exit 0 + - run: "if [[ $string = *\"Updates benchmarks\"* ]]; then; git commit -m \"Updates benchmarks\" -- BENCHMARKS.md && git push -u origin $CIRCLE_BRANCH; fi" workflows: version: 2 From 862fa0246ca4829e9cf4e9f92c3a9cf7f9ccfbce Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 14:03:12 +0200 Subject: [PATCH 18/29] docs: Adds CI benchmarks --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8810c095ae3..013b2c3b4d8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -158,7 +158,7 @@ jobs: - run: git remote rm origin - run: git remote add origin https://arekkas:$GITHUB_TOKEN@github.com/ory/hydra.git - run: git fetch origin - - run: "if [[ $string = *\"Updates benchmarks\"* ]]; then; git commit -m \"Updates benchmarks\" -- BENCHMARKS.md && git push -u origin $CIRCLE_BRANCH; fi" + - run: "if [[ $string != *\"Updates benchmarks\"* ]]; then (git commit -m \"Updates benchmarks\" -- BENCHMARKS.md && git push -u origin $CIRCLE_BRANCH); fi" workflows: version: 2 From ef77f965a4815d91c32b42e9c68eba053443b798 Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 14:03:30 +0200 Subject: [PATCH 19/29] docs: Adds CI benchmarks --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 013b2c3b4d8..ab77f5e751f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -158,7 +158,7 @@ jobs: - run: git remote rm origin - run: git remote add origin https://arekkas:$GITHUB_TOKEN@github.com/ory/hydra.git - run: git fetch origin - - run: "if [[ $string != *\"Updates benchmarks\"* ]]; then (git commit -m \"Updates benchmarks\" -- BENCHMARKS.md && git push -u origin $CIRCLE_BRANCH); fi" + - run: "if [[ $string != \"Updates benchmarks\" ]]; then (git commit -m \"Updates benchmarks\" -- BENCHMARKS.md && git push -u origin $CIRCLE_BRANCH); fi" workflows: version: 2 From aa66733a342db35d92556099311fca412fecea9b Mon Sep 17 00:00:00 2001 From: ORY Continuous Integration Date: Sun, 3 Jun 2018 12:05:11 +0000 Subject: [PATCH 20/29] Updates benchmarks --- BENCHMARKS.md | 212 +++++++++++++++++++++++++------------------------- 1 file changed, 106 insertions(+), 106 deletions(-) diff --git a/BENCHMARKS.md b/BENCHMARKS.md index 9d9409f4724..f3ec8661fc9 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -31,44 +31,44 @@ This section contains various benchmarks against OAuth 2.0 endpoints ``` Summary: - Total: 1.9742 secs - Slowest: 0.1187 secs - Fastest: 0.0003 secs - Average: 0.0186 secs - Requests/sec: 5065.3484 + Total: 1.2060 secs + Slowest: 0.0917 secs + Fastest: 0.0002 secs + Average: 0.0116 secs + Requests/sec: 8291.6061 Total data: 1550000 bytes Size/request: 155 bytes Response time histogram: 0.000 [1] | - 0.012 [4127] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.024 [2931] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.036 [1642] |■■■■■■■■■■■■■■■■ - 0.048 [791] |■■■■■■■■ - 0.060 [308] |■■■ - 0.071 [115] |■ - 0.083 [65] |■ - 0.095 [16] | - 0.107 [2] | - 0.119 [2] | + 0.009 [4288] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.019 [4086] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.028 [1189] |■■■■■■■■■■■ + 0.037 [310] |■■■ + 0.046 [103] |■ + 0.055 [14] | + 0.064 [4] | + 0.073 [4] | + 0.083 [0] | + 0.092 [1] | Latency distribution: - 10% in 0.0021 secs - 25% in 0.0071 secs - 50% in 0.0151 secs - 75% in 0.0263 secs - 90% in 0.0395 secs - 95% in 0.0479 secs - 99% in 0.0683 secs + 10% in 0.0015 secs + 25% in 0.0051 secs + 50% in 0.0110 secs + 75% in 0.0159 secs + 90% in 0.0218 secs + 95% in 0.0269 secs + 99% in 0.0383 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0003 secs, 0.1187 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0101 secs - req write: 0.0002 secs, 0.0000 secs, 0.0271 secs - resp wait: 0.0170 secs, 0.0002 secs, 0.1186 secs - resp read: 0.0009 secs, 0.0000 secs, 0.0308 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0917 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0070 secs + req write: 0.0001 secs, 0.0000 secs, 0.0146 secs + resp wait: 0.0111 secs, 0.0002 secs, 0.0713 secs + resp read: 0.0002 secs, 0.0000 secs, 0.0233 secs Status code distribution: [200] 10000 responses @@ -84,44 +84,44 @@ This endpoint uses [BCrypt](#bcrypt). ``` Summary: - Total: 25.1758 secs - Slowest: 0.8371 secs - Fastest: 0.0205 secs - Average: 0.2445 secs - Requests/sec: 397.2071 + Total: 24.7443 secs + Slowest: 0.8894 secs + Fastest: 0.0208 secs + Average: 0.2409 secs + Requests/sec: 404.1335 Total data: 1570000 bytes Size/request: 157 bytes Response time histogram: 0.021 [1] | - 0.102 [570] |■■■■■■■ - 0.184 [2367] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.265 [3322] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.347 [2262] |■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.429 [930] |■■■■■■■■■■■ - 0.510 [357] |■■■■ - 0.592 [118] |■ - 0.674 [52] |■ - 0.755 [19] | - 0.837 [2] | + 0.108 [835] |■■■■■■■■■■ + 0.194 [2416] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.281 [3450] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.368 [2004] |■■■■■■■■■■■■■■■■■■■■■■■ + 0.455 [902] |■■■■■■■■■■ + 0.542 [271] |■■■ + 0.629 [82] |■ + 0.716 [30] | + 0.803 [6] | + 0.889 [3] | Latency distribution: - 10% in 0.1191 secs - 25% in 0.1721 secs - 50% in 0.2297 secs - 75% in 0.3038 secs - 90% in 0.3787 secs - 95% in 0.4407 secs - 99% in 0.5704 secs + 10% in 0.1124 secs + 25% in 0.1807 secs + 50% in 0.2171 secs + 75% in 0.2976 secs + 90% in 0.3862 secs + 95% in 0.4219 secs + 99% in 0.5561 secs Details (average, fastest, slowest): - DNS+dialup: 0.0002 secs, 0.0205 secs, 0.8371 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0169 secs - req write: 0.0002 secs, 0.0000 secs, 0.0352 secs - resp wait: 0.2437 secs, 0.0204 secs, 0.8370 secs - resp read: 0.0002 secs, 0.0000 secs, 0.0664 secs + DNS+dialup: 0.0001 secs, 0.0208 secs, 0.8894 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0131 secs + req write: 0.0001 secs, 0.0000 secs, 0.0810 secs + resp wait: 0.2399 secs, 0.0206 secs, 0.8893 secs + resp read: 0.0006 secs, 0.0000 secs, 0.0813 secs Status code distribution: [200] 10000 responses @@ -146,44 +146,44 @@ This test is currently disabled due to issues with /dev/urandom being inaccessib ``` Summary: - Total: 0.6263 secs - Slowest: 0.0424 secs + Total: 0.6789 secs + Slowest: 0.0427 secs Fastest: 0.0002 secs - Average: 0.0060 secs - Requests/sec: 15967.0072 + Average: 0.0064 secs + Requests/sec: 14728.8871 Total data: 2670000 bytes Size/request: 267 bytes Response time histogram: 0.000 [1] | - 0.004 [3632] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.009 [4248] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.013 [1421] |■■■■■■■■■■■■■ - 0.017 [498] |■■■■■ - 0.021 [101] |■ - 0.026 [41] | - 0.030 [46] | - 0.034 [3] | - 0.038 [5] | - 0.042 [4] | + 0.004 [3143] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.009 [4225] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.013 [2085] |■■■■■■■■■■■■■■■■■■■■ + 0.017 [377] |■■■■ + 0.021 [77] |■ + 0.026 [35] | + 0.030 [11] | + 0.034 [35] | + 0.038 [8] | + 0.043 [3] | Latency distribution: - 10% in 0.0015 secs - 25% in 0.0030 secs - 50% in 0.0053 secs - 75% in 0.0076 secs - 90% in 0.0119 secs - 95% in 0.0142 secs - 99% in 0.0211 secs + 10% in 0.0007 secs + 25% in 0.0031 secs + 50% in 0.0060 secs + 75% in 0.0089 secs + 90% in 0.0108 secs + 95% in 0.0134 secs + 99% in 0.0200 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0424 secs - DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0145 secs - req write: 0.0001 secs, 0.0000 secs, 0.0148 secs - resp wait: 0.0012 secs, 0.0001 secs, 0.0184 secs - resp read: 0.0026 secs, 0.0000 secs, 0.0219 secs + DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0427 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0130 secs + req write: 0.0001 secs, 0.0000 secs, 0.0147 secs + resp wait: 0.0035 secs, 0.0001 secs, 0.0228 secs + resp read: 0.0014 secs, 0.0000 secs, 0.0137 secs Status code distribution: [200] 10000 responses @@ -197,44 +197,44 @@ Status code distribution: ``` Summary: - Total: 0.6742 secs - Slowest: 0.0343 secs + Total: 0.7054 secs + Slowest: 0.0371 secs Fastest: 0.0002 secs - Average: 0.0065 secs - Requests/sec: 14833.3300 + Average: 0.0068 secs + Requests/sec: 14175.4287 Total data: 2650000 bytes Size/request: 265 bytes Response time histogram: 0.000 [1] | - 0.004 [3159] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.007 [2552] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.010 [2364] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.014 [1409] |■■■■■■■■■■■■■■■■■■ - 0.017 [339] |■■■■ - 0.021 [101] |■ - 0.024 [45] |■ - 0.027 [16] | - 0.031 [0] | - 0.034 [14] | + 0.004 [2949] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.008 [2460] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.011 [3455] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.015 [781] |■■■■■■■■■ + 0.019 [188] |■■ + 0.022 [110] |■ + 0.026 [32] | + 0.030 [9] | + 0.033 [1] | + 0.037 [14] | Latency distribution: - 10% in 0.0009 secs - 25% in 0.0027 secs - 50% in 0.0058 secs - 75% in 0.0099 secs - 90% in 0.0115 secs - 95% in 0.0140 secs - 99% in 0.0195 secs + 10% in 0.0007 secs + 25% in 0.0031 secs + 50% in 0.0068 secs + 75% in 0.0095 secs + 90% in 0.0116 secs + 95% in 0.0138 secs + 99% in 0.0203 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0343 secs - DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0164 secs - req write: 0.0001 secs, 0.0000 secs, 0.0103 secs - resp wait: 0.0034 secs, 0.0001 secs, 0.0238 secs - resp read: 0.0016 secs, 0.0000 secs, 0.0159 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0371 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0088 secs + req write: 0.0001 secs, 0.0000 secs, 0.0145 secs + resp wait: 0.0046 secs, 0.0001 secs, 0.0287 secs + resp read: 0.0011 secs, 0.0000 secs, 0.0145 secs Status code distribution: [200] 10000 responses From f0e8573d76fdb623b27e3b3539951908c334af68 Mon Sep 17 00:00:00 2001 From: ORY Continuous Integration Date: Sun, 3 Jun 2018 12:06:37 +0000 Subject: [PATCH 21/29] Updates benchmarks --- BENCHMARKS.md | 210 +++++++++++++++++++++++++------------------------- 1 file changed, 105 insertions(+), 105 deletions(-) diff --git a/BENCHMARKS.md b/BENCHMARKS.md index f3ec8661fc9..d1b7fde9d86 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -31,44 +31,44 @@ This section contains various benchmarks against OAuth 2.0 endpoints ``` Summary: - Total: 1.2060 secs - Slowest: 0.0917 secs + Total: 1.1450 secs + Slowest: 0.0729 secs Fastest: 0.0002 secs - Average: 0.0116 secs - Requests/sec: 8291.6061 + Average: 0.0111 secs + Requests/sec: 8733.8051 Total data: 1550000 bytes Size/request: 155 bytes Response time histogram: 0.000 [1] | - 0.009 [4288] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.019 [4086] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.028 [1189] |■■■■■■■■■■■ - 0.037 [310] |■■■ - 0.046 [103] |■ - 0.055 [14] | - 0.064 [4] | - 0.073 [4] | - 0.083 [0] | - 0.092 [1] | + 0.007 [3155] |■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.015 [4821] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.022 [1436] |■■■■■■■■■■■■ + 0.029 [276] |■■ + 0.037 [140] |■ + 0.044 [97] |■ + 0.051 [41] | + 0.058 [18] | + 0.066 [10] | + 0.073 [5] | Latency distribution: - 10% in 0.0015 secs - 25% in 0.0051 secs - 50% in 0.0110 secs - 75% in 0.0159 secs - 90% in 0.0218 secs - 95% in 0.0269 secs - 99% in 0.0383 secs + 10% in 0.0013 secs + 25% in 0.0060 secs + 50% in 0.0114 secs + 75% in 0.0139 secs + 90% in 0.0184 secs + 95% in 0.0230 secs + 99% in 0.0417 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0917 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0070 secs - req write: 0.0001 secs, 0.0000 secs, 0.0146 secs - resp wait: 0.0111 secs, 0.0002 secs, 0.0713 secs - resp read: 0.0002 secs, 0.0000 secs, 0.0233 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0729 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0103 secs + req write: 0.0001 secs, 0.0000 secs, 0.0147 secs + resp wait: 0.0108 secs, 0.0002 secs, 0.0714 secs + resp read: 0.0001 secs, 0.0000 secs, 0.0093 secs Status code distribution: [200] 10000 responses @@ -84,44 +84,44 @@ This endpoint uses [BCrypt](#bcrypt). ``` Summary: - Total: 24.7443 secs - Slowest: 0.8894 secs - Fastest: 0.0208 secs - Average: 0.2409 secs - Requests/sec: 404.1335 + Total: 24.3305 secs + Slowest: 1.0909 secs + Fastest: 0.0204 secs + Average: 0.2359 secs + Requests/sec: 411.0075 Total data: 1570000 bytes Size/request: 157 bytes Response time histogram: - 0.021 [1] | - 0.108 [835] |■■■■■■■■■■ - 0.194 [2416] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.281 [3450] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.368 [2004] |■■■■■■■■■■■■■■■■■■■■■■■ - 0.455 [902] |■■■■■■■■■■ - 0.542 [271] |■■■ - 0.629 [82] |■ - 0.716 [30] | - 0.803 [6] | - 0.889 [3] | + 0.020 [1] | + 0.127 [1940] |■■■■■■■■■■■■■■■■■■ + 0.234 [4262] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.342 [2548] |■■■■■■■■■■■■■■■■■■■■■■■■ + 0.449 [775] |■■■■■■■ + 0.556 [305] |■■■ + 0.663 [99] |■ + 0.770 [54] |■ + 0.877 [9] | + 0.984 [5] | + 1.091 [2] | Latency distribution: - 10% in 0.1124 secs - 25% in 0.1807 secs - 50% in 0.2171 secs - 75% in 0.2976 secs - 90% in 0.3862 secs - 95% in 0.4219 secs - 99% in 0.5561 secs + 10% in 0.1038 secs + 25% in 0.1844 secs + 50% in 0.2082 secs + 75% in 0.2953 secs + 90% in 0.3830 secs + 95% in 0.4186 secs + 99% in 0.5999 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0208 secs, 0.8894 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0131 secs - req write: 0.0001 secs, 0.0000 secs, 0.0810 secs - resp wait: 0.2399 secs, 0.0206 secs, 0.8893 secs - resp read: 0.0006 secs, 0.0000 secs, 0.0813 secs + DNS+dialup: 0.0001 secs, 0.0204 secs, 1.0909 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0064 secs + req write: 0.0002 secs, 0.0000 secs, 0.0762 secs + resp wait: 0.2352 secs, 0.0203 secs, 1.0909 secs + resp read: 0.0003 secs, 0.0000 secs, 0.0837 secs Status code distribution: [200] 10000 responses @@ -146,44 +146,44 @@ This test is currently disabled due to issues with /dev/urandom being inaccessib ``` Summary: - Total: 0.6789 secs - Slowest: 0.0427 secs + Total: 0.5924 secs + Slowest: 0.0317 secs Fastest: 0.0002 secs - Average: 0.0064 secs - Requests/sec: 14728.8871 + Average: 0.0057 secs + Requests/sec: 16879.5038 Total data: 2670000 bytes Size/request: 267 bytes Response time histogram: 0.000 [1] | - 0.004 [3143] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.009 [4225] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.013 [2085] |■■■■■■■■■■■■■■■■■■■■ - 0.017 [377] |■■■■ - 0.021 [77] |■ - 0.026 [35] | - 0.030 [11] | - 0.034 [35] | - 0.038 [8] | - 0.043 [3] | + 0.003 [3016] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.006 [3063] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.010 [2965] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.013 [569] |■■■■■■■ + 0.016 [115] |■■ + 0.019 [62] |■ + 0.022 [87] |■ + 0.025 [82] |■ + 0.029 [33] | + 0.032 [7] | Latency distribution: - 10% in 0.0007 secs - 25% in 0.0031 secs - 50% in 0.0060 secs - 75% in 0.0089 secs - 90% in 0.0108 secs - 95% in 0.0134 secs - 99% in 0.0200 secs + 10% in 0.0004 secs + 25% in 0.0026 secs + 50% in 0.0052 secs + 75% in 0.0081 secs + 90% in 0.0095 secs + 95% in 0.0116 secs + 99% in 0.0230 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0427 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0130 secs - req write: 0.0001 secs, 0.0000 secs, 0.0147 secs - resp wait: 0.0035 secs, 0.0001 secs, 0.0228 secs - resp read: 0.0014 secs, 0.0000 secs, 0.0137 secs + DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0317 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0094 secs + req write: 0.0001 secs, 0.0000 secs, 0.0114 secs + resp wait: 0.0039 secs, 0.0001 secs, 0.0244 secs + resp read: 0.0009 secs, 0.0000 secs, 0.0207 secs Status code distribution: [200] 10000 responses @@ -197,44 +197,44 @@ Status code distribution: ``` Summary: - Total: 0.7054 secs + Total: 0.6101 secs Slowest: 0.0371 secs Fastest: 0.0002 secs - Average: 0.0068 secs - Requests/sec: 14175.4287 + Average: 0.0059 secs + Requests/sec: 16391.2840 Total data: 2650000 bytes Size/request: 265 bytes Response time histogram: 0.000 [1] | - 0.004 [2949] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.008 [2460] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.011 [3455] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.015 [781] |■■■■■■■■■ - 0.019 [188] |■■ - 0.022 [110] |■ - 0.026 [32] | - 0.030 [9] | - 0.033 [1] | - 0.037 [14] | + 0.004 [2948] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.008 [3227] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.011 [3350] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.015 [271] |■■■ + 0.019 [27] | + 0.022 [82] |■ + 0.026 [60] |■ + 0.030 [15] | + 0.033 [11] | + 0.037 [8] | Latency distribution: - 10% in 0.0007 secs - 25% in 0.0031 secs - 50% in 0.0068 secs - 75% in 0.0095 secs - 90% in 0.0116 secs - 95% in 0.0138 secs - 99% in 0.0203 secs + 10% in 0.0004 secs + 25% in 0.0027 secs + 50% in 0.0060 secs + 75% in 0.0083 secs + 90% in 0.0091 secs + 95% in 0.0111 secs + 99% in 0.0220 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0371 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0088 secs - req write: 0.0001 secs, 0.0000 secs, 0.0145 secs - resp wait: 0.0046 secs, 0.0001 secs, 0.0287 secs - resp read: 0.0011 secs, 0.0000 secs, 0.0145 secs + DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0371 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0077 secs + req write: 0.0001 secs, 0.0000 secs, 0.0160 secs + resp wait: 0.0041 secs, 0.0001 secs, 0.0336 secs + resp read: 0.0009 secs, 0.0000 secs, 0.0143 secs Status code distribution: [200] 10000 responses From efa9bfc1e62b5fc53433b040873f5e6b669e324d Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 14:07:29 +0200 Subject: [PATCH 22/29] docs: Adds CI benchmarks --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ab77f5e751f..ebf2b01b374 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -158,7 +158,7 @@ jobs: - run: git remote rm origin - run: git remote add origin https://arekkas:$GITHUB_TOKEN@github.com/ory/hydra.git - run: git fetch origin - - run: "if [[ $string != \"Updates benchmarks\" ]]; then (git commit -m \"Updates benchmarks\" -- BENCHMARKS.md && git push -u origin $CIRCLE_BRANCH); fi" + - run: "if [[ $(git log --oneline -n 1) != \"Updates benchmarks\" ]]; then (git commit -m \"Updates benchmarks\" -- BENCHMARKS.md && git push -u origin $CIRCLE_BRANCH); fi" workflows: version: 2 From b3c7da1ca773e8f70dec7cf681566f39ef833a38 Mon Sep 17 00:00:00 2001 From: ORY Continuous Integration Date: Sun, 3 Jun 2018 12:09:06 +0000 Subject: [PATCH 23/29] Updates benchmarks --- BENCHMARKS.md | 212 +++++++++++++++++++++++++------------------------- 1 file changed, 106 insertions(+), 106 deletions(-) diff --git a/BENCHMARKS.md b/BENCHMARKS.md index d1b7fde9d86..d6ecaa2bb7c 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -31,44 +31,44 @@ This section contains various benchmarks against OAuth 2.0 endpoints ``` Summary: - Total: 1.1450 secs - Slowest: 0.0729 secs + Total: 1.8369 secs + Slowest: 0.1154 secs Fastest: 0.0002 secs - Average: 0.0111 secs - Requests/sec: 8733.8051 + Average: 0.0176 secs + Requests/sec: 5443.9436 Total data: 1550000 bytes Size/request: 155 bytes Response time histogram: 0.000 [1] | - 0.007 [3155] |■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.015 [4821] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.022 [1436] |■■■■■■■■■■■■ - 0.029 [276] |■■ - 0.037 [140] |■ - 0.044 [97] |■ - 0.051 [41] | - 0.058 [18] | - 0.066 [10] | - 0.073 [5] | + 0.012 [3951] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.023 [3356] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.035 [1452] |■■■■■■■■■■■■■■■ + 0.046 [681] |■■■■■■■ + 0.058 [343] |■■■ + 0.069 [131] |■ + 0.081 [61] |■ + 0.092 [16] | + 0.104 [5] | + 0.115 [3] | Latency distribution: - 10% in 0.0013 secs - 25% in 0.0060 secs - 50% in 0.0114 secs - 75% in 0.0139 secs - 90% in 0.0184 secs - 95% in 0.0230 secs - 99% in 0.0417 secs + 10% in 0.0021 secs + 25% in 0.0065 secs + 50% in 0.0144 secs + 75% in 0.0245 secs + 90% in 0.0373 secs + 95% in 0.0477 secs + 99% in 0.0672 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0729 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0103 secs - req write: 0.0001 secs, 0.0000 secs, 0.0147 secs - resp wait: 0.0108 secs, 0.0002 secs, 0.0714 secs - resp read: 0.0001 secs, 0.0000 secs, 0.0093 secs + DNS+dialup: 0.0001 secs, 0.0002 secs, 0.1154 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0168 secs + req write: 0.0002 secs, 0.0000 secs, 0.0244 secs + resp wait: 0.0167 secs, 0.0002 secs, 0.1152 secs + resp read: 0.0004 secs, 0.0000 secs, 0.0256 secs Status code distribution: [200] 10000 responses @@ -84,44 +84,44 @@ This endpoint uses [BCrypt](#bcrypt). ``` Summary: - Total: 24.3305 secs - Slowest: 1.0909 secs - Fastest: 0.0204 secs - Average: 0.2359 secs - Requests/sec: 411.0075 + Total: 25.1122 secs + Slowest: 0.8803 secs + Fastest: 0.0213 secs + Average: 0.2442 secs + Requests/sec: 398.2136 Total data: 1570000 bytes Size/request: 157 bytes Response time histogram: - 0.020 [1] | - 0.127 [1940] |■■■■■■■■■■■■■■■■■■ - 0.234 [4262] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.342 [2548] |■■■■■■■■■■■■■■■■■■■■■■■■ - 0.449 [775] |■■■■■■■ - 0.556 [305] |■■■ - 0.663 [99] |■ - 0.770 [54] |■ - 0.877 [9] | - 0.984 [5] | - 1.091 [2] | + 0.021 [1] | + 0.107 [787] |■■■■■■■■■■ + 0.193 [2429] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.279 [3287] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.365 [2170] |■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.451 [938] |■■■■■■■■■■■ + 0.537 [285] |■■■ + 0.623 [74] |■ + 0.708 [25] | + 0.794 [2] | + 0.880 [2] | Latency distribution: - 10% in 0.1038 secs - 25% in 0.1844 secs - 50% in 0.2082 secs - 75% in 0.2953 secs - 90% in 0.3830 secs - 95% in 0.4186 secs - 99% in 0.5999 secs + 10% in 0.1157 secs + 25% in 0.1772 secs + 50% in 0.2269 secs + 75% in 0.3035 secs + 90% in 0.3855 secs + 95% in 0.4283 secs + 99% in 0.5380 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0204 secs, 1.0909 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0064 secs - req write: 0.0002 secs, 0.0000 secs, 0.0762 secs - resp wait: 0.2352 secs, 0.0203 secs, 1.0909 secs - resp read: 0.0003 secs, 0.0000 secs, 0.0837 secs + DNS+dialup: 0.0001 secs, 0.0213 secs, 0.8803 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0081 secs + req write: 0.0002 secs, 0.0000 secs, 0.0783 secs + resp wait: 0.2433 secs, 0.0212 secs, 0.8802 secs + resp read: 0.0005 secs, 0.0000 secs, 0.1274 secs Status code distribution: [200] 10000 responses @@ -146,44 +146,44 @@ This test is currently disabled due to issues with /dev/urandom being inaccessib ``` Summary: - Total: 0.5924 secs - Slowest: 0.0317 secs + Total: 0.9810 secs + Slowest: 0.0734 secs Fastest: 0.0002 secs - Average: 0.0057 secs - Requests/sec: 16879.5038 + Average: 0.0094 secs + Requests/sec: 10193.7666 Total data: 2670000 bytes Size/request: 267 bytes Response time histogram: 0.000 [1] | - 0.003 [3016] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.006 [3063] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.010 [2965] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.013 [569] |■■■■■■■ - 0.016 [115] |■■ - 0.019 [62] |■ - 0.022 [87] |■ - 0.025 [82] |■ - 0.029 [33] | - 0.032 [7] | + 0.008 [5678] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.015 [2550] |■■■■■■■■■■■■■■■■■■ + 0.022 [822] |■■■■■■ + 0.029 [397] |■■■ + 0.037 [218] |■■ + 0.044 [179] |■ + 0.051 [92] |■ + 0.059 [44] | + 0.066 [8] | + 0.073 [11] | Latency distribution: - 10% in 0.0004 secs - 25% in 0.0026 secs - 50% in 0.0052 secs - 75% in 0.0081 secs - 90% in 0.0095 secs - 95% in 0.0116 secs - 99% in 0.0230 secs + 10% in 0.0010 secs + 25% in 0.0030 secs + 50% in 0.0059 secs + 75% in 0.0113 secs + 90% in 0.0218 secs + 95% in 0.0324 secs + 99% in 0.0490 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0317 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0094 secs - req write: 0.0001 secs, 0.0000 secs, 0.0114 secs - resp wait: 0.0039 secs, 0.0001 secs, 0.0244 secs - resp read: 0.0009 secs, 0.0000 secs, 0.0207 secs + DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0734 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0492 secs + req write: 0.0001 secs, 0.0000 secs, 0.0483 secs + resp wait: 0.0049 secs, 0.0001 secs, 0.0513 secs + resp read: 0.0025 secs, 0.0000 secs, 0.0553 secs Status code distribution: [200] 10000 responses @@ -197,44 +197,44 @@ Status code distribution: ``` Summary: - Total: 0.6101 secs - Slowest: 0.0371 secs + Total: 0.7473 secs + Slowest: 0.1251 secs Fastest: 0.0002 secs - Average: 0.0059 secs - Requests/sec: 16391.2840 + Average: 0.0073 secs + Requests/sec: 13382.2337 Total data: 2650000 bytes Size/request: 265 bytes Response time histogram: 0.000 [1] | - 0.004 [2948] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.008 [3227] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.011 [3350] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.015 [271] |■■■ - 0.019 [27] | - 0.022 [82] |■ - 0.026 [60] |■ - 0.030 [15] | - 0.033 [11] | - 0.037 [8] | + 0.013 [9034] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.025 [778] |■■■ + 0.038 [79] | + 0.050 [7] | + 0.063 [10] | + 0.075 [3] | + 0.088 [31] | + 0.100 [11] | + 0.113 [45] | + 0.125 [1] | Latency distribution: - 10% in 0.0004 secs - 25% in 0.0027 secs - 50% in 0.0060 secs - 75% in 0.0083 secs - 90% in 0.0091 secs - 95% in 0.0111 secs - 99% in 0.0220 secs + 10% in 0.0012 secs + 25% in 0.0031 secs + 50% in 0.0054 secs + 75% in 0.0086 secs + 90% in 0.0125 secs + 95% in 0.0158 secs + 99% in 0.0519 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0371 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0077 secs - req write: 0.0001 secs, 0.0000 secs, 0.0160 secs - resp wait: 0.0041 secs, 0.0001 secs, 0.0336 secs - resp read: 0.0009 secs, 0.0000 secs, 0.0143 secs + DNS+dialup: 0.0001 secs, 0.0002 secs, 0.1251 secs + DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0806 secs + req write: 0.0002 secs, 0.0000 secs, 0.0579 secs + resp wait: 0.0022 secs, 0.0001 secs, 0.0789 secs + resp read: 0.0027 secs, 0.0000 secs, 0.0707 secs Status code distribution: [200] 10000 responses From cfc3da6b0b340ef2481bfe0d11dbcb43c5891344 Mon Sep 17 00:00:00 2001 From: ORY Continuous Integration Date: Sun, 3 Jun 2018 12:10:19 +0000 Subject: [PATCH 24/29] Updates benchmarks --- BENCHMARKS.md | 210 +++++++++++++++++++++++++------------------------- 1 file changed, 105 insertions(+), 105 deletions(-) diff --git a/BENCHMARKS.md b/BENCHMARKS.md index d6ecaa2bb7c..adc3c424f8b 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -31,44 +31,44 @@ This section contains various benchmarks against OAuth 2.0 endpoints ``` Summary: - Total: 1.8369 secs - Slowest: 0.1154 secs + Total: 1.1894 secs + Slowest: 0.0664 secs Fastest: 0.0002 secs - Average: 0.0176 secs - Requests/sec: 5443.9436 + Average: 0.0115 secs + Requests/sec: 8407.4035 Total data: 1550000 bytes Size/request: 155 bytes Response time histogram: 0.000 [1] | - 0.012 [3951] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.023 [3356] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.035 [1452] |■■■■■■■■■■■■■■■ - 0.046 [681] |■■■■■■■ - 0.058 [343] |■■■ - 0.069 [131] |■ - 0.081 [61] |■ - 0.092 [16] | - 0.104 [5] | - 0.115 [3] | + 0.007 [3114] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.013 [2889] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.020 [2841] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.027 [856] |■■■■■■■■■■■ + 0.033 [195] |■■■ + 0.040 [63] |■ + 0.047 [23] | + 0.053 [10] | + 0.060 [1] | + 0.066 [7] | Latency distribution: - 10% in 0.0021 secs - 25% in 0.0065 secs - 50% in 0.0144 secs - 75% in 0.0245 secs - 90% in 0.0373 secs - 95% in 0.0477 secs - 99% in 0.0672 secs + 10% in 0.0018 secs + 25% in 0.0054 secs + 50% in 0.0110 secs + 75% in 0.0161 secs + 90% in 0.0207 secs + 95% in 0.0241 secs + 99% in 0.0335 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0002 secs, 0.1154 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0168 secs - req write: 0.0002 secs, 0.0000 secs, 0.0244 secs - resp wait: 0.0167 secs, 0.0002 secs, 0.1152 secs - resp read: 0.0004 secs, 0.0000 secs, 0.0256 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0664 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0061 secs + req write: 0.0001 secs, 0.0000 secs, 0.0157 secs + resp wait: 0.0106 secs, 0.0002 secs, 0.0536 secs + resp read: 0.0005 secs, 0.0000 secs, 0.0180 secs Status code distribution: [200] 10000 responses @@ -84,44 +84,44 @@ This endpoint uses [BCrypt](#bcrypt). ``` Summary: - Total: 25.1122 secs - Slowest: 0.8803 secs - Fastest: 0.0213 secs - Average: 0.2442 secs - Requests/sec: 398.2136 + Total: 24.6417 secs + Slowest: 0.9152 secs + Fastest: 0.0206 secs + Average: 0.2385 secs + Requests/sec: 405.8164 Total data: 1570000 bytes Size/request: 157 bytes Response time histogram: 0.021 [1] | - 0.107 [787] |■■■■■■■■■■ - 0.193 [2429] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.279 [3287] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.365 [2170] |■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.451 [938] |■■■■■■■■■■■ - 0.537 [285] |■■■ - 0.623 [74] |■ - 0.708 [25] | - 0.794 [2] | - 0.880 [2] | + 0.110 [1161] |■■■■■■■■■■■■■■■■ + 0.199 [2935] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.289 [2913] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.378 [1750] |■■■■■■■■■■■■■■■■■■■■■■■■ + 0.468 [801] |■■■■■■■■■■■ + 0.557 [292] |■■■■ + 0.647 [119] |■■ + 0.736 [24] | + 0.826 [2] | + 0.915 [2] | Latency distribution: - 10% in 0.1157 secs - 25% in 0.1772 secs - 50% in 0.2269 secs - 75% in 0.3035 secs - 90% in 0.3855 secs - 95% in 0.4283 secs - 99% in 0.5380 secs + 10% in 0.1062 secs + 25% in 0.1783 secs + 50% in 0.2108 secs + 75% in 0.2975 secs + 90% in 0.3929 secs + 95% in 0.4318 secs + 99% in 0.5854 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0213 secs, 0.8803 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0081 secs - req write: 0.0002 secs, 0.0000 secs, 0.0783 secs - resp wait: 0.2433 secs, 0.0212 secs, 0.8802 secs - resp read: 0.0005 secs, 0.0000 secs, 0.1274 secs + DNS+dialup: 0.0001 secs, 0.0206 secs, 0.9152 secs + DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0319 secs + req write: 0.0002 secs, 0.0000 secs, 0.0822 secs + resp wait: 0.2375 secs, 0.0205 secs, 0.9151 secs + resp read: 0.0005 secs, 0.0000 secs, 0.0847 secs Status code distribution: [200] 10000 responses @@ -146,44 +146,44 @@ This test is currently disabled due to issues with /dev/urandom being inaccessib ``` Summary: - Total: 0.9810 secs - Slowest: 0.0734 secs + Total: 0.7014 secs + Slowest: 0.0254 secs Fastest: 0.0002 secs - Average: 0.0094 secs - Requests/sec: 10193.7666 + Average: 0.0068 secs + Requests/sec: 14257.0422 Total data: 2670000 bytes Size/request: 267 bytes Response time histogram: 0.000 [1] | - 0.008 [5678] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.015 [2550] |■■■■■■■■■■■■■■■■■■ - 0.022 [822] |■■■■■■ - 0.029 [397] |■■■ - 0.037 [218] |■■ - 0.044 [179] |■ - 0.051 [92] |■ - 0.059 [44] | - 0.066 [8] | - 0.073 [11] | + 0.003 [2017] |■■■■■■■■■■■■■■■■■■■■■ + 0.005 [1378] |■■■■■■■■■■■■■■■ + 0.008 [1537] |■■■■■■■■■■■■■■■■ + 0.010 [3800] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.013 [797] |■■■■■■■■ + 0.015 [311] |■■■ + 0.018 [85] |■ + 0.020 [26] | + 0.023 [30] | + 0.025 [18] | Latency distribution: - 10% in 0.0010 secs - 25% in 0.0030 secs - 50% in 0.0059 secs - 75% in 0.0113 secs - 90% in 0.0218 secs - 95% in 0.0324 secs - 99% in 0.0490 secs + 10% in 0.0004 secs + 25% in 0.0037 secs + 50% in 0.0079 secs + 75% in 0.0093 secs + 90% in 0.0108 secs + 95% in 0.0125 secs + 99% in 0.0168 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0734 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0492 secs - req write: 0.0001 secs, 0.0000 secs, 0.0483 secs - resp wait: 0.0049 secs, 0.0001 secs, 0.0513 secs - resp read: 0.0025 secs, 0.0000 secs, 0.0553 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0254 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0127 secs + req write: 0.0001 secs, 0.0000 secs, 0.0119 secs + resp wait: 0.0058 secs, 0.0001 secs, 0.0230 secs + resp read: 0.0005 secs, 0.0000 secs, 0.0100 secs Status code distribution: [200] 10000 responses @@ -197,44 +197,44 @@ Status code distribution: ``` Summary: - Total: 0.7473 secs - Slowest: 0.1251 secs + Total: 0.5262 secs + Slowest: 0.0292 secs Fastest: 0.0002 secs - Average: 0.0073 secs - Requests/sec: 13382.2337 + Average: 0.0050 secs + Requests/sec: 19004.7126 Total data: 2650000 bytes Size/request: 265 bytes Response time histogram: 0.000 [1] | - 0.013 [9034] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.025 [778] |■■■ - 0.038 [79] | - 0.050 [7] | - 0.063 [10] | - 0.075 [3] | - 0.088 [31] | - 0.100 [11] | - 0.113 [45] | - 0.125 [1] | + 0.003 [2970] |■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.006 [4494] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.009 [1678] |■■■■■■■■■■■■■■■ + 0.012 [457] |■■■■ + 0.015 [213] |■■ + 0.018 [79] |■ + 0.020 [39] | + 0.023 [16] | + 0.026 [30] | + 0.029 [23] | Latency distribution: - 10% in 0.0012 secs - 25% in 0.0031 secs - 50% in 0.0054 secs - 75% in 0.0086 secs - 90% in 0.0125 secs - 95% in 0.0158 secs - 99% in 0.0519 secs + 10% in 0.0007 secs + 25% in 0.0028 secs + 50% in 0.0050 secs + 75% in 0.0060 secs + 90% in 0.0083 secs + 95% in 0.0109 secs + 99% in 0.0178 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0002 secs, 0.1251 secs - DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0806 secs - req write: 0.0002 secs, 0.0000 secs, 0.0579 secs - resp wait: 0.0022 secs, 0.0001 secs, 0.0789 secs - resp read: 0.0027 secs, 0.0000 secs, 0.0707 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0292 secs + DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0132 secs + req write: 0.0001 secs, 0.0000 secs, 0.0098 secs + resp wait: 0.0008 secs, 0.0001 secs, 0.0225 secs + resp read: 0.0022 secs, 0.0000 secs, 0.0153 secs Status code distribution: [200] 10000 responses From dccbe2c643ed62f8455740591967fd43a3599cb5 Mon Sep 17 00:00:00 2001 From: ORY Continuous Integration Date: Sun, 3 Jun 2018 12:12:11 +0000 Subject: [PATCH 25/29] Updates benchmarks --- BENCHMARKS.md | 206 +++++++++++++++++++++++++------------------------- 1 file changed, 103 insertions(+), 103 deletions(-) diff --git a/BENCHMARKS.md b/BENCHMARKS.md index adc3c424f8b..d93ef3295d0 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -31,44 +31,44 @@ This section contains various benchmarks against OAuth 2.0 endpoints ``` Summary: - Total: 1.1894 secs - Slowest: 0.0664 secs + Total: 1.1131 secs + Slowest: 0.0467 secs Fastest: 0.0002 secs - Average: 0.0115 secs - Requests/sec: 8407.4035 + Average: 0.0108 secs + Requests/sec: 8984.2733 Total data: 1550000 bytes Size/request: 155 bytes Response time histogram: 0.000 [1] | - 0.007 [3114] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.013 [2889] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.020 [2841] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.027 [856] |■■■■■■■■■■■ - 0.033 [195] |■■■ - 0.040 [63] |■ - 0.047 [23] | - 0.053 [10] | - 0.060 [1] | - 0.066 [7] | + 0.005 [2173] |■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.010 [1764] |■■■■■■■■■■■■■■■■■■■■■■ + 0.014 [3226] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.019 [2014] |■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.023 [528] |■■■■■■■ + 0.028 [186] |■■ + 0.033 [64] |■ + 0.037 [31] | + 0.042 [8] | + 0.047 [5] | Latency distribution: - 10% in 0.0018 secs - 25% in 0.0054 secs - 50% in 0.0110 secs - 75% in 0.0161 secs - 90% in 0.0207 secs - 95% in 0.0241 secs - 99% in 0.0335 secs + 10% in 0.0017 secs + 25% in 0.0058 secs + 50% in 0.0118 secs + 75% in 0.0145 secs + 90% in 0.0179 secs + 95% in 0.0212 secs + 99% in 0.0287 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0664 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0061 secs - req write: 0.0001 secs, 0.0000 secs, 0.0157 secs - resp wait: 0.0106 secs, 0.0002 secs, 0.0536 secs - resp read: 0.0005 secs, 0.0000 secs, 0.0180 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0467 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0113 secs + req write: 0.0001 secs, 0.0000 secs, 0.0117 secs + resp wait: 0.0105 secs, 0.0002 secs, 0.0398 secs + resp read: 0.0001 secs, 0.0000 secs, 0.0109 secs Status code distribution: [200] 10000 responses @@ -84,44 +84,44 @@ This endpoint uses [BCrypt](#bcrypt). ``` Summary: - Total: 24.6417 secs - Slowest: 0.9152 secs + Total: 24.5861 secs + Slowest: 0.8971 secs Fastest: 0.0206 secs - Average: 0.2385 secs - Requests/sec: 405.8164 + Average: 0.2381 secs + Requests/sec: 406.7342 Total data: 1570000 bytes Size/request: 157 bytes Response time histogram: 0.021 [1] | - 0.110 [1161] |■■■■■■■■■■■■■■■■ - 0.199 [2935] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.289 [2913] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.378 [1750] |■■■■■■■■■■■■■■■■■■■■■■■■ - 0.468 [801] |■■■■■■■■■■■ - 0.557 [292] |■■■■ - 0.647 [119] |■■ - 0.736 [24] | - 0.826 [2] | - 0.915 [2] | + 0.108 [1120] |■■■■■■■■■■■■■ + 0.196 [2381] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.284 [3387] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.371 [1791] |■■■■■■■■■■■■■■■■■■■■■ + 0.459 [873] |■■■■■■■■■■ + 0.547 [294] |■■■ + 0.634 [92] |■ + 0.722 [36] | + 0.809 [20] | + 0.897 [5] | Latency distribution: - 10% in 0.1062 secs - 25% in 0.1783 secs - 50% in 0.2108 secs - 75% in 0.2975 secs - 90% in 0.3929 secs - 95% in 0.4318 secs - 99% in 0.5854 secs + 10% in 0.1048 secs + 25% in 0.1808 secs + 50% in 0.2119 secs + 75% in 0.2968 secs + 90% in 0.3891 secs + 95% in 0.4240 secs + 99% in 0.5942 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0206 secs, 0.9152 secs - DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0319 secs - req write: 0.0002 secs, 0.0000 secs, 0.0822 secs - resp wait: 0.2375 secs, 0.0205 secs, 0.9151 secs - resp read: 0.0005 secs, 0.0000 secs, 0.0847 secs + DNS+dialup: 0.0001 secs, 0.0206 secs, 0.8971 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0051 secs + req write: 0.0002 secs, 0.0000 secs, 0.0848 secs + resp wait: 0.2373 secs, 0.0205 secs, 0.8970 secs + resp read: 0.0005 secs, 0.0000 secs, 0.0750 secs Status code distribution: [200] 10000 responses @@ -146,44 +146,44 @@ This test is currently disabled due to issues with /dev/urandom being inaccessib ``` Summary: - Total: 0.7014 secs - Slowest: 0.0254 secs + Total: 0.7189 secs + Slowest: 0.0279 secs Fastest: 0.0002 secs - Average: 0.0068 secs - Requests/sec: 14257.0422 + Average: 0.0069 secs + Requests/sec: 13909.2720 Total data: 2670000 bytes Size/request: 267 bytes Response time histogram: 0.000 [1] | - 0.003 [2017] |■■■■■■■■■■■■■■■■■■■■■ - 0.005 [1378] |■■■■■■■■■■■■■■■ - 0.008 [1537] |■■■■■■■■■■■■■■■■ - 0.010 [3800] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.013 [797] |■■■■■■■■ - 0.015 [311] |■■■ - 0.018 [85] |■ - 0.020 [26] | - 0.023 [30] | - 0.025 [18] | + 0.003 [2271] |■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.006 [1708] |■■■■■■■■■■■■■■■■■■■■ + 0.009 [1516] |■■■■■■■■■■■■■■■■■ + 0.011 [3466] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.014 [692] |■■■■■■■■ + 0.017 [160] |■■ + 0.020 [89] |■ + 0.022 [41] | + 0.025 [43] | + 0.028 [13] | Latency distribution: - 10% in 0.0004 secs - 25% in 0.0037 secs - 50% in 0.0079 secs - 75% in 0.0093 secs - 90% in 0.0108 secs - 95% in 0.0125 secs - 99% in 0.0168 secs + 10% in 0.0005 secs + 25% in 0.0034 secs + 50% in 0.0078 secs + 75% in 0.0098 secs + 90% in 0.0114 secs + 95% in 0.0130 secs + 99% in 0.0195 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0254 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0127 secs - req write: 0.0001 secs, 0.0000 secs, 0.0119 secs - resp wait: 0.0058 secs, 0.0001 secs, 0.0230 secs - resp read: 0.0005 secs, 0.0000 secs, 0.0100 secs + DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0279 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0085 secs + req write: 0.0001 secs, 0.0000 secs, 0.0101 secs + resp wait: 0.0057 secs, 0.0001 secs, 0.0226 secs + resp read: 0.0006 secs, 0.0000 secs, 0.0140 secs Status code distribution: [200] 10000 responses @@ -197,44 +197,44 @@ Status code distribution: ``` Summary: - Total: 0.5262 secs - Slowest: 0.0292 secs + Total: 0.5641 secs + Slowest: 0.0350 secs Fastest: 0.0002 secs - Average: 0.0050 secs - Requests/sec: 19004.7126 + Average: 0.0054 secs + Requests/sec: 17726.4215 Total data: 2650000 bytes Size/request: 265 bytes Response time histogram: 0.000 [1] | - 0.003 [2970] |■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.006 [4494] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.009 [1678] |■■■■■■■■■■■■■■■ - 0.012 [457] |■■■■ - 0.015 [213] |■■ - 0.018 [79] |■ - 0.020 [39] | - 0.023 [16] | - 0.026 [30] | - 0.029 [23] | + 0.004 [3044] |■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.007 [4767] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.011 [1644] |■■■■■■■■■■■■■■ + 0.014 [309] |■■■ + 0.018 [121] |■ + 0.021 [33] | + 0.025 [25] | + 0.028 [31] | + 0.032 [14] | + 0.035 [11] | Latency distribution: - 10% in 0.0007 secs - 25% in 0.0028 secs - 50% in 0.0050 secs - 75% in 0.0060 secs - 90% in 0.0083 secs + 10% in 0.0012 secs + 25% in 0.0029 secs + 50% in 0.0051 secs + 75% in 0.0069 secs + 90% in 0.0092 secs 95% in 0.0109 secs - 99% in 0.0178 secs + 99% in 0.0194 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0292 secs - DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0132 secs - req write: 0.0001 secs, 0.0000 secs, 0.0098 secs - resp wait: 0.0008 secs, 0.0001 secs, 0.0225 secs - resp read: 0.0022 secs, 0.0000 secs, 0.0153 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0350 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0137 secs + req write: 0.0001 secs, 0.0000 secs, 0.0185 secs + resp wait: 0.0016 secs, 0.0001 secs, 0.0240 secs + resp read: 0.0019 secs, 0.0000 secs, 0.0190 secs Status code distribution: [200] 10000 responses From a1af69a10ebb18a10aa518e82bafcc311ded09d5 Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 14:12:17 +0200 Subject: [PATCH 26/29] docs: Adds CI benchmarks --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ebf2b01b374..2b98099847b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -158,7 +158,7 @@ jobs: - run: git remote rm origin - run: git remote add origin https://arekkas:$GITHUB_TOKEN@github.com/ory/hydra.git - run: git fetch origin - - run: "if [[ $(git log --oneline -n 1) != \"Updates benchmarks\" ]]; then (git commit -m \"Updates benchmarks\" -- BENCHMARKS.md && git push -u origin $CIRCLE_BRANCH); fi" + - run: "if [[ $(git log --oneline -n 1) != *\"Updates benchmarks\"* ]]; then (git commit -m \"Updates benchmarks\" -- BENCHMARKS.md && git push -u origin $CIRCLE_BRANCH); fi" workflows: version: 2 From 55b7b47daf27de716ddd308d8da64925115cf180 Mon Sep 17 00:00:00 2001 From: ORY Continuous Integration Date: Sun, 3 Jun 2018 12:14:04 +0000 Subject: [PATCH 27/29] Updates benchmarks --- BENCHMARKS.md | 208 +++++++++++++++++++++++++------------------------- 1 file changed, 104 insertions(+), 104 deletions(-) diff --git a/BENCHMARKS.md b/BENCHMARKS.md index d93ef3295d0..9e08c6158e0 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -31,44 +31,44 @@ This section contains various benchmarks against OAuth 2.0 endpoints ``` Summary: - Total: 1.1131 secs - Slowest: 0.0467 secs + Total: 1.1177 secs + Slowest: 0.0651 secs Fastest: 0.0002 secs - Average: 0.0108 secs - Requests/sec: 8984.2733 + Average: 0.0107 secs + Requests/sec: 8946.6894 Total data: 1550000 bytes Size/request: 155 bytes Response time histogram: 0.000 [1] | - 0.005 [2173] |■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.010 [1764] |■■■■■■■■■■■■■■■■■■■■■■ - 0.014 [3226] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.019 [2014] |■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.023 [528] |■■■■■■■ - 0.028 [186] |■■ - 0.033 [64] |■ - 0.037 [31] | - 0.042 [8] | - 0.047 [5] | + 0.007 [3196] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.013 [2867] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.020 [3220] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.026 [544] |■■■■■■■ + 0.033 [124] |■■ + 0.039 [21] | + 0.046 [12] | + 0.052 [10] | + 0.059 [3] | + 0.065 [2] | Latency distribution: - 10% in 0.0017 secs - 25% in 0.0058 secs - 50% in 0.0118 secs - 75% in 0.0145 secs - 90% in 0.0179 secs - 95% in 0.0212 secs - 99% in 0.0287 secs + 10% in 0.0015 secs + 25% in 0.0052 secs + 50% in 0.0113 secs + 75% in 0.0151 secs + 90% in 0.0185 secs + 95% in 0.0214 secs + 99% in 0.0286 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0467 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0113 secs - req write: 0.0001 secs, 0.0000 secs, 0.0117 secs - resp wait: 0.0105 secs, 0.0002 secs, 0.0398 secs - resp read: 0.0001 secs, 0.0000 secs, 0.0109 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0651 secs + DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0162 secs + req write: 0.0001 secs, 0.0000 secs, 0.0166 secs + resp wait: 0.0101 secs, 0.0002 secs, 0.0409 secs + resp read: 0.0002 secs, 0.0000 secs, 0.0120 secs Status code distribution: [200] 10000 responses @@ -84,44 +84,44 @@ This endpoint uses [BCrypt](#bcrypt). ``` Summary: - Total: 24.5861 secs - Slowest: 0.8971 secs - Fastest: 0.0206 secs - Average: 0.2381 secs - Requests/sec: 406.7342 + Total: 24.5185 secs + Slowest: 0.8679 secs + Fastest: 0.0207 secs + Average: 0.2390 secs + Requests/sec: 407.8554 Total data: 1570000 bytes Size/request: 157 bytes Response time histogram: 0.021 [1] | - 0.108 [1120] |■■■■■■■■■■■■■ - 0.196 [2381] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.284 [3387] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.371 [1791] |■■■■■■■■■■■■■■■■■■■■■ - 0.459 [873] |■■■■■■■■■■ - 0.547 [294] |■■■ - 0.634 [92] |■ - 0.722 [36] | - 0.809 [20] | - 0.897 [5] | + 0.105 [679] |■■■■■■■ + 0.190 [2214] |■■■■■■■■■■■■■■■■■■■■■■■■ + 0.275 [3645] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.360 [2255] |■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.444 [854] |■■■■■■■■■ + 0.529 [271] |■■■ + 0.614 [54] |■ + 0.698 [21] | + 0.783 [3] | + 0.868 [3] | Latency distribution: - 10% in 0.1048 secs - 25% in 0.1808 secs - 50% in 0.2119 secs - 75% in 0.2968 secs - 90% in 0.3891 secs - 95% in 0.4240 secs - 99% in 0.5942 secs + 10% in 0.1154 secs + 25% in 0.1841 secs + 50% in 0.2151 secs + 75% in 0.2971 secs + 90% in 0.3794 secs + 95% in 0.4129 secs + 99% in 0.5186 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0206 secs, 0.8971 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0051 secs - req write: 0.0002 secs, 0.0000 secs, 0.0848 secs - resp wait: 0.2373 secs, 0.0205 secs, 0.8970 secs - resp read: 0.0005 secs, 0.0000 secs, 0.0750 secs + DNS+dialup: 0.0002 secs, 0.0207 secs, 0.8679 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0143 secs + req write: 0.0001 secs, 0.0000 secs, 0.0584 secs + resp wait: 0.2382 secs, 0.0206 secs, 0.8679 secs + resp read: 0.0003 secs, 0.0000 secs, 0.1064 secs Status code distribution: [200] 10000 responses @@ -146,44 +146,44 @@ This test is currently disabled due to issues with /dev/urandom being inaccessib ``` Summary: - Total: 0.7189 secs - Slowest: 0.0279 secs + Total: 0.6009 secs + Slowest: 0.0329 secs Fastest: 0.0002 secs - Average: 0.0069 secs - Requests/sec: 13909.2720 + Average: 0.0058 secs + Requests/sec: 16642.6430 Total data: 2670000 bytes Size/request: 267 bytes Response time histogram: 0.000 [1] | - 0.003 [2271] |■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.006 [1708] |■■■■■■■■■■■■■■■■■■■■ - 0.009 [1516] |■■■■■■■■■■■■■■■■■ - 0.011 [3466] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.014 [692] |■■■■■■■■ - 0.017 [160] |■■ - 0.020 [89] |■ - 0.022 [41] | - 0.025 [43] | - 0.028 [13] | + 0.003 [2964] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.007 [3771] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.010 [2330] |■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.013 [526] |■■■■■■ + 0.017 [136] |■ + 0.020 [78] |■ + 0.023 [95] |■ + 0.026 [61] |■ + 0.030 [33] | + 0.033 [5] | Latency distribution: - 10% in 0.0005 secs - 25% in 0.0034 secs - 50% in 0.0078 secs - 75% in 0.0098 secs - 90% in 0.0114 secs - 95% in 0.0130 secs - 99% in 0.0195 secs + 10% in 0.0006 secs + 25% in 0.0029 secs + 50% in 0.0052 secs + 75% in 0.0079 secs + 90% in 0.0098 secs + 95% in 0.0122 secs + 99% in 0.0231 secs Details (average, fastest, slowest): - DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0279 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0085 secs - req write: 0.0001 secs, 0.0000 secs, 0.0101 secs - resp wait: 0.0057 secs, 0.0001 secs, 0.0226 secs - resp read: 0.0006 secs, 0.0000 secs, 0.0140 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0329 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0109 secs + req write: 0.0001 secs, 0.0000 secs, 0.0105 secs + resp wait: 0.0027 secs, 0.0001 secs, 0.0284 secs + resp read: 0.0015 secs, 0.0000 secs, 0.0193 secs Status code distribution: [200] 10000 responses @@ -197,44 +197,44 @@ Status code distribution: ``` Summary: - Total: 0.5641 secs - Slowest: 0.0350 secs + Total: 0.6302 secs + Slowest: 0.0343 secs Fastest: 0.0002 secs - Average: 0.0054 secs - Requests/sec: 17726.4215 + Average: 0.0061 secs + Requests/sec: 15866.7748 Total data: 2650000 bytes Size/request: 265 bytes Response time histogram: 0.000 [1] | - 0.004 [3044] |■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.007 [4767] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.011 [1644] |■■■■■■■■■■■■■■ - 0.014 [309] |■■■ - 0.018 [121] |■ - 0.021 [33] | - 0.025 [25] | - 0.028 [31] | - 0.032 [14] | - 0.035 [11] | + 0.004 [2692] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.007 [3451] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.010 [2990] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.014 [694] |■■■■■■■■ + 0.017 [60] |■ + 0.021 [15] | + 0.024 [41] | + 0.027 [18] | + 0.031 [22] | + 0.034 [16] | Latency distribution: - 10% in 0.0012 secs - 25% in 0.0029 secs - 50% in 0.0051 secs - 75% in 0.0069 secs - 90% in 0.0092 secs - 95% in 0.0109 secs + 10% in 0.0006 secs + 25% in 0.0031 secs + 50% in 0.0055 secs + 75% in 0.0089 secs + 90% in 0.0102 secs + 95% in 0.0115 secs 99% in 0.0194 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0350 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0137 secs - req write: 0.0001 secs, 0.0000 secs, 0.0185 secs - resp wait: 0.0016 secs, 0.0001 secs, 0.0240 secs - resp read: 0.0019 secs, 0.0000 secs, 0.0190 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0343 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0088 secs + req write: 0.0001 secs, 0.0000 secs, 0.0148 secs + resp wait: 0.0034 secs, 0.0001 secs, 0.0243 secs + resp read: 0.0013 secs, 0.0000 secs, 0.0229 secs Status code distribution: [200] 10000 responses From 584c5c2891cf95196e92ad407fe74cc720485981 Mon Sep 17 00:00:00 2001 From: arekkas Date: Sun, 3 Jun 2018 14:14:27 +0200 Subject: [PATCH 28/29] docs: Adds CI benchmarks --- BENCHMARKS.md | 1 - 1 file changed, 1 deletion(-) diff --git a/BENCHMARKS.md b/BENCHMARKS.md index 9e08c6158e0..7d26feb416f 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -82,7 +82,6 @@ Status code distribution: This endpoint uses [BCrypt](#bcrypt). ``` - Summary: Total: 24.5185 secs Slowest: 0.8679 secs From ed30d8d3d5254bd982770739a32667f50c23416f Mon Sep 17 00:00:00 2001 From: ORY Continuous Integration Date: Sun, 3 Jun 2018 12:15:49 +0000 Subject: [PATCH 29/29] Updates benchmarks --- BENCHMARKS.md | 209 +++++++++++++++++++++++++------------------------- 1 file changed, 105 insertions(+), 104 deletions(-) diff --git a/BENCHMARKS.md b/BENCHMARKS.md index 7d26feb416f..2fe056f08cc 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -31,44 +31,44 @@ This section contains various benchmarks against OAuth 2.0 endpoints ``` Summary: - Total: 1.1177 secs - Slowest: 0.0651 secs + Total: 1.1424 secs + Slowest: 0.0633 secs Fastest: 0.0002 secs - Average: 0.0107 secs - Requests/sec: 8946.6894 + Average: 0.0110 secs + Requests/sec: 8753.1552 Total data: 1550000 bytes Size/request: 155 bytes Response time histogram: 0.000 [1] | - 0.007 [3196] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.013 [2867] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.020 [3220] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.026 [544] |■■■■■■■ - 0.033 [124] |■■ - 0.039 [21] | - 0.046 [12] | - 0.052 [10] | - 0.059 [3] | - 0.065 [2] | + 0.007 [2565] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.013 [3521] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.019 [3182] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.025 [446] |■■■■■ + 0.032 [147] |■■ + 0.038 [77] |■ + 0.044 [41] | + 0.051 [16] | + 0.057 [2] | + 0.063 [2] | Latency distribution: - 10% in 0.0015 secs - 25% in 0.0052 secs - 50% in 0.0113 secs - 75% in 0.0151 secs - 90% in 0.0185 secs + 10% in 0.0016 secs + 25% in 0.0064 secs + 50% in 0.0119 secs + 75% in 0.0140 secs + 90% in 0.0177 secs 95% in 0.0214 secs - 99% in 0.0286 secs + 99% in 0.0351 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0651 secs - DNS-lookup: 0.0001 secs, 0.0000 secs, 0.0162 secs - req write: 0.0001 secs, 0.0000 secs, 0.0166 secs - resp wait: 0.0101 secs, 0.0002 secs, 0.0409 secs - resp read: 0.0002 secs, 0.0000 secs, 0.0120 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0633 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0122 secs + req write: 0.0001 secs, 0.0000 secs, 0.0218 secs + resp wait: 0.0106 secs, 0.0002 secs, 0.0543 secs + resp read: 0.0002 secs, 0.0000 secs, 0.0235 secs Status code distribution: [200] 10000 responses @@ -82,45 +82,46 @@ Status code distribution: This endpoint uses [BCrypt](#bcrypt). ``` + Summary: - Total: 24.5185 secs - Slowest: 0.8679 secs - Fastest: 0.0207 secs - Average: 0.2390 secs - Requests/sec: 407.8554 + Total: 24.3045 secs + Slowest: 0.8962 secs + Fastest: 0.0205 secs + Average: 0.2366 secs + Requests/sec: 411.4469 Total data: 1570000 bytes Size/request: 157 bytes Response time histogram: - 0.021 [1] | - 0.105 [679] |■■■■■■■ - 0.190 [2214] |■■■■■■■■■■■■■■■■■■■■■■■■ - 0.275 [3645] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.360 [2255] |■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.444 [854] |■■■■■■■■■ - 0.529 [271] |■■■ - 0.614 [54] |■ - 0.698 [21] | - 0.783 [3] | - 0.868 [3] | + 0.020 [1] | + 0.108 [941] |■■■■■■■■■■ + 0.196 [2380] |■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.283 [3637] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.371 [1893] |■■■■■■■■■■■■■■■■■■■■■ + 0.458 [752] |■■■■■■■■ + 0.546 [261] |■■■ + 0.634 [97] |■ + 0.721 [23] | + 0.809 [12] | + 0.896 [3] | Latency distribution: - 10% in 0.1154 secs - 25% in 0.1841 secs - 50% in 0.2151 secs - 75% in 0.2971 secs - 90% in 0.3794 secs - 95% in 0.4129 secs - 99% in 0.5186 secs + 10% in 0.1096 secs + 25% in 0.1840 secs + 50% in 0.2115 secs + 75% in 0.2921 secs + 90% in 0.3829 secs + 95% in 0.4145 secs + 99% in 0.5893 secs Details (average, fastest, slowest): - DNS+dialup: 0.0002 secs, 0.0207 secs, 0.8679 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0143 secs - req write: 0.0001 secs, 0.0000 secs, 0.0584 secs - resp wait: 0.2382 secs, 0.0206 secs, 0.8679 secs - resp read: 0.0003 secs, 0.0000 secs, 0.1064 secs + DNS+dialup: 0.0001 secs, 0.0205 secs, 0.8962 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0139 secs + req write: 0.0001 secs, 0.0000 secs, 0.0742 secs + resp wait: 0.2360 secs, 0.0204 secs, 0.8961 secs + resp read: 0.0002 secs, 0.0000 secs, 0.0807 secs Status code distribution: [200] 10000 responses @@ -145,44 +146,44 @@ This test is currently disabled due to issues with /dev/urandom being inaccessib ``` Summary: - Total: 0.6009 secs - Slowest: 0.0329 secs + Total: 0.6554 secs + Slowest: 0.0331 secs Fastest: 0.0002 secs - Average: 0.0058 secs - Requests/sec: 16642.6430 + Average: 0.0064 secs + Requests/sec: 15257.4657 Total data: 2670000 bytes Size/request: 267 bytes Response time histogram: 0.000 [1] | - 0.003 [2964] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.007 [3771] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.010 [2330] |■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.013 [526] |■■■■■■ - 0.017 [136] |■ - 0.020 [78] |■ - 0.023 [95] |■ - 0.026 [61] |■ - 0.030 [33] | - 0.033 [5] | + 0.003 [2703] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.007 [2650] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.010 [3599] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.013 [626] |■■■■■■■ + 0.017 [101] |■ + 0.020 [77] |■ + 0.023 [111] |■ + 0.027 [94] |■ + 0.030 [28] | + 0.033 [10] | Latency distribution: - 10% in 0.0006 secs + 10% in 0.0005 secs 25% in 0.0029 secs - 50% in 0.0052 secs - 75% in 0.0079 secs - 90% in 0.0098 secs - 95% in 0.0122 secs - 99% in 0.0231 secs + 50% in 0.0062 secs + 75% in 0.0087 secs + 90% in 0.0102 secs + 95% in 0.0123 secs + 99% in 0.0241 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0329 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0109 secs - req write: 0.0001 secs, 0.0000 secs, 0.0105 secs - resp wait: 0.0027 secs, 0.0001 secs, 0.0284 secs - resp read: 0.0015 secs, 0.0000 secs, 0.0193 secs + DNS+dialup: 0.0001 secs, 0.0002 secs, 0.0331 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0067 secs + req write: 0.0001 secs, 0.0000 secs, 0.0182 secs + resp wait: 0.0047 secs, 0.0001 secs, 0.0315 secs + resp read: 0.0008 secs, 0.0000 secs, 0.0205 secs Status code distribution: [200] 10000 responses @@ -196,44 +197,44 @@ Status code distribution: ``` Summary: - Total: 0.6302 secs - Slowest: 0.0343 secs + Total: 0.5133 secs + Slowest: 0.0345 secs Fastest: 0.0002 secs - Average: 0.0061 secs - Requests/sec: 15866.7748 + Average: 0.0050 secs + Requests/sec: 19480.9563 Total data: 2650000 bytes Size/request: 265 bytes Response time histogram: 0.000 [1] | - 0.004 [2692] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.007 [3451] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.010 [2990] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ - 0.014 [694] |■■■■■■■■ - 0.017 [60] |■ - 0.021 [15] | - 0.024 [41] | - 0.027 [18] | - 0.031 [22] | - 0.034 [16] | + 0.004 [3452] |■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.007 [5398] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ + 0.010 [597] |■■■■ + 0.014 [76] |■ + 0.017 [112] |■ + 0.021 [198] |■ + 0.024 [44] | + 0.028 [39] | + 0.031 [78] |■ + 0.034 [5] | Latency distribution: - 10% in 0.0006 secs - 25% in 0.0031 secs - 50% in 0.0055 secs - 75% in 0.0089 secs - 90% in 0.0102 secs - 95% in 0.0115 secs - 99% in 0.0194 secs + 10% in 0.0007 secs + 25% in 0.0026 secs + 50% in 0.0046 secs + 75% in 0.0055 secs + 90% in 0.0075 secs + 95% in 0.0125 secs + 99% in 0.0268 secs Details (average, fastest, slowest): - DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0343 secs - DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0088 secs - req write: 0.0001 secs, 0.0000 secs, 0.0148 secs - resp wait: 0.0034 secs, 0.0001 secs, 0.0243 secs - resp read: 0.0013 secs, 0.0000 secs, 0.0229 secs + DNS+dialup: 0.0000 secs, 0.0002 secs, 0.0345 secs + DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0097 secs + req write: 0.0001 secs, 0.0000 secs, 0.0162 secs + resp wait: 0.0007 secs, 0.0001 secs, 0.0252 secs + resp read: 0.0021 secs, 0.0000 secs, 0.0290 secs Status code distribution: [200] 10000 responses