Analyze the provisioned IOPS and throughput for Hyperdisk volumes


You can view the disk description to see the currently provisioned input/output operations per second (IOPS) or the currently provisioned throughput for Google Cloud Hyperdisk volumes.

You can change the provisioned IOPS or throughput once in every 4 hour period. Each change of the IOPS or throughput level is logged. You can review the log history and compare it with performance metrics to understand how the provisioned IOPS and throughput levels relate to the performance level observed by your workload.

Before you begin

View the currently provisioned performance settings for Hyperdisk

To view the provisioned IOPS or throughput for your Hyperdisk volumes, view the disk information.

Console

  1. In the Google Cloud console, go to the Disks page.

    Go to Disks

  2. Click the name of the disk to view the configuration details.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Use the gcloud compute disks describe command to view the disk details.

    Hyperdisk Extreme

        gcloud compute disks describe DISK_NAME \
          --zone ZONE_NAME \
          --format="text(name, provisionedIops, sizeGb)"
       

    Hyperdisk Throughput

        gcloud compute disks describe DISK_NAME \
          --zone ZONE_NAME \
          --format="text(name, provisionedThroughput, sizeGb)"
       

    Replace the following:

    • DISK_NAME: the name of the Hyperdisk volume.
    • ZONE_NAME: the zone where the Hyperdisk volume was created.

    The output shows the name of the disk, the current disk size and the provisioned IOPS or throughput, for example:

    Hyperdisk Extreme

       name: my-hyperdisk
       provisionedIops: '100000'
       sizeGb: '1000'
       

    Hyperdisk Throughput

       name: my-hyperdisk
       provisionedThrougput: '300'
       sizeGb: '10000'
       

API

In the API, construct a GET request to the compute.disks.get method. In the request body, specify the name of the Hyperdisk volume.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/get

Replace the following:

  • PROJECT_ID: your project ID.
  • ZONE: the zone where your Hyperdisk volume is located.
  • DISK_NAME: the name of the Hyperdisk volume to view.

In the response body, you can view the current disk size and provisioned IOPS or throughput, for example:

{
  ...
  "name": "my-hyperdisk",
  "physicalBlockSizeBytes": "4096",
  "provisionedIops": "100000",
  ...
  "sizeGb": "1000",
  "status": "READY",
  ...
}

You can use a query filter to return only the information you want to view. To view only the fields shown in the preceding example output, append a query parameter similar to the following to your request.

?fields=name,physicalBlockSizeBytes,provisionedThroughput,sizeGb,status

View disk performance metrics

To view performance metrics for your VMs, use the Cloud Monitoring observability metrics available in the Google Cloud console.

  1. In the Google Cloud console, go to the VM Instances page.

    Go to VM Instances

  2. To view metrics for individual VMs, do the following:

    1. Click the name of the VM you want to view performance metrics for. The VM instance Details page opens.

    2. Click the Observability tab to open the Observability Overview page.

  3. Explore the VM's performance metrics. The following are key metrics related to disk performance for a VM:

    • On the Overview page:

      • CPU Utilization. The percent of CPU used by the VM.

      • Network Traffic. The average rate of bytes sent and received in one minute intervals.

      • Disk Throughput. The average rate of bytes written to and read from disks.

      • Disk IOPS. The average rate of I/O read and write operations to disks.

    • On the Disks Performance page, view the following charts:

      • Operations (IOPS). The average rate of I/O read and write operations to the disk in one-minute time periods.

      • I/O Size Avg. The average size of I/O read and write operations to disks. Small (4-16 KiB) random I/Os are usually limited by IOPS and sequential or large (256 KiB-1 MiB) I/Os are usually limited by throughput.

      • Queue Length Avg. The number of queued and running disk I/O operations, also called queue depth, for the top 5 devices. To reach the performance limits of your Hyperdisk and Persistent Disk volumes, use a high I/O queue depth.

      • I/O Latency Avg. The average latency of I/O read and write operations aggregated across operations of all block storage devices attached to the VM, measured by the Ops Agent in the VM. This value includes operating system and file system processing time.

Analyze the IOPS needed for your workload

To determine the IOPS needed for your workload, make note of the peak and average IOPS and throughput rates during times of peak usage, and also during a normal workload cycle, to get an idea of your workload requirements.

Observe the IOPS requirements of your workload using any of the following methods:

Based on the observed metric values, determine if you should adjust the provisioned IOPS for your VM. For example:

  • If the peak IOPS rate is close to the provisioned IOPS for the Hyperdisk volume, then you can try increasing the provisioned IOPS for the Hyperdisk volume to boost the performance of your application.
  • If the peak IOPS rate is consistently lower than the provisioned IOPS, then you can lower the provisioned IOPS for the Hyperdisk volume to reduce the cost of the disk.

Choose the right performance level for a Hyperdisk Throughput volume

With Hyperdisk Throughput, you can provision capacity separately from performance. To provision performance, you select the desired throughput level for a given volume. Individual volumes have full performance isolation - each volume gets the performance provisioned to it. However, the throughput is ultimately capped by per-instance limits on the VM instance to which your volumes are attached. To review these limits, see Hyperdisk capacity.

Both read and write operations count against the throughput limit provisioned for a Hyperdisk Throughput volume. The throughput provisioned and the maximum limits apply to the combined total of read and write throughput.

There is no baseline throughput that comes with the provisioned capacity. Throughput must be provisioned separately. Throughput provisioned for Hyperdisk Throughput volumes must follow the following rules:

  • At least 10 MB/s per TiB of capacity, and no more than 90 MB/s per TiB of capacity.
  • At most 600 MB/s per volume.

If the total throughput provisioned for one or more Hyperdisk Throughput volumes exceeds the total throughput available at the instance level, the performance is limited to the VM-level performance.

What's next