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 install
Start up Tinyauth:
docker compose up --force-recreate --remove-orphans
And run the test:
K6_WEB_DASHBOARD=true K6_WEB_DASHBOARD_EXPORT=results/results.html k6 run --out csv=results/results.csv script.ts
The 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.