Added Scheduler and Worker memory tracking#2847
Added Scheduler and Worker memory tracking#2847TomAugspurger wants to merge 5 commits intodask:masterfrom
Conversation
|
Thinking about this from a diagnostics perspective, I wonder if the thing to track might instead be the expected size in bytes of each key prefix rather than the delta. My guess is that this will be more generally useful for a variety of applications. We might then derive the delta information from this information on the fly for the specific use case of memory-aware scheduling. Sometimes when thinking about scheduler state I find myself also being motivated by what would look good in a dashboard. This is a rather shallow objective on its own, but the information for good automated task scheduling can look surprisingly like the information for good human consumption. Thoughts @TomAugspurger ? |
|
I think tracking prefix-level memory usage, and then deriving the delta, was my initial path. It's been a little while, but IIRC that ran a problem with knowing whether completing a task actually freed the memory of a tasks dependencies. it's not clear (to me) how we would know that completing |
|
I think I mentioned this earlier, but have since forgotten what the response was, but for any particular task we could probably include a fractional hit for every dependency based the number of its dependents. So in the case above |
|
I'm not actively working on this at the moment. Closing to clear the backlog. |
Part 1 of #2602.
This adds
modeled after
task_duration/durations(with the primary difference that theWorker.net_nbytesis at the prefix, rather than task level).The basic idea is to learn a per-prefix measure of the net memory usage of running a task. We already know
Now we just do a bit of arithmetic when we complete a task and when we release dependencies.
This information is passed to works to aid with scheduling, but that part will be done in a separate PR.