-
Notifications
You must be signed in to change notification settings - Fork 140
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
VictoriaMetrics operator should be cgroup aware #875
Comments
Go is not cgroup aware and by default will set GOMAXPROCS to the number of available threads, regardless of whether it is within the allocated quota. This behaviour causes high amount of CPU throttling and degraded application performance. Fixes: VictoriaMetrics#875
Hello @uhthomas , thanks for the issue! |
Hello, thanks for reporting the issue. Currently, operator doesn't use GOMAXPROCS for paralleling CPU bound tasks. Actually, it doesn't perform any heavy CPU bound operations. And unlikely it will change in the future. Meanwhile the issue itself looks to me more like golang runtime problem, neither something that each application should fix on it's own. |
Go is not cgroup aware. This means the VictoriaMetrics operator will be throttled hard in containerised environments with CPU limits.
The below screenshot shows the container with a CPU limit in Kubernetes. The first half of the time series is on a 13600k, with 20 threads. The second half is when the machine changed to use an EPYC 7763 with 128 threads.
automaxprocs can use cgroups automatically.
The text was updated successfully, but these errors were encountered: