Extreme persistent disks

For high-end performance critical applications, use extreme persistent disks. Extreme persistent disks feature higher maximum IOPS and throughput and allow you to provision IOPS and capacity separately. Extreme persistent disks are available in all zones.

When you create an extreme persistent disk, you can chose your desired IOPS level in the range of 10,000 to 120,000 IOPS. This document explains several important restrictions of using extreme persistent disks, considerations for reaching maximum possible performance levels, and how to provision IOPS using the Cloud Console, the gcloud tool or the Compute Engine API.

Machine shape support

To reach maximum performance levels offered by extreme persistent disks, you must attach your extreme persistent disks to virtual machine (VM) instances that are large machine types with at least 64 vCPUs, including M1, or M2, or N2-64 and larger machine types.

All other machine types are not supported for production use. You can successfully attach an extreme persistent disk to a VM with an unsupported machine shape, but the performance of the disk will fall back to whichever is lower: the number of IOPS you provisioned, or SSD persistent disk IOPS levels.

Machine type Maximum IOPS Maximum throughput (MB/s)
n2-standard-64 120,000* 2,200
m1-megamem-96 90,000 2,200
m2-ultramem-208 60,000 2,200
m2-ultramem-416 40,000 2,200 (read), 1,200 (write)

*Pure-write workloads are expected to reach a maximum IOPS limit between 110,000 to 120,000 IOPS. This is not a common workload pattern.

Performance limits and workload patterns

To reach maximum performance levels offered by extreme persistent disks, you must consider the following workload parameters:

  • I/O size: Maximum IOPS limits assume that you are using an I/O size of 4 or 8 KB. Maximum throughput limits assume that you are using an I/O size of 1 MB.
  • Queue length: Queue length is the number of pending requests for a persistent disk. To reach maximum performance limits, you must tune your queue length according to the I/O size, IOPS, and latency sensitivity of your workload. Optimal queue length varies for each workload, but typically should be larger than 128.
  • Working set size: Working set size is the amount of data of a disk being accessed within a short period of time. To achieve optimal performance, limit working set sizes to less than 1.5 TB.
  • Concurrent use of other persistent disks: Extreme persistent disks share the per-VM maximum IOPS and throughput limits with all other persistent disks attached to the same VM. When monitoring the performance of your extreme persistent disks, take into account any I/O requests that you are sending to other disks attached to the same VM.

Other restrictions

  • Extreme persistent disks are zonal only. You cannot create regional extreme persistent disks.
  • You cannot attach multiple VM instances in read-only mode to an extreme persistent disk.
  • You cannot create an image or machine image from an extreme persistent disk.
  • You cannot clone an extreme persistent disk.
  • You cannot resize an extreme persistent disk while it is mounted to a VM instance.

Throughput

For extreme persistent disks, throughput scales with the number of IOPS you provision at a rate of 32 KB (or 0.032 MB) of throughput per I/O. However, throughput is ultimately capped by per-instance limits that depend on the number of vCPUs on the VM instance to which your extreme disks are attached.

Throughput for extreme persistent disks is not full duplex. The maximum throughput limits listed in this document apply to the sum total of read and write throughput.

Provisioning IOPS

To provision IOPS to match your workload requirements, do the following:

  1. Note the IOPS requirement of your workload.
  2. Determine the IOPS required to fulfill the throughput requirements of your workload.
    • Required IOPS = throughput in KB per second / 32
  3. Set the provisioned IOPS to the larger of the two numbers.

Console

  1. Create a new persistent disk.
  2. Under Disk type, select Extreme persistent disk.
  3. Under Provisioned IOPS, select the desired IOPS limit in the range of 10,000 to 120,000 IOPS.

gcloud

Use the gcloud compute disks create command to create a new disk and include the following flags:

gcloud compute disks create DISK_NAME \
  --size=DISK_SIZE \
  --type=pd-extreme \
  --provisioned-iops=IOPS_LIMIT

Replace the following:

  • DISK_NAME: the name of the new disk
  • DISK_SIZE: the size, in GB, of the new disk. The default disk size for extreme persistent disks is 1,000 GB.
  • IOPS_LIMIT: your desired IOPS limit in the range of 10,000 to 120,000 IOPS

API

Use the disks.insert method to create a new disk and include the following flags:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks

{
 "name": "DISK_NAME",
 "type": "zones/ZONE/diskTypes/pd-extreme"
 "provisionedIops": "IOPS_LIMIT"
}

Replace the following:

  • PROJECT_ID: your project ID
  • ZONE: the target zone for the disk
  • DISK_NAME: a name for the disk
  • IOPS_LIMIT: your desired IOPS limit in the range of 10,000 to 120,000 IOPS