High latency during workflow submission (e.g. validation of longer Workflows with many templateRef
s)
#13403
Closed
4 tasks done
Labels
area/api
Argo Server API
area/cli
The `argo` CLI
area/sdks
area/workflow-templates
P3
Low priority
solution/duplicate
This issue or PR is a duplicate of an existing one
type/bug
Pre-requisites
:latest
image tag (i.e.quay.io/argoproj/workflow-controller:latest
) and can confirm the issue still exists on:latest
. If not, I have explained why, in detail, in my description below.What happened? What did you expect to happen?
Workflow submission latency is unreasonably high - it takes much longer than call to create Workflow CR via kube-apiserver normally takes.
It affects submission via:
There is also a linear correlation between number of workflow template references and overall submission time.
Workflow submissions also do not parallelize very well, batch submissions take considerably longer than single instance of a workflow
The submission time does not seem to have upper boundary, we've seen batch submissions taking hundreds of seconds for more sophisticated workflows ~80 steps, each reference some template.
The main culprits are:
As as result templates are resolved from kube-apiserver, deserialized and copied in memory every time validation tries to validate a template reference, which is not the only, but major contributor to overall execution time.
There is also a considerable load on kube-apiserver - we've seen as much as 150 calls to GET template for every POST that creates workflow resource.
I discussed this issue at #argo-workflows Slack, hopefully this problem gets more traction here
Version(s)
v3.5.8
Paste a minimal workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.
YAML files
Logs from the workflow controller
Logs from in your workflow's wait container
Argo Server nor argo-kube-client does not really produce meaningful logs that are useful to troubleshoot this issue
The text was updated successfully, but these errors were encountered: