Skip to content
Cloud Efficiency Hub

Underutilized Cloud SQL Instance

Explanation

Cloud SQL instances are often over-provisioned or left running despite low utilization. Since billing is based on allocated vCPUs, memory, and storage - not usage - any misalignment between actual workload needs and provisioned capacity leads to unnecessary spend. Common causes include: * Initial oversizing during launch that was never revisited * Non-production environments with continuous uptime but minimal use * Databases used intermittently (e.g., for nightly reports) but kept running 24/7 Without rightsizing or scheduling strategies, these instances generate ongoing cost with limited business value.

Relevant Billing Model

Billed based on: * vCPU and memory provisioned per instance-hour * Storage provisioned (per GB-month) and IOPS for SSDs * Backups and network egress Charges accrue regardless of utilization levels; costs reflect provisioned capacity, not actual usage.

Detection

  • Review CPU and memory utilization trends over a representative period
  • Identify instances with consistently low usage relative to provisioned specs
  • Check for instances with uptime but no active connections or query activity
  • Evaluate whether the environment (dev, test, QA) requires full-time availability
  • Examine storage and IOPS usage to identify excessive disk allocation

Remediation

  • Right-size vCPU and memory allocations based on actual performance needs
  • Schedule automatic shutdown for non-production instances during off-hours
  • Use Cloud SQL's stop/start capability for intermittent workloads
  • Evaluate if the workload can be moved to a lower-cost alternative like Cloud SQL Auth Proxy \+ serverless alternatives for occasional querying
  • Implement monitoring to trigger reviews when utilization stays below a threshold

Relevant Documentation

* Cloud SQL Pricing * View Cloud SQL Instance Metrics * Start and Stop a Cloud SQL Instance