Add api queue limit options to workhorse
Summary
Workhorse will queue with no limit by default, for production configuration we set the following options:
-apiLimit 5 -apiQueueDuration 60s -apiQueueLimit 200 -apiCiLongPollingDuration 50s
Issue where this was initially enabled in production https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/608
This is especially important when pods are brought online and start receiving requests immediately, in this case it is possible for so many requests to queue that it can cause additional latency. (Summarize the bug encountered, concisely as possible)
Also consider that apiCiLongPollingDuration
MUST be shorter than the value of the terminationGracePeriodSeconds
of the deployment. Otherwise clients will recieve an HTTP502 as the Pods are cycled and the long poll response is never sent back to the client. The behavior should be re-evaluated pending the outcome of: gitlab-org/gitlab#325114 (closed)