-
Notifications
You must be signed in to change notification settings - Fork 26
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
Load scheduling by actual request concurrency and response times #2333
Comments
@tanveergill PTAL |
@akevdmeer Please join our slack community. We can discuss this or any other issues you faced or need help with. CC: @jaidesai-fn |
@akevdmeer - Using However, in most cases (including hard concurrency limits scenarios), Aperture's current mechanism works, provided we can reliably detect overload based on some health metric(s). At a high level, there are 2 parts of adaptive load scheduling:
We will be happy to learn more about your scenario and be more prescriptive with our advice. We can certainly build exact concurrency bookkeeping if that is needed to solve your scenario. But first, we are curious how the current request rate-based system would behave in this low concurrency, high latency variance scenario by using metrics other than latency to detect overloads. PS: @tanveergill suggested that in case no other signal can alert us on overloads, then perhaps we can use the latency percentiles to get some stable readings. The Aperture FluxMeters collect latency metrics as Prometheus summaries. |
We have a business-critical service that is characterized by a low request concurrency and a high response time variance of let's say 100ms to 10s (when not overloaded). Estimating the response time based on the request is infeasible. We need to apply (adaptive) load scheduling to arbitrate between contending workloads but don't see how this can be done effectively with Aperture at the moment.
Is it possible to do load scheduling based on the actual request concurrency, without needing to determine the request cost in tokens upfront? The
flow.End()
calls would seem to make it possible to track flows that are active.The text was updated successfully, but these errors were encountered: