Cockroach Labs Estate economics What idle nodes, provisioned bytes and peak-sized bills cost, worked out from your estate.

Estate summary

  1. Nodes 122 down from 300
  2. Avg CPU utilization 36.9% up from 15.0%
  3. Storage provisioned 6.0 TB 1.0 TB of data
  4. Est. monthly saving 59% $1,000/m becomes $410/m

Step 1 of 8 - Virtualization

You're running an estate, not a cluster

Every cluster below was sized for its own peak, so every one of them idles.

Deployment model
1 private host cluster, 100 virtual clustersPrivate Host cluster122 nodes on average, 135 at peakvc-01own connection stringvc-02own connection stringvc-03own connection stringvc-04own connection stringvc-05own connection stringvc-06own connection stringvc-07own connection stringvc-08own connection stringvc-09own connection stringvc-10own connection stringvc-11own connection stringvc-12own connection stringvc-13own connection stringvc-14own connection stringvc-15own connection stringvc-16own connection stringvc-17own connection stringvc-18own connection stringvc-19own connection stringvc-20own connection stringvc-21own connection stringvc-22own connection stringvc-23own connection stringvc-24own connection stringvc-25own connection stringvc-26own connection stringvc-27own connection stringvc-28own connection stringvc-29own connection stringvc-30own connection stringvc-31own connection stringvc-32own connection stringvc-33own connection stringvc-34own connection stringvc-35own connection stringvc-36own connection stringvc-37own connection stringvc-38own connection stringvc-39own connection stringvc-40own connection stringvc-41own connection stringvc-42own connection stringvc-43own connection stringvc-44own connection stringvc-45own connection stringvc-46own connection stringvc-47own connection stringvc-48own connection stringvc-49own connection stringvc-50own connection stringvc-51own connection stringvc-52own connection stringvc-53own connection stringvc-54own connection stringvc-55own connection stringvc-56own connection stringvc-57own connection stringvc-58own connection stringvc-59own connection stringvc-60own connection stringvc-61own connection stringvc-62own connection stringvc-63own connection stringvc-64own connection stringvc-65own connection stringvc-66own connection stringvc-67own connection stringvc-68own connection stringvc-69own connection stringvc-70own connection stringvc-71own connection stringvc-72own connection stringvc-73own connection stringvc-74own connection stringvc-75own connection stringvc-76own connection stringvc-77own connection stringvc-78own connection stringvc-79own connection stringvc-80own connection stringvc-81own connection stringvc-82own connection stringvc-83own connection stringvc-84own connection stringvc-85own connection stringvc-86own connection stringvc-87own connection stringvc-88own connection stringvc-89own connection stringvc-90own connection stringvc-91own connection stringvc-92own connection stringvc-93own connection stringvc-94own connection stringvc-95own connection stringvc-96own connection stringvc-97own connection stringvc-98own connection stringvc-99own connection stringvc-100own connection stringShared, auto-scaled node pool122 of 135 nodes at peakEstate after consolidationOne private host cluster carrying 100 virtual clusters on 122 nodes on average and 135 at peak, averaging 36.9% CPU utilization.
37%Average CPUAverage CPU CPU utilization36.9% of provisioned CPU is in use.

122 nodes running 360 vCPU of actual work.

Pooled and sized once for the peak, 135 nodes would average 33.3%. Auto-scaling brings it to 122 nodes at 36.9%, moving between 33.5% and 38.4% across the day against a 38% setpoint.

The arithmetic, in full
StepWorkingResult
Provisioned today100 clusters of 3 nodes each, 300 in total x 8 vCPU2400 vCPU
Mean demand2400 vCPU x 15.0% estate average utilization (per-cluster 0.5% to 27.5%, sd 5.2%)360 vCPU
Aggregate peak360.0 vCPU x (1 + (2.23 - 1) / sqrt(100)), a pooled peak-to-mean of 1.123404 vCPU
Consolidated, sized once for the peakmax(3, ceil(404.2 vCPU / (8 vCPU x 37.5% target))) = max(3, ceil(134.74)); the mean sits well under that peak135 nodes, averaging 33.3%
Auto-scaled through the daythe pool follows the pooled curve in whole nodes, 30 minutes behind it, holding its size for 2 hours before shrinking122 nodes on average, at 36.9% CPU
Utilization across the day33.5% to 38.4% against a 37.5% setpoint: the pool runs hot while it's a bucket behind a rise, and cool while the cooldown is still holding capacity after a peak33.5%-38.4%

Assumptions

  • 8 vCPU per node. Standalone clusters are drawn around 3 nodes, snapped to an odd number for quorum and held between 3 and 15; in this estate they're all 3, because a spread centred on the end of that range has nowhere to go, for 300 nodes in total.
  • Each standalone cluster's CPU is a draw from a normal distribution centred on 15.0% and held between 0% and 100%; in this estate they run 0.5% to 27.5%, a 5.2-point standard deviation. The published band is 10-15% today against a 30-45% auto-scaled target, and this Private Host Cluster is set to 37.5%.
  • The Private Host Cluster floors at 3 nodes and must reach 135 at peak.
  • The auto-scaler sizes for what it saw 30 minutes ago and waits 2 hours before shrinking, so the pool averages 36.9% rather than sitting on its 37.5% setpoint.
  • Workloads are independent; consolidation moves where work runs, not how much there is.
What a virtual cluster gives an app team

Its own connection string, databases, schemas, users, roles and backups, and no visibility into the Private Host Cluster or any other virtual cluster.