Project

General

Profile

Actions

Bug #21285

closed

Add MaxGatewayTunnels config, separate from MaxConcurrentRequests

Added by Tom Clegg 5 months ago. Updated 3 months ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
API
Story points:
2.0
Release relationship:
Auto

Description

Currently N running containers will start N gateway tunnels that occupy N of the MaxConcurrentRequests slots, even though they don't use the resources that MaxConcurrentRequests is meant to protect (mainly RailsAPI and PostgreSQL). Since each one stays open for the entire duration of the respective container, these tunnel connections can easily consume most/all of the MaxConcurrentRequests slots, leaving none for workbench2 or even other API calls from the containers themselves.

To address this, we should add a separate MaxGatewayTunnels config. Incoming gateway_tunnel requests should not occupy MaxConcurrentRequests slots. After reaching the MaxGatewayTunnels limit, additional gateway_tunnel requests should return 503 immediately rather than wait in a queue. Crunch-run should delay and retry when this happens.

Nginx and load balancers will be expected to allow {MaxConcurrentRequests + MaxQueuedRequests + MaxGatewayTunnels} concurrent requests. Documentation and installer should be updated accordingly.


Files

queue-names.png (28.7 KB) queue-names.png Lucas Di Pentima, 01/09/2024 10:06 PM

Subtasks 2 (0 open2 closed)

Task #21325: Review 21285-max-gw-tunnelsResolvedTom Clegg01/01/2024Actions
Task #21348: Update salt installer (21285-installer-updates)ResolvedLucas Di Pentima01/01/2024Actions

Related issues

Related to Arvados - Bug #21319: Avoid waiting/deadlock when a controller handler performs subrequests against the same controllerNewActions
Actions

Also available in: Atom PDF