Support Gitaly Rate Limit (Concurrency) Configuration
See https://gitlab.com/gitlab-org/gitaly/issues/429
Gitaly now allows per-repo-per-RPC concurrency limits which prevent a single repository from calling git gc
more than once concurrently, for example.
The configuration looks like:
[[concurrency]]
rpc = "/gitaly.RepositoryService/GarbageCollect"
max_per_repo = 1
[[concurrency]]
rpc = "/gitaly.RepositoryService/RepackIncremental"
max_per_repo = 1
[[concurrency]]
rpc = "/gitaly.RepositoryService/RepackFull"
max_per_repo = 1
[[concurrency]]
rpc = "/gitaly.RepositoryService/GetArchive"
max_per_repo = 20
[[concurrency]]
rpc = "/gitaly.SmartHTTPService/PostUploadPack"
max_per_repo = 40
[[concurrency]]
rpc = "/gitaly.SmartHTTPService/PostReceivePack"
max_per_repo = 20
[[concurrency]]
rpc = "/gitaly.SSHService/SSHUploadPack"
max_per_repo = 40
[[concurrency]]
rpc = "/gitaly.SSHService/SSHReceivePack"
max_per_repo = 20
We would like to configure this via Omnibus. The proposed configuration would be:
gitaly['concurrency'] = [
{
'rpc' => "/gitaly.SmartHTTPService/PostReceivePack",
'max_per_repo' => 20
}, {
'rpc' => "/gitaly.SSHService/SSHUploadPack",
'max_per_repo' => 20
}
]
Edited by Andrew Newdigate