I am trying load testing on IdentityServer4 (ASP.NET Core 3.1) with Apache Jmeter, and specifically on the /connect/token
authentication endpoint with grant_type: password
.
Ideally, I want to find out an acceptable rate of a few thousand (~1-5k) of concurrent authentication requests. For instance, 1k RPM.
The results in terms of performance are kind of discouraging so far, and I would like to know if anyone is experiencing similar issues, or this sounds reasonable and I should scale more.
A little bit about the configuration:
I am running on a 100 DTU Azure SQL Database with 3 instances of IdentityServer4 on the S1 plan (100 ACUs - 1.75GB ram), and one Azure Cache Redis Standard S1 (1GB, dedicated, replicated).
The cache is utilized with this package IdentityServer4.Contrib.RedisStore to provide caching for the Configuration Store, as depicted in the package github README.
With 200 threads, and a ramp-up period of 20 seconds for a total duration of 180 seconds, I get the following aggregated report:
Label |
# Samples |
Average |
Median |
90% Line |
95% Line |
99% Line |
Min |
Max |
Throughput |
/connect/token |
6962 |
10910 |
5987 |
27726 |
36787 |
47282 |
354 |
57884 |
17.1/min |
POST |
6434 |
8385 |
4840 |
21696 |
24891 |
34255 |
119 |
48265 |
15.8/min |
GET |
6018 |
7008 |
4701 |
17078 |
20097 |
27839 |
78 |
35417 |
14.8/min |
GET |
5738 |
7716 |
4477 |
19481 |
23519 |
33182 |
83 |
39269 |
14.1/min |
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…