Configure ThreadsPerController, QPS and Burst
This document will show us how to configure tekton-pipeline-controller's performance. In general, there are mainly have three parameters will impact the performance of tekton controller, they are ThreadsPerController
, QPS
and Burst
.
ThreadsPerController
: Threads (goroutines) to create per controller. It's the number of threads to use when processing the controller's work queue.
-
QPS
: Queries per Second. Maximum QPS to the master from this client. -
Burst
: Maximum burst for throttle.
Default, the value of ThreadsPerController, QPS and Burst is 2, 5.0 and 10 accordingly.
Sometimes, above default values can't meet performance requirements, then you need to overwrite these values. You can modify them in the tekton controller deployment. You can specify these customized values in the tekton-pipelines-controller
container via threads-per-controller
, kube-api-qps
and kube-api-burst
flags accordingly. For example:
spec:
serviceAccountName: tekton-pipelines-controller
containers:
- name: tekton-pipelines-controller
image: ko://github.com/tektoncd/pipeline/cmd/controller
args: [
"-kube-api-qps", "50",
"-kube-api-burst", "50",
"-threads-per-controller", "32",
# other flags defined here...
]
Now, the ThreadsPerController, QPS and Burst have been changed to be 32
, 50
and 50
.
Note:
Although in above example, you set QPS and Burst to be 50
and 50
. However, the actual values of them are multiplied by 2
, so the actual QPS and Burst is 100
and 100
.