Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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 createdNumber of tokens renewedAverage response time (token creation)*Average response time (token renewal)
49546142486.68 ms 19.86 ms


Memory graph (using JConsole)

Image Added


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 createdNumber of tokens renewedAverage response time (token creation)*Average response time (token renewal)
49596143085.5 ms19.09 ms


Memory graph (using JConsole)

Image Added

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).