-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Rook should be cgroup aware #13815
Labels
Comments
uhthomas
added a commit
to uhthomas/rook
that referenced
this issue
Feb 26, 2024
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: rook#13815 Signed-off-by: Thomas Way <thomas@6f.io>
6 tasks
uhthomas
added a commit
to uhthomas/rook
that referenced
this issue
Feb 26, 2024
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: rook#13815 Signed-off-by: Thomas Way <thomas@6f.io>
uhthomas
added a commit
to uhthomas/rook
that referenced
this issue
Feb 26, 2024
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: rook#13815 Signed-off-by: Thomas Way <thomas@6f.io>
uhthomas
added a commit
to uhthomas/rook
that referenced
this issue
Feb 26, 2024
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: rook#13815 Signed-off-by: Thomas Way <thomas@6f.io>
uhthomas
added a commit
to uhthomas/rook
that referenced
this issue
Feb 26, 2024
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: rook#13815 Signed-off-by: Thomas Way <thomas@6f.io>
mergify bot
pushed a commit
that referenced
this issue
Feb 26, 2024
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: #13815 Signed-off-by: Thomas Way <thomas@6f.io> (cherry picked from commit 97e3e69) # Conflicts: # go.sum
travisn
pushed a commit
that referenced
this issue
Feb 26, 2024
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: #13815 Signed-off-by: Thomas Way <thomas@6f.io> (cherry picked from commit 97e3e69)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Is this a bug report or feature request?
Deviation from expected behavior:
Go is not cgroup aware, which means rook will be throttled in containerised environment with Linux (Kubernetes).
The below image shows two halfs, the first with a 13600k (20 threads) and the second with an EPYC 7763 (128 threads). The first half throttles at about 5ms, and the second at 40ms.
Expected behavior:
Rook should not throttle when it has sufficient CPU. automaxprocs can be used to do this automatically.
How to reproduce it (minimal and precise):
Set CPU limits for the operator and observe the container will throttle.
File(s) to submit:
cluster.yaml
, if necessaryLogs to submit:
Operator's logs, if necessary
Crashing pod(s) logs, if necessary
To get logs, use
kubectl -n <namespace> logs <pod name>
When pasting logs, always surround them with backticks or use the
insert code
button from the Github UI.Read GitHub documentation if you need help.
Cluster Status to submit:
Output of kubectl commands, if necessary
To get the health of the cluster, use
kubectl rook-ceph health
To get the status of the cluster, use
kubectl rook-ceph ceph status
For more details, see the Rook kubectl Plugin
Environment:
uname -a
):rook version
inside of a Rook Pod):ceph -v
):kubectl version
):ceph health
in the Rook Ceph toolbox):The text was updated successfully, but these errors were encountered: