Compare Puma/Unicorn performance with Rugged patches enabled.
This is a sub-issue of #35371 (closed).
Background
For big customers who heavily use rugged patches today, they may have performance issue when switch to Puma combine with Rugged patches.
Since the time rugged patches applied for customers, we have bunch of improvements in Gitaly already. But customer had not tried/tested new Gitaly version. So we are not sure whether it still be a performance concern if disable Rugged for them.
This is to backup the worst case. At the time Puma roll out, if the customer still need rugged patches for performance reason, we want to ensure customer have an option to safely upgrade to Puma without major performance downgrade.
Our assumption: for requests heavily use Rugged calls, we think Puma threads=1 would have same performance as Unicorn. If this is true, customer can config Puma thread number to 1, and get same performance as Unicorn.
This issue is to validate this assumption.
How to test
Concurrent requests to saturate server capacity, for Unicorn/PumaT1/PumaT2/PumaT3/PumaT4.
- request endpoints must have heavy rugged calls(like get large blob from repository)
- concurrent requests must saturate server capacity, means, current requests >= number of CPU cores.
Expected result
PumaT1 has similar performance as Unicorn.
Test result available at #119321 (comment 266721921)
Questions
- Test server:
- Omnibus container on Macbook? --- Chosen
- test environment(10k)?
- Test endpoint: to identify --- use endpoints in #119321 (comment 266721921)
- Test tool:
- K6 in Gitlab performance toolkit: https://gitlab.com/gitlab-org/quality/performance/tree/fc22c0e6c9ca67c8644c1f9ea13e1e0fdd173cb8#gitlab-performance-toolkit
- ab --- Chosen