Skip to main content

human password login benchmark of zitadel v4

Benchmark results of v4 release of Zitadel.

This benchmark tests the flow of a user signing in to Zitadel using username and password which is a highly CPU intensive task for checking the password.

Performance test results​

MetricValue
Baselinenone
PurposeTest current performance
Test start06:43 UTC
Test duration30min
Executed testhuman_password_login
k6 versionv1.0.0-rc1
VUs600
Client locationUS1
ZITADEL locationUS1
ZITADEL container specificationvCPU: 6
Memory: 6 Gi
Container min scale: 2
Container max scale: 7
ZITADEL Versionv4.0.0-rc2
ZITADEL feature flagswebKey: true, improvedPerformance: ["IMPROVED_PERFORMANCE_ORG_BY_ID", "IMPROVED_PERFORMANCE_PROJECT", "IMPROVED_PERFORMANCE_USER_GRANT", "IMPROVED_PERFORMANCE_ORG_DOMAIN_VERIFIED", "IMPROVED_PERFORMANCE_PROJECT_GRANT"]
Databasetype: psql
version: v17.4
Database locationUS1
Database specificationvCPU: 8
memory: 32Gib
ZITADEL metrics during test
Observed errors
Top 3 most expensive database queries1: Locking projections for reduce
2: Query events by aggregate type and event type
3: Query events by instance id, aggregate types, event types, position
k6 Iterations per second39
k6 outputoutput
flowchart outcome

Endpoint latencies​

Until :45 were containers starting because it was a cold start test.

k6 output​

  â–ˆ TOTAL RESULTS 

checks_total.......................: 867495 464.541713/s
checks_succeeded...................: 99.88% 866490 out of 867495
checks_failed......................: 0.11% 1005 out of 867495

✓ user defined
✗ authorize status ok
↳ 99% — ✓ 72470 / ✗ 435
✗ login name status ok
↳ 99% — ✓ 72331 / ✗ 139
✓ login shows password page
✗ password status ok
↳ 99% — ✓ 72032 / ✗ 155
✗ password callback
↳ 99% — ✓ 72000 / ✗ 32
✓ code set
✗ token status ok
↳ 99% — ✓ 71866 / ✗ 134
✓ access token created
✓ id token created
✓ info created
✓ org created
✓ create user is status ok
✗ openid configuration
↳ 98% — ✓ 600 / ✗ 11
✗ userinfo status ok
↳ 99% — ✓ 71755 / ✗ 99
✓ org removed

CUSTOM
human_password_login_duration...........................................: min=984ms avg=14.73s max=58.88s p(50)=12.41s p(95)=36.8s p(99)=40.55s
login_ui_enter_login_name_duration......................................: min=98.28ms avg=10.57s max=38.72s p(50)=5.99s p(95)=32.4s p(99)=36.16s
login_ui_enter_password_duration........................................: min=1.12ms avg=119.12ms max=1m0s p(50)=2.15ms p(95)=3.96ms p(99)=3.8s
login_ui_init_login_duration............................................: min=41.73ms avg=600.61ms max=22.51s p(50)=292.69ms p(95)=1.84s p(99)=2.82s
login_ui_token_duration.................................................: min=53.03ms avg=712.39ms max=21.76s p(50)=339.01ms p(95)=2.11s p(99)=3.32s
oidc_user_info_duration.................................................: min=14.54ms avg=187.13ms max=21.51s p(50)=74.47ms p(95)=398.78ms p(99)=619.27ms
org_create_org_duration.................................................: min=50.09ms avg=50.09ms max=50.09ms p(50)=50.09ms p(95)=50.09ms p(99)=50.09ms
user_create_human_duration..............................................: min=425.26ms avg=11.83s max=16.89s p(50)=13.67s p(95)=16.07s p(99)=16.78s

HTTP
http_req_duration.......................................................: min=1.12ms avg=1.87s max=1m0s p(50)=257.41ms p(95)=12.28s p(99)=31.18s
{ expected_response:true }............................................: min=1.12ms avg=1.84s max=38.72s p(50)=256.14ms p(95)=11.83s p(99)=31.19s
http_req_failed.........................................................: 0.19% 1117 out of 581385
http_reqs...............................................................: 581385 311.330421/s

EXECUTION
iteration_duration......................................................: min=983.33ms avg=14.88s max=1m11s p(50)=12.64s p(95)=36.85s p(99)=40.62s
iterations..............................................................: 72904 39.039936/s
vus.....................................................................: 18 min=0 max=600
vus_max.................................................................: 600 min=600 max=600

NETWORK
data_received...........................................................: 1.2 GB 658 kB/s
data_sent...............................................................: 235 MB 126 kB/s

running (31m07.4s), 000/600 VUs, 72904 complete and 0 interrupted iterations

Was this page useful?