I benchmarked Tinyauth for fun using k6.
Tinyauth broke at ~91k database records and by broke I mean the point where errors started occurring. While the latency kept going up (due to the 91k records that were created in the SQLite database), Tinyauth kept up with no errors up until the 25-30 minute mark where some errors were logged. So, we can safely conclude that the bottleneck of Tinyauth is the SQLite database (from about 1k records and up the latency starts going noticeably up). Available results from my own testing are available in the releases section.
To benchmark, you will need k6, bun and docker available in your system. If you have those, you can install the dependencies:
bun installStart up Tinyauth:
docker compose up --force-recreate --remove-orphansAnd run the test:
K6_WEB_DASHBOARD=true K6_WEB_DASHBOARD_EXPORT=results/results.html k6 run --out csv=results/results.csv script.tsThe test will take ~30 minutes and your results will be available in the results directory.
Note
Make sure to remove any existing results before running the test.
Everything is licensed under MIT, enjoy.
If you have any suggestions on improved testing, feel free to create an issue or a pull request.