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

Add per-user token bucket in distributor #6381

Open
anna-tran opened this issue Nov 27, 2024 · 0 comments
Open

Add per-user token bucket in distributor #6381

anna-tran opened this issue Nov 27, 2024 · 0 comments

Comments

@anna-tran
Copy link
Contributor

anna-tran commented Nov 27, 2024

Is your feature request related to a problem? Please describe.
When running Cortex with tenants ingesting at different rates, a single user may greatly increase their ingestion rate and cause distributors to get OOMKilled affecting ingestion for other users. Distributor should allow per-user throttling on ingestion to prevent noisy neighbors.

Describe the solution you'd like
Add a per-user token bucket in distributors to limit ingestion/throttle single users, similar to how store-gateway has token bucket throttling.

Describe alternatives you've considered
I've considered using distributor limits like max_inflight_push_requests to prevent distributors from getting into high CPU and memory situations overall but then distributors may drop requests from smaller users in the cluster if there is a large user taking up most of the ingestion room.

ingestion_rate limit is also per-user but it limits the number of overall samples, and not the number of requests so a user with a small batch size but high TPS could still cause problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant