Versions Compared

Key

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

...

2.) 2-hour test execution with a medium-size load (tokens were generated between 3-6 seconds):

Number of tokens createdNumber of tokens renewedAverage response time (token creation)*Average response time (token renewal)
1774084552.47 ms12.19 ms


Memory graph (using JConsole)

...

JSON/YAML result files: testResult.zip


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