Skip to content

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

Open
@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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions