Add musl release builds and basic load testing scripts #940
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #116
Closes #548 (this PR just adds basics, but there is always more to do, so no point in keeping the issue open)
CC #934
CC #59
This PR adds some basic load testing scripts and also adds
-musl
builds as officially supported release binary. To do the latter, scripts are adjusted and test deployments on Tue, Thurs and Saturday use musl. This might seem very weird (and it kind of is), but this means that we will constantly testing both builds to avoid some hard to spot bugs sneaking in. Additionally, Tobira now uses jemalloc as allocator due to musl performance reasons, see below.See commit messages for more information.
Musl performance considerations
Our main blocker for just offering musl builds were performance considerations. One often reads on the interwebz that musl is slow. This is only partially true and many comments are outdated (see #116 (comment)). However, we wanted to test for ourselves. That's why this PR adds basic load tests. They are not amazing, but they helped already.
Results of running locally (the ms are average response times):
GET index.html
The gist: musl with built-in allocator is still significantly slower than all other options. And all other options don't differ significantly (the differences are most certainly below noise threshold).
So yeah, that lead to the decision to use jemalloc for both kinds of builds.
CC @mtneug