-
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
RFC: Basic performance test #4378
Conversation
@guillaumerose: Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it. 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. |
[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 |
@guillaumerose Thanks for picking this up and especially for your interest in formalizing and automating the tests. I've definitely done similar load tests in the past without observing the slowness you're seeing, so we must have had a regression at some point. Running these tests regularly would help prevent those in the future. 👍 |
/kind feature |
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.
I agree with @imjasonh, I think it would be nice to have those running alongside with the nightly build for example. We can start with this very simple test and grow it iteratively.
I have a couple of requests:
|
Thanks all! @bobcatfish I will add my thoughts in a PR in this TEP, then we can come back to this 👍 |
@bobcatfish this is a bit chicken-and-egg problem here. We need something to execute on to setup the nightly runs, hence having this in would be first step, 2nd step would be to setup a nightly in dogfooding, and the steps after would be to refine and enhance. |
rateLimitedCfg.RateLimiter = flowcontrol.NewTokenBucketRateLimiter(qps, burst) | ||
rateLimitedKubeClient, rateLimitedCS := clientSets(t, rateLimitedCfg) | ||
|
||
wg := sync.WaitGroup{} |
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.
I know there's some ongoing discussion about what exactly to benchmark, but I recently discovered testing.B
and I'm wondering if it could be helpful here? It looks like some of timing + waitgroup logic could be replaced with b.runParallel
.
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.
Ah I though @guillaumerose used testing.B
.., but turns out not. Yes, maybe using it might make sense indeed.
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. |
Rotten issues close after 30d of inactivity. /close Send feedback to tektoncd/plumbing. |
@tekton-robot: Closed this PR. In response to this:
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 am trying to write performance test for Tekton. I am looking at finding good metrics to follow and good test scenario.
Here is one: I create N taskRuns per second and observe how long it takes for the controller to create the pod related to each taskRun.
At the beginning, I thought it will be done in few seconds but even at a small rate (2-3 taskRuns per second), after 3min, the controller takes 30 seconds between taskRun creation and pod creation. It seems to be better if I tune QPS and burst of the k8s client of the controller.
I hope I can turn this into a real test that can run in the CI. Let me know what you think, what I should improve!