...
3.) 1-hour test execution with high load (tokens were generated between 1-2 seconds on 15 threads)- without token eviction:
Code Block |
---|
perf.test.usecase.knoxtoken.numOfThreads=15 perf.test.usecase.knoxtoken.testDurationInSecs=3600 perf.test.usecase.knoxtoken.requestDelayLowerBoundInSecs=1 perf.test.usecase.knoxtoken.requestDelayUpperBoundInSecs=2 |
Number of tokens created | Number of tokens renewed | Average response time (token creation)* | Average response time (token renewal) |
---|---|---|---|
49546 | 1424 | 86.68 ms | 19.86 ms |
Memory graph (using JConsole)
JSON/YAML result files: testResults.zip
4.) 1-hour test execution with high load (tokens were generated between 1-2 seconds on 15 threads) - with token eviction:
In this test I kept the previous config and, additionallyAdditionally, I lowered the Token TTL to 10 minutes from 10 hours (by default, the token eviction grace period is set to 0). That triggered automated token eviction every 10 minutes.5 minutes.
Number of tokens created | Number of tokens renewed | Average response time (token creation)* | Average response time (token renewal) |
---|---|---|---|
49596 | 1430 | 85.5 ms | 19.09 ms |
Memory graph (using JConsole)
Token eviction took place as expected:
Code Block |
---|
2022-06-17 14:33:11,667 INFO token.state (JDBCTokenStateService.java:evictExpiredTokens(216)) - Removing 3,438 expired token(s) from the database
2022-06-17 14:38:11,648 INFO token.state (JDBCTokenStateService.java:evictExpiredTokens(216)) - Removing 4,007 expired token(s) from the database
2022-06-17 14:43:11,629 INFO token.state (JDBCTokenStateService.java:evictExpiredTokens(216)) - Removing 4,018 expired token(s) from the database
2022-06-17 14:48:11,640 INFO token.state (JDBCTokenStateService.java:evictExpiredTokens(216)) - Removing 4,011 expired token(s) from the database
2022-06-17 14:53:11,644 INFO token.state (JDBCTokenStateService.java:evictExpiredTokens(216)) - Removing 4,031 expired token(s) from the database
2022-06-17 14:58:11,629 INFO token.state (JDBCTokenStateService.java:evictExpiredTokens(216)) - Removing 3,990 expired token(s) from the database
2022-06-17 15:03:11,638 INFO token.state (JDBCTokenStateService.java:evictExpiredTokens(216)) - Removing 4,005 expired token(s) from the database
2022-06-17 15:08:11,646 INFO token.state (JDBCTokenStateService.java:evictExpiredTokens(216)) - Removing 4,011 expired token(s) from the database
2022-06-17 15:13:11,671 INFO token.state (JDBCTokenStateService.java:evictExpiredTokens(216)) - Removing 4,029 expired token(s) from the database
2022-06-17 15:18:11,659 INFO token.state (JDBCTokenStateService.java:evictExpiredTokens(216)) - Removing 3,997 expired token(s) from the database
2022-06-17 15:23:11,643 INFO token.state (JDBCTokenStateService.java:evictExpiredTokens(216)) - Removing 4,024 expired token(s) from the database |
*: There is a short warmup period at the beginning of each test round (see test results where token creation time takes ~2 seconds a couple of times). We could even see better results if those values were not recorded at the end (the longer the test period the better the average result is).