SSD persistent disks serving under 100 IOPS that could run on pd-balanced
What does ZopNight detect here?
An SSD persistent disk (`pd-ssd`) is priced for high IOPS, and many carry workloads that barely touch it. ZopNight flags `pd-ssd` disks whose average read plus write operations stayed under 100 per second over 32 days, and prices a move to `pd-balanced` from real per-GB rates for both disk types.
Signal and threshold
| Field | Value |
|---|---|
| Rule IDs | RC-1234 |
| Category | rightsizing |
| Severity | low |
| Metric | instance/disk/read_ops_count, instance/disk/write_ops_count |
| Threshold | read + write average under 100 ops/sec |
| Evaluation window | 32d |
| Source | ZopNight |
| Permissions used | compute.disks.list · compute.disks.get · monitoring.timeSeries.list |
Where it applies
Paying SSD rates for balanced-disk traffic
Compute Engine offers several Persistent Disk types. Google’s
disk type overview describes
pd-balanced as a balance of performance and cost that, for most machine types, has the same
maximum IOPS as pd-ssd with lower IOPS per GiB, priced between standard and SSD disks. The
performance tables give zonal
pd-balanced 6 read and write IOPS per GiB against 30 for pd-ssd.
Persistent Disk is billed per provisioned GB with I/O included, so a pd-ssd volume that serves
a few dozen operations a second is paying for headroom it never uses.
Finding quiet SSD disks
gcloud compute disks list --filter="type~pd-ssd" --format="table(name,zone,sizeGb,users)"For each disk, chart compute.googleapis.com/instance/disk/read_ops_count and
instance/disk/write_ops_count for its VM and device over the last month, converted to a rate
per second.
The IOPS ceiling that triggers a finding
The disk type must be pd-ssd. ZopNight reads both the read and the write operation series for
the disk over 32 days, adds their averages, and fires when the total is under 100 operations per
second. Both series are required; if either is missing, that is treated as a data gap and nothing
is raised.
Disks it will not score
A disk without rates for both pd-ssd and pd-balanced in its region gets no finding, since the
saving must come from real prices rather than a flat discount. Averages hide bursts, so check
peak IOPS and latency before converting anything that backs a database.
Rate difference between SSD and balanced
saving = current monthly disk cost x (pd-ssd rate - pd-balanced rate) / pd-ssd rateConverting a disk to pd-balanced
ZopNight gives this as guidance; the change is manual. Google’s disk modification guide states that you cannot change the type of an existing Persistent Disk in place.
- Stop the VM the disk is attached to.
- Snapshot the disk:
gcloud compute snapshots create SNAPSHOT_NAME --source-disk=DISK_NAME --source-disk-zone=ZONE. - Create a new disk from it:
gcloud compute disks create NEW_DISK --zone=ZONE --type=pd-balanced --source-snapshot=SNAPSHOT_NAME. - Detach the old disk, attach the new one (as boot disk if it was one), and start the VM.
- After testing, delete the old disk and the snapshot; both bill until you do.