Skip to content

Support rounding of Resource Recommendations in the VPA Recommender #7677

Closed
@Pratted

Description

@Pratted

Which component are you using?:
VPA Recommender

Is your feature request designed to solve a problem? If so describe the problem this feature should solve.:

Currently the resource recommendations provided by the VPA recommender have no rounding. This makes it particularly difficult to read memory recommendations as the value will often be precisely defined in bytes (e.g. 23490547483) and won't evenly divide into Ki/Mi/Gi. It would be desirable if the recommendations could be configured so that they are rounded to the nearest Ki/Mi/Gi, and/or to the nearest N'th integer (e.g. round millicores to the nearest factor 10/50/100).

Describe the solution you'd like.:
Ideally the user could pass in a CLI argument into the recommender for rounding millicores and bytes respectively. For example --rounding-factor-millicores=50 would round to the nearest factor of 50m. So if the recommender calculates 79m as the target CPU, the rounding would automatically round (or ceil) to 100m. The same goes for memory - there could be another flag that rounds to the nearest Ki,Mi,Gi (e.g. --rounding-unit-memory=Mi for the lack of a better term).

Describe any alternative solutions you've considered.:
An alternative solution could be just automatically rounding/ceiling memory to the nearest Mi since users will rarely if ever need to request less than 1Mi of memory for their container. Losing 1Mi of precision should be negligable.

Additional context.:

image
The bottommost pod is automatically scaled by the VPA, but its resource requests don't align with the other nice round numbers because the VPA has no rounding. This also makes it difficult and time consuming to tell if the memory is ~140Mi, ~1.4Gi, or ~14Gi at face value.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions