Prevent agent oversubscription via per-agent concurrency limits or tags #2809
Bing Han Lin opened 1 week ago

Problem Statement:

Currently, OneDev manages job concurrency at the Executor level. Since an agent can belong to multiple executors, it can be assigned jobs from different executors simultaneously. This bypasses the intended limits and causes the underlying agent to become oversubscribed.

Proposed Solutions:

Per-Agent Concurrency Limit: Allow setting a concurrency limit directly on the Agent (e.g., Max jobs = 1). Even if the agent is linked to multiple executors, it will strictly run only one job at a time globally.

Agent Tagging Mechanism:

Allow dispatching jobs based on Agent Tags rather than strict executor queues. Jobs specify required tags, and OneDev dispatches them to matching agents while respecting a strict per-agent concurrency limit.

Benefit:

Prevents hardware oversubscription when sharing agents across different job queues.

1/1
Type
Improvement
Priority
Normal
Assignee
Labels
No labels
Issue Votes (1)
Watchers (3)
Reference
OD-2809
Please wait...
Connection lost or session expired, reload to recover
Page is in error, reload to recover