Skip to content
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

Consider augmenting the global memory limiter with support for cgroups memory pressure events. #312

Open
tobz opened this issue Nov 8, 2024 · 0 comments
Labels
area/memory Memory bounds and memory management. effort/intermediate Involves changes that can be worked on by non-experts but might require guidance. type/enhancement An enhancement in functionality or support. type/meta Things that can't be neatly categorized and/or aren't yet fully-formed ideas/thoughts.

Comments

@tobz
Copy link
Member

tobz commented Nov 8, 2024

Context

Currently, the global memory limiter uses a simple heuristic of observing the process RSS and increasing the backoff duration based on how close the process RSS is to the configured memory limit. While this follows the spirit of a configured memory limit, it doesn't allow for the possibly of being attuned to the actual state of the system itself. Additionally, it is inherently lossy, as we apply a number of various factors to attempt to figure out when to begin applying backpressure before the limit is reached.

It would be interesting to explore the use of "memory pressure events" to more accurately respond to the operating system's view of current memory pressure, which will inherently take into consideration any cgroups memory limits, and the general memory pressure on the host overall.

The idea is that this would potentially allow us to be more precise without needing to inherently have a fixed memory limit, such that ADP could expand and contracts its memory usage based on the overall state of the host, since we would rely on the OS to provide us accurate information/updates about when we need to care about our memory usage.

@tobz tobz added area/memory Memory bounds and memory management. effort/intermediate Involves changes that can be worked on by non-experts but might require guidance. type/enhancement An enhancement in functionality or support. type/meta Things that can't be neatly categorized and/or aren't yet fully-formed ideas/thoughts. labels Nov 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/memory Memory bounds and memory management. effort/intermediate Involves changes that can be worked on by non-experts but might require guidance. type/enhancement An enhancement in functionality or support. type/meta Things that can't be neatly categorized and/or aren't yet fully-formed ideas/thoughts.
Projects
None yet
Development

No branches or pull requests

1 participant