Skip to main content

machine jwt profile grant benchmark of zitadel v2.66.0

The tests showed heavy database load by time by the first two database queries. These queries need to be analyzed further.

Performance test results​

MetricValue
Baselinenone
PurposeTest current performance
Test start15:39 UTC
Test duration30min
Executed testmachine_jwt_profile_grant
k6 versionv0.54.0
VUs150
Client locationUS1
ZITADEL locationUS1
ZITADEL container specificationvCPU: 2
Memory: 512 Mib
Container count: 5
ZITADEL Versionv2.66.0
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: v15.8
Database locationUS1
Database specificationvCPU: 8
memory: 32Gib
ZITADEL metrics during test
Observed errors
Top 3 most expensive database queries1: Write events using the newly added eventstore.push function
2: Query events by instance_id, aggregate_type, aggregate_id, event_types
3: Query user
k6 Iterations per second439
k6 outputoutput
flowchart outcomeScale out

Endpoint latencies​

k6 output​

     ✓ openid configuration
✗ token status ok
↳ 99% — ✓ 790655 / ✗ 5
✗ access token returned
↳ 99% — ✓ 790655 / ✗ 5

â–ˆ setup

✓ user defined
✓ authorize status ok
✓ login name status ok
✓ login shows password page
✓ password status ok
✓ password callback
✓ code set
✓ token status ok
✓ access token created
✓ id token created
✓ info created
✓ org created
✓ create user is status ok
✓ generate machine key status ok

â–ˆ teardown

✓ org removed

checks...............................: 99.99% ✓ 1581773 ✗ 10
data_received........................: 1.1 GB 623 kB/s
data_sent............................: 628 MB 347 kB/s
http_req_blocked.....................: min=167ns avg=20.68µs max=493.59ms p(50)=468ns p(95)=717ns p(99)=928ns
http_req_connecting..................: min=0s avg=10.06µs max=388.27ms p(50)=0s p(95)=0s p(99)=0s
http_req_duration....................: min=17.71ms avg=337.34ms max=16.27s p(50)=249.03ms p(95)=888.75ms p(99)=1.4s
{ expected_response:true }.........: min=17.71ms avg=337.29ms max=3.56s p(50)=249.03ms p(95)=888.7ms p(99)=1.4s
http_req_failed......................: 0.00% ✓ 5 ✗ 791265
http_req_receiving...................: min=25.49µs avg=1.58ms max=539.43ms p(50)=89.69µs p(95)=7.55ms p(99)=23.46ms
http_req_sending.....................: min=22.7µs avg=69.14µs max=480.23ms p(50)=59.16µs p(95)=85.15µs p(99)=129.88µs
http_req_tls_handshaking.............: min=0s avg=9.38µs max=98.15ms p(50)=0s p(95)=0s p(99)=0s
http_req_waiting.....................: min=15.11ms avg=335.69ms max=16.26s p(50)=246.91ms p(95)=888.27ms p(99)=1.4s
http_reqs............................: 791270 437.256468/s
iteration_duration...................: min=32.28ms avg=341.46ms max=16.27s p(50)=253ms p(95)=892.49ms p(99)=1.41s
iterations...........................: 790660 436.919382/s
login_ui_enter_login_name_duration...: min=179.27ms avg=179.27ms max=179.27ms p(50)=179.27ms p(95)=179.27ms p(99)=179.27ms
login_ui_enter_password_duration.....: min=17.71ms avg=17.71ms max=17.71ms p(50)=17.71ms p(95)=17.71ms p(99)=17.71ms
login_ui_init_login_duration.........: min=77.66ms avg=77.66ms max=77.66ms p(50)=77.66ms p(95)=77.66ms p(99)=77.66ms
login_ui_token_duration..............: min=86.79ms avg=86.79ms max=86.79ms p(50)=86.79ms p(95)=86.79ms p(99)=86.79ms
oidc_token_duration..................: min=28.38ms avg=337.54ms max=16.27s p(50)=249.17ms p(95)=889.01ms p(99)=1.4s
org_create_org_duration..............: min=44.94ms avg=44.94ms max=44.94ms p(50)=44.94ms p(95)=44.94ms p(99)=44.94ms
user_add_machine_key_duration........: min=38.11ms avg=66.64ms max=160.59ms p(50)=60.28ms p(95)=104.99ms p(99)=112.5ms
user_create_machine_duration.........: min=37.12ms avg=122.76ms max=1.03s p(50)=78.25ms p(95)=266.95ms p(99)=306.94ms
vus..................................: 150 min=0 max=150
vus_max..............................: 150 min=150 max=150


running (30m09.6s), 000/150 VUs, 790660 complete and 0 interrupted iterations
default ✓ [======================================] 150 VUs 30m0s