Skip to content

Total CPU % on /workers tab makes little sense #8490

@crusaderky

Description

@crusaderky

From https://dask.discourse.group/t/dask-worker-using-600-of-the-cpu/2489/2

The CPU % on each individual worker scales from 0 to nthreads*100; e.g. on a worker with 8 threads it can go from 0% to 800%. This is coherent with several other CPU monitors in the wild so it makes sense.

The CPU% on the Total row, however, is calculated as

elif name == "cpu":
total_data = (
sum(ws.metrics["cpu"] for ws in self.scheduler.workers.values())
/ 100
/ len(self.scheduler.workers.values())
)

So for example on a cluster with 2 workers, 8 threads per worker, if one worker is flat out busy while the other is idle, the Total will be 400%, which makes very little sense.

name nthreads cpu
Total (2) 16 400%
tcp://... 8 800%
tcp://... 8 0%

I think we should change the CPU% on each worker to go from 0 to 100% and that on the total line to do the same (total CPU usage across the cluster / total number of threads)
In the above example, that would become

name nthreads cpu
Total (2) 16 50%
tcp://... 8 100%
tcp://... 8 0%

Metadata

Metadata

Assignees

No one assigned

    Labels

    dashboarddiagnosticsgood first issueClearly described and easy to accomplish. Good for beginners to the project.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions