-
Notifications
You must be signed in to change notification settings - Fork 313
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
Support Query Ramp-up #1195
Comments
I had a look at this proposal and the change for this is actually pretty small: rally/esrally/driver/driver.py Lines 1742 to 1771 in 3875968
We basically need to call the scheduler's |
This maybe has the potential to cause a deviation in nightly performance @danielmitterdorfer if the number of requests isn't high - especially around our 95th and 99th percentile. If anything it might bring greater stability to the results 🤞 |
I don't think that it would cause a deviation in the nightlies for most tracks because we only test with a single client and the effect only shows up with multiple clients. But for more complex benchmarks this is more likely an issue. |
With this commit we consult the scheduler prior to issuing a request instead of afterwards. If we don't do that, clients can coordinate creating a large initial load spike in Elasticsearch. With this countermeasure, it is possible that clients avoid this initial spike if a non-determistic scheduler, such as the poisson scheduler is chosen. Relates elastic#1195
With this commit we consult the scheduler prior to issuing a request instead of afterwards. If we don't do that, clients can coordinate creating a large initial load spike in Elasticsearch. With this countermeasure, it is possible that clients avoid this initial spike if a non-determistic scheduler, such as the poisson scheduler is chosen. Relates #1195
With this commit we allow users to ramp-up load gradually by specifying the task property `ramp-up-time-period`. If a non-zero value is specified, Rally will gradually add clients during that time period until the target client count as specified by `clients` is reached. This reduces the potential for initial load spikes when running with many concurrent clients. Closes elastic#1195
With this commit we allow users to ramp-up load gradually by specifying the task property `ramp-up-time-period`. If a non-zero value is specified, Rally will gradually add clients during that time period until the target client count as specified by `clients` is reached. This reduces the potential for initial load spikes when running with many concurrent clients. Closes #1195
Currently, after a warmup period, all query tasks are executed together at the same time. After the first execution, they respect their configured scheduler for subsequent executions.
In cases with a high number of tasks (e.g. executing using a parallel block) this absence of a ramp up, can produce an initial extremely high load and result in excessive utilization. This is best illustrated through an example:
Even considering the warmup period (darker in the first visual) it's apparent we suffer from a spike before the model stabilizes.
We should consider both short term improvements here e.g. maybe tasks call their scheduler before executing the first time?,
and longer-term possible improvements e.g. a ramp-up period.
@danielmitterdorfer
The text was updated successfully, but these errors were encountered: