From 10037a429d49511fdac92fb1568eb3968ed4cc35 Mon Sep 17 00:00:00 2001 From: Wei Liu Date: Tue, 25 Apr 2023 15:07:10 +0800 Subject: [PATCH] increse controller workers for available and cleanup (#200) Signed-off-by: Wei Liu --- pkg/spoke/spokeagent.go | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/pkg/spoke/spokeagent.go b/pkg/spoke/spokeagent.go index e5e1d71ec..df7c9b4c3 100644 --- a/pkg/spoke/spokeagent.go +++ b/pkg/spoke/spokeagent.go @@ -26,6 +26,18 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client/apiutil" ) +const ( + // If a controller queue size is too large (>500), the processing speed of the controller will drop significantly + // with one worker, increasing the work numbers can imporve the processing speed. + // We compared the two situations where the worker is set to 1 and 10, when the worker is 10, the resource + // utilization of the kubeapi-server and work agent do not increase significantly. + // + // TODO expose a flag to set the worker for each controller + appliedManifestWorkFinalizeControllerWorkers = 10 + manifestWorkFinalizeControllerWorkers = 10 + availableStatusControllerWorkers = 10 +) + // WorkloadAgentOptions defines the flags for workload agent type WorkloadAgentOptions struct { HubKubeconfigFile string @@ -192,12 +204,12 @@ func (o *WorkloadAgentOptions) RunWorkloadAgent(ctx context.Context, controllerC go workInformerFactory.Start(ctx.Done()) go spokeWorkInformerFactory.Start(ctx.Done()) go addFinalizerController.Run(ctx, 1) - go appliedManifestWorkFinalizeController.Run(ctx, 1) + go appliedManifestWorkFinalizeController.Run(ctx, appliedManifestWorkFinalizeControllerWorkers) go unmanagedAppliedManifestWorkController.Run(ctx, 1) go appliedManifestWorkController.Run(ctx, 1) go manifestWorkController.Run(ctx, 1) - go manifestWorkFinalizeController.Run(ctx, 1) - go availableStatusController.Run(ctx, 1) + go manifestWorkFinalizeController.Run(ctx, manifestWorkFinalizeControllerWorkers) + go availableStatusController.Run(ctx, availableStatusControllerWorkers) <-ctx.Done() return nil }