Reputation: 15366
Google Cloud Platform/Compute Engine (GCP/GCE) standard persistent disks are stated to have up to 0.12 MB/s sustained read throughput per GB (ref). I know bursting exists, but its specific behavior isn't described anywhere.
The instance/disk/throttled_read_bytes_count
metric is described as the "Delta count of bytes in throttled read operations" (ref). If that value is zero, does that mean that increasing the size of our disk won't improve our application's performance? -- i.e. that our disk read needs are 100% satisfied by the current max throughput + bursting?
(There's also a metric for read_ops, which is zero in our case as well.)
Upvotes: 4
Views: 3380
Reputation: 76
Yes, a zero value in throttled_read_bytes_count
currently means that IOs went through the IO stack without any delays.
Indeed, GCE Persistent Disks have bursting which will allow IOs through at a rate that exceeds the advertised limits. After the initial burst is exhausted, the IOs will be rate-limited (throttled).
A zero value in throttled_read_bytes_count
means that your workload never reached the point where the IOs were rate-limited, otherwise, a non-zero throttled_read_bytes_count
means that there was a burst of IO that exceeded the burst allowance and Persistent Disk entered into a rate-limiting mode.
In other words, non-zero throttled_read_bytes_count
means that your workload is saturating the persistent disk throughput for some period of time and that period of time can be milliseconds.
For example, let's say that you bought a disk that can do 100 MiB/s and your application accumulated 50 MiB worth of data and dumped it all at once to PD.
The first O(10 MiB) will go through right away, the rest of the data will be rate-limited to provide 100 MiB/s. The data that went through right away will not be added to throttled_write_bytes_count
whereas the rest will be marked as throttled and will be added to throttle_write_bytes_count
.
Upvotes: 6