-
Notifications
You must be signed in to change notification settings - Fork 210
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
Improve worker load threshold detection #6010
Conversation
7d9d9ea
to
519058c
Compare
This comment was marked as resolved.
This comment was marked as resolved.
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #6010 +/- ##
=======================================
Coverage 98.96% 98.96%
=======================================
Files 396 396
Lines 39364 39381 +17
=======================================
+ Hits 38958 38975 +17
Misses 406 406 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, I only have two small nitpicks.
519058c
to
30896d5
Compare
done |
With 03b301d we have a worker load limit which helps but there can still be cases like happened on a PowerNV machine with the load going way above the configured load limit. The reason was that when the worker was idle within a short time frame of roughly one minute multiple jobs were assigned to individual worker instances on the machine. As we only looked at load15 which was still low at that time all jobs were picked up by the machine leading to overload only about one minute later. Further reducing the load limit would not realistically prevent this situation but only delay until load15 decays sufficiently enough so that new jobs will be picked up again. Instead this commit changes the evaluation to look at all three system load values, load1, load5 and load15, but considering the load evolution over time to react quickly enough if the load rises but still accept a falling edge to allow to pick up jobs again when the load decays. Related progress issue: https://progress.opensuse.org/issues/168244
30896d5
to
f8b5424
Compare
With 03b301d we have a worker load limit which helps but there can still
be cases like happened on a PowerNV machine with the load going way above
the configured load limit. The reason was that when the worker was idle
within a short time frame of roughly one minute multiple jobs were
assigned to individual worker instances on the machine. As we only
looked at load15 which was still low at that time all jobs were picked
up by the machine leading to overload only about one minute later.
Further reducing the load limit would not realistically prevent this
situation but only delay until load15 decays sufficiently enough so that
new jobs will be picked up again. Instead this commit changes the
evaluation to look at all three system load values, load1, load5 and
load15, but considering the load evolution over time to react quickly
enough if the load rises but still accept a falling edge to allow to
pick up jobs again when the load decays.
Related progress issue: https://progress.opensuse.org/issues/168244