-
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
Initialize load testing #3554
Initialize load testing #3554
Conversation
This PR initializes load testing. It starts multiple taskruns and sees if they could complete in defined time. It also provides a script to run load testing. Users can use flag `--taskrun-num` and `--timeout` to specify the amount of taskruns they want to run and the time in which taskruns should complete.
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
}, | ||
}, | ||
} | ||
if _, err := c.TaskRunClient.Create(ctx, taskrun, metav1.CreateOptions{}); err != nil { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any reason for creating the TaskRun
synchronously ?
Hey @yaoxiaoqi ! You might be interested in the PR I opened around getting some performance measurements up and running: tektoncd/community#277 If you are interested in collaborating on that TEP with me that'd be very cool! In the meantime I'm hesitant to commit scripts to this repo, especially without some kind of automation to ensure they stay up and running. Basically anything we commit here we should make sure to maintain, so I'm not sure if we want to add this just yet? |
I think I should probably explain my thought process a bit more! Basically I think if you (or anyone!) want to run some loadtests and maybe share a report on your findings with the community that is 👍 👍 👍 However I would only commit the code for that to this repo if we want to keep using it over time; if it's a one off for some experimentation it could live in a private repo maybe, or even in experimental. If we want to start adding some loadtests that are run and maintained by the community, I think we should start with a TEP and gather some feedback before we pursue something; tektoncd/community#277 is specifically about trying to catch performance regressions such as the one we had recently before they happen by starting to define some SLIs and SLOs. |
Hi @bobcatfish ! I'm glad to collaborate on the TEP with you. And I think it's actually kind of unconsidered to add this script now. It would be better if I implemented a maintainable load testing / performance testing after the tep had been discussed thoroughly. Anyway, this pr meant to be a load testing sample and could be hold if this is not the time. Thanks for your suggestions! |
sounds good @yaoxiaoqi !! in that case maybe we can close this PR for now? I'll try to get a doc started that we can collaborate in ASAP :D Also very interested to see the results of the tests you've run so far :D |
Sounds great @bobcatfish ! I will close this PR. Please send me the doc when you're ready. Using this script I found that tekton pipelines could run 500 simple taskruns in ~800 seconds on a 12-cpu 45G-memory gke cluster. I will try some cpu bound or i/o bound taskruns and pipelineruns in the future to see the pipelines performance in different situations. |
@yaoxiaoqi: The following test failed, say
Full PR test history. Your PR dashboard. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
Changes
This PR initializes load testing. It starts multiple taskruns and sees if they could
complete in defined time.
It also provides a script to run load testing. Users can use flag
--taskrun-num
and
--timeout
to specify the amount of taskruns they want to run and the timein which taskruns should complete.
To run the load testing:
./test/load-test.sh --taskrun-num 50 --timeout 10m
/kind feature
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:
See the contribution guide for more details.
Double check this list of stuff that's easy to miss:
cmd
dir, please updatethe release Task to build and release this image.
Reviewer Notes
If API changes are included, additive changes must be approved by at least two OWNERS and backwards incompatible changes must be approved by more than 50% of the OWNERS, and they must first be added in a backwards compatible way.
Release Notes