Limiting parallelism¶
You can restrict the number of parallel workflow executions.
Controller-level¶
You can limit the total number of parallel workflow executions in the workflow controller ConfigMap:
data:
parallelism: "10"
You can also limit the total number of parallel workflow executions in a single namespace:
data:
namespaceParallelism: "4"
When namespace parallelism is enabled, it is plausible for a workflow with a lower priority to be run first if a namespace is at its namespace parallelism limits.
Note
Workflows that are executing but restricted from running more nodes due to other mechanisms will still count toward parallelism limits.
Priority¶
You can set a priority
on workflows:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
generateName: priority-
spec:
priority: 3
# ...
Workflows that have not started due to Controller-level parallelism will be queued: workflows with higher priority numbers will start before lower priority ones.
The default is priority: 0
.
Synchronization¶
You can also use mutexes, semaphores, and parallelism to control the parallel execution of workflows and templates.