Configuring concurrent packfile generation in Git smart HTTP server
0 reputation · 14 May 2021, 11:02 UTC
Administrators want to tune the number of packfile generation operations that run simultaneously when multiple clients push or fetch over smart HTTP, to keep latency predictable under load.
Currently the git-http-backend spawns receive‑pack/upload‑pack processes that each create packfiles using a single‑threaded object traversal, and there is no server‑side setting to limit or parallelize this work.
It is unclear whether introducing a configurable directive such as http.maxConcurrentPackfiles or pack.threads would provide the desired trade‑off between throughput and memory usage, or how to balance fairness among competing clients.
- What configuration name and default value should control the maximum number of concurrent packfile negotiations?
- How should the server behave when the limit is exceeded—queue incoming requests, reject them with a specific error, or delay them?
- What metrics or limits (e.g., memory per thread, CPU cores) should be documented to help administrators tune the setting safely?