This article documents two of the most common performance tuning settings for Veeam Kasten for Kubernetes.
Veeam Kasten for Kubernetes uses helm parameters, which can be tuned to adjust performance. The default settings should suit most environments. However, in complex environments, administrators may want to tune the execution control parameters to improve performance and solve various execution issues related to system resource utilization. This guide will cover the most frequent cases seen in complex environments.
Note: When tuning the system, it is important to rely on the metrics Veeam Kasten for Kubernetes exposes. For many performance-related metrics, graphs are visible in the bundled Grafana instance. Make sure that Grafana and Prometheus are enabled (they are enabled by default).
Not enough workers to pick up actions new actions due to existing K10 worker load.
services.executor.workerCount
executorReplicas
It is possible to tune services.executor.workerCount to increase the number of workers per executor instance
It is also possible to tune executorReplicas to increase the number of executor instances
Both approaches have their pros and cons. Increasing the number of workers per executor instance will not increase the resource consumption in the cluster, but at the same time may hit the limitations of the executor pod. Increasing the number of executor instances will, on the opposite, consume more resources in the cluster, but will not hit the limit inside the executor pod.
To understand the impact of the changes, it is recommended to check the in-built Grafana Dashboard. Using the Executor Worker Load graph, it is possible to observe the total number of workers (worker count multiplied by the number of executor instances) over the time and the worker load (how many workers are currently in use).
Common pitfalls
Setting services.executor.workerCount and executorReplicas values below their default is not recommended and can have a negative impact on Veeam Kasten for Kubernetes performance.
Increasing services.executor.workerCount and executorReplicas values much higher than the average worker load may increase resource consumption in the cluster without any real benefit.
Even if the Executor is picking up the task, it may hit the rate limiter limitations, and the task will be paused until it will be allowed to run by the rate limiter, this is covered in the following section.
Rate Limit suspended actions due to too many of the same concurrent operations.
limiter.genericVolumeSnapshots
limiter.genericVolumeCopies
limiter.genericVolumeRestores
limiter.csiSnapshots
limiter.providerSnapshots
It is possible to tune above mentioned settings to increase rate limit limits.
Distribute the execution of operations over time to avoid running them simultaneously.
To understand if RateLimit limits operation, it is recommended to check the in-built Veeam Kasten for Kubernetes Grafana Dashboard.
Execution Control | Rate Limiter - %operation%
This form is only for KB Feedback/Suggestions, if you need help with the software open a support case