Skip to main content
Metrics type: Key MetricsCategory: DBU Burn

At a glance

The DBU burned over the last 24 hours by clusters that were running but had no active job or query on them. This is pure waste: compute you paid for that did no work. The most common cause is auto-termination set too generously (or off), so an all-purpose cluster sits warm for an hour after the last analyst logs off, or a job cluster lingers after its run completes. The card is the single best signal for auto-termination tuning, and the alert fires when idle waste crosses a tenth of total spend, the point at which it stops being rounding error and starts being a line item.

Calculation

For each cluster and each billed interval in the last 24 hours, Vortex IQ decides whether the interval was idle (cluster running, no workload active) and, if so, adds that interval’s DBU to the waste total:
Three things to understand about the method:
  1. Idle is the absence of work, not low utilisation. A cluster running a small query at 5% CPU is busy, not idle, and its DBU is productive spend (right-sizing is a different conversation, handled by Avg Cluster CPU Utilisation %). This card counts only intervals with literally no workload.
  2. Start-up and shutdown overhead is excluded. Every cluster pays a few minutes of DBU to acquire instances and initialise Spark, and a moment to tear down. That is unavoidable and is not waste; the card carves it out so a workload that spins clusters up and down frequently is not unfairly penalised.
  3. The alert is a ratio, not an absolute. Ten DBU of idle on a 2,000 DBU day is noise; ten DBU on an 80 DBU day is 12.5% and worth acting on. Expressing waste as a share of total keeps the signal meaningful for both large and small workspaces.

Worked example

A platform team supports a shared analytics workspace plus a set of scheduled production jobs. Snapshot taken 17 Apr 26 at 09:00, covering the previous 24 hours. The headline reads 320 DBU wasted (22% of total), and because 22% is well over the 10% alert threshold the card is flagged. The platform owner works the list by idle share, not by absolute DBU:
  1. ml-sandbox-ap is the worst offender at 69% idle with auto-termination off. A data scientist spun it up to prototype, ran a few cells, and left it running all night. Two thirds of its spend was paid for nothing. The fix is immediate and high-ROI: turn on auto-termination at 30 minutes via a cluster policy so sandbox clusters cannot be left running indefinitely. Estimated saving: roughly 90 DBU/day, every day.
  2. analyst-shared-ap is the biggest absolute waste at 188 DBU, driven by a 120-minute timeout. Fourteen analysts share it, so it is genuinely useful during the day, but the two-hour idle window means it sits warm long after the last person leaves. Dropping the timeout to 30 minutes would recover most of the 188 DBU without affecting working hours, because nobody needs a cluster to stay warm for two hours of inactivity.
  3. The two production ETL clusters are healthy (4% and 9% idle). Their tight 10-minute auto-termination keeps idle near the unavoidable start-up overhead. They are the template: apply the same policy to the interactive clusters.
The lesson: idle waste is almost always an auto-termination setting, not a workload problem. The two production clusters prove the workspace can run lean; the interactive clusters just need the same policy.

Sibling cards to read alongside

Reconciling against the source

Where to look in Databricks:
Compute → cluster → Event log shows TERMINATING reasons (INACTIVITY is the auto-termination event) and lets you see how long a cluster idled before it shut down. System tables: join system.billing.usage (DBU per interval) against system.compute.clusters / the cluster event timeline to attribute DBU to intervals with no active run. This is the source the card reconstructs. Cluster settings: the autotermination_minutes field per cluster is the lever that drives this number.
An approximate reconciling query (idle DBU is inferred where no job/query overlaps the usage interval):
Why our number may legitimately differ from a manual check: Cross-connector reconciliation:

Known limitations / FAQs

What is the difference between “idle” and “under-utilised”? Idle means no workload at all: the cluster is running but nothing is executing on it. Under-utilised means a workload is running but the cluster is bigger than it needs (low CPU). This card covers idle; right-sizing is the job of Avg Cluster CPU Utilisation %. The fixes differ: idle is an auto-termination setting, under-utilisation is a node-count or instance-type change. Why is cluster start-up DBU not counted as waste? Because it is unavoidable. Every cluster pays a few minutes to acquire instances and initialise Spark before it can do any work, and a moment to tear down. Counting that as waste would penalise the very behaviour we want (short-lived job clusters that spin up, run, and terminate). The card carves out start-up and shutdown so the number reflects genuinely recoverable waste. Our idle share is high but our clusters are job clusters that terminate after each run. How? Two common causes: a long task timeout that keeps the cluster alive while a final task hangs, and a workflow that holds the cluster between sequential tasks with gaps between them. Check the cluster event log for the gap; if tasks have idle stretches between them, consider splitting the workflow or using a shared job cluster with tighter scheduling. We turned auto-termination off deliberately so analysts never wait for a cold start. Is the waste justified? That is a real trade-off, but quantify it. The idle DBU is the price of zero cold-starts. Compare it against how often a cold start actually blocks someone (usually a 3 to 5 minute wait, a handful of times a day). For most teams a 30-minute auto-termination keeps the cluster warm through normal working gaps while still reclaiming overnight and lunchtime idle. The card gives you the number to make that decision with eyes open. Serverless SQL never shows up here. Is that a bug? No. Serverless compute auto-scales to zero when there is no query, so by design it cannot sit idle and burn DBU. That is one of its advantages. This card is specifically about classic clusters that hold instances while idle. If you are moving interactive workloads to serverless, expect this number to fall. The idle figure jumps around hour to hour. Which reading do I trust? Read the 24-hour total and the share, not a single hour. Idle waste is naturally lumpy: it concentrates overnight, at weekends, and around lunch. The rolling 24h smooths that into an actionable number. For tuning decisions, look at the share trend over a week rather than reacting to one hour. If I fix auto-termination, how quickly will I see the saving? Immediately on the next idle window. The change takes effect the moment a cluster next sits idle past the new timeout. You should see the idle share fall on the following day’s reading, and the saving flow straight through to DBU Burned (24h).

Tracked live in Vortex IQ Nerve Centre

Idle Cluster DBU Wasted (24h) is one of hundreds of KPI pulses Vortex IQ tracks across Databricks and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.