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
Improve CPU estimation in the Cruise Control capacity configuration #8576
Comments
Yes, having cores == 1 is not great or correct default value. We have discussed in the past we can only be guaranteed accurate balances based on CPU when the following: (A) To summarize the reasoning from the past concerning (A) (1) When Cruise Control can take CPU capacity config in two forms: Originally, we used (A) exclusively, but I updated the code [2] to use (B) for better UX. However, when I did this update I accidentally removed the usage of (A) which was intended to be used in circumstances like this. (e.g. instead of setting CPU limit to 1 core, it is supposed to set the CPU limit to 100 percent of available CPU resources) Like setting the capacity limit to requests or limits alone, the usage of (A) does not guarantee accurate rebalances, but I agree that it would be better UX than setting the cores == 1 by default. Short term recommendation: Long term recommendation: [1] https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits |
Triaged on 15/06/2023: Kyle is going to work on implementing the short term recommendation described above. |
Plan is to move forward with Jakub's recommendation: For the cases where |
The Cruise Control Capacity configuration generator seems to completely ignore the resource request today. That seems to result in weird situations. For example:
When the request is set to 5 CPU and the limit is set to 10 CPU, Strimzi decides to ignore both and sets the CPU capacity to
1.0
which seems to be clearly wrong. While I think preferring the limit might be questionable and subjective, setting the CPU to1.0
seems clearly wrong since it is well below both the limit and request.When the request is set to 5 CPU and the limit is not set, Strimzi decides to ignore the request and sets the CPU capacity to
1.0
which seems to be clearly wrong. While the current code seems to prefer a limit instead of a request and in this case, the limit is unknown ... setting1.0
as the capacity seems clearly wrong since the request of 5 CPUs is clearly much higher and these CPUs will be always available.We should update the logic to either take the request configuration properly into account or at least not misconfigure it by setting the CPU capacity to
1.0
when we cannot decide.The text was updated successfully, but these errors were encountered: