advanced

A Hundred Per Cent Busy and Getting Nothing Done

Read the counters before the options. Nothing here is labelled with the answer.

The report

Our aggregation job pins every core at 100% CPU. We moved it to instances with twice the cores and it got about 8% faster, not twice. Finance is asking why we doubled the bill for 8%. Someone wants to try the highest-clocked instance type next.

The aggregation kernel — one pass over a large array of records
// records: ~40 GB, far larger than any cache
for r in records:
    bucket[r.key & MASK] += r.amount
CountersSIMULATED
CPU utilisation99–100% on every coreNo core is idle at any point during the run.
IPC0.19Fewer than one instruction retires every five cycles.
L1-dcache-load-misses4.2% of loadsMost loads are satisfied by the first-level cache.
LLC-load-misses61.3% of last-level accessesMost accesses that reach the last level do not find their data there.
memory bandwidth≈ 94% of the platform maximumThe memory system is delivering close to as much as it is rated to deliver.
stalled-cycles-backend78% of cyclesFor most cycles the back end cannot make progress.
What is the hardware doing?