-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Optimize Tekton Pipeline #5452
Comments
This seems similar to tektoncd/community#602 |
/assign |
From the pipeline WG - it would be good to break this down in smaller items we can target to milestones. |
It seems like this issue is largely scoped to benchmarking. I did a bit recently to test out a feature I was working on and want to share my progress here. I wrote some scripts that generate N copies of a PipelineRun, wait until all N are complete, and write timing info to a file. If the script is cancelled, it will cancel any currently running PipelineRuns and report on all of them regardless of whether they have completed. This could be a good starting point for anyone who wants to implement benchmarking. Code changes are on the branch https://github.com/lbernick/pipeline/tree/perftest. Some things that still need to be figured out:
Some other tools we can look into: |
Issues go stale after 90d of inactivity. /lifecycle stale Send feedback to tektoncd/plumbing. |
Stale issues rot after 30d of inactivity. /lifecycle rotten Send feedback to tektoncd/plumbing. |
/lifecycle frozen |
@pritidesai - we marked this as "nice to have" for v1 - please let us know if you disagree. |
Tekton Pipeline has matured since the inception but at the same time, the project is under active development. Many organizations have adopted Tekton Pipelines for various use cases. For the project at this level of maturity and use,
reliability
must be maintained. The users should be able to upgrade their pipelines to the latest release without running into any performance degradation.We have noticed a couple of issues reported with a similar concern around efficiency - webhook timing out or the cluster is not responsive for a pipeline with large number of tasks.
Today, we have no records of how much time a certain pipeline takes to execute with the latest release compared to N number of the past releases.
We have had a couple of PRs in the past trying to introduce some form of performance test:
Let's start writing performance tests to report the execution time. The performance tests can be scheduled to execute every night. We collect the execution time in logs for now until we come up with a better way of storing these numbers.
As a performance measure, we could also avoid validating task/pipeline
spec
in every iteration - #4562.taskRef
andtaskSpec
along with manywhenexpressions
).The text was updated successfully, but these errors were encountered: