Stay organized with collections
Save and categorize content based on your preferences.
Linux
Windows
For high-end performance-critical applications, use Extreme Persistent Disk volumes.
Extreme Persistent Disk volumes feature higher maximum IOPS and throughput than
other Persistent Disk volumes, and let you provision IOPS and capacity
separately. Extreme Persistent Disk is available in all zones.
When you create an Extreme Persistent Disk, you can provision 2,500 to 120,000 IOPS.
If you need more than 125,000 IOPS, we recommend Google Cloud Hyperdisk.
Hyperdisk offers the highest IOPS and throughput in Compute Engine
and is available on the latest machine types.
This document explains several restrictions of using Extreme Persistent Disk,
considerations for reaching maximum possible performance levels, and how to provision IOPS
using the Google Cloud console, the gcloud CLI or
REST.
Before you begin
If you haven't already, set up authentication.
Authentication verifies your identity for access to Google Cloud services and APIs. To run
code or samples from a local development environment, you can authenticate to
Compute Engine by selecting one of the following options:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and
APIs, you don't need to set up authentication.
gcloud
Install the Google Cloud CLI.
After installation,
initialize the Google Cloud CLI by running the following command:
You can use N2, M2 and M3 machine series with Extreme Persistent Disk. N2 VMs
require at least 64 vCPUs.The following is list of machine types that support the
maximum performance levels offered by Extreme Persistent Disk:
All other machine types are not supported for production use.
If you'd like to use an unsupported machine type, we recommend
Hyperdisk instead.
N2 VMs with 64 or 80 vCPUs require the Intel Ice Lake CPU platform to reach the
stated performance limits. N2 VMs using Intel Cascade Lake CPU platforms will
have slightly lower performance. For more information, see setting the minimum
CPU platform for VM instances.
Performance limits for Extreme Persistent Disk
The following table lists the performance limits for the supported machine types.
Machine type
vCPU count
Maximum IOPS
Maximum read throughput (MB/s)
Maximum write throughput (MB/s)
N2
64 or 80 on Intel Cascade Lake
120,000
2,200
2,200
64 or more on Intel Ice Lake
120,000
4,000
3,000
M2
208
40,000
2,200
1,200
416
40,000
2,200
1,200
M3
64 or less
40,000
2,200
1,200
128
80,000
2,200
1,700
Performance limits and workload patterns
To reach the maximum performance levels offered by Extreme Persistent Disk volumes,
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 Disk volumes 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 Disk volumes, take into account any I/O requests that you are sending
to other disks attached to the same VM.
Other restrictions
Extreme Persistent Disk volumes are zonal only. You can't create regional Extreme
Persistent Disks.
You cannot attach multiple VM instances in read-only mode to an Extreme Persistent Disk
volume.
You can resize an Extreme Persistent Disk only once in a 6 hour period.
Throughput
For Extreme Persistent Disk volumes, throughput scales with the number of IOPS you
provision at a rate of 256 KB 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 Disk volumes isn't 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:
Note the IOPS requirement of your workload.
Determine the IOPS required to fulfill the throughput requirements of your workload.
Required IOPS = throughput in KB per second / 256
Set the provisioned IOPS to the larger of the two numbers.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[[["\u003cp\u003eExtreme persistent disks are designed for high-performance applications, offering adjustable IOPS from 2,500 to 120,000, and allow independent provisioning of IOPS and capacity.\u003c/p\u003e\n"],["\u003cp\u003eTo achieve maximum performance with extreme persistent disks, use large machine types like M2, M3, or N2-64 and larger, as other machine types may have performance limitations.\u003c/p\u003e\n"],["\u003cp\u003ePerformance is influenced by I/O size, queue length, working set size, and the concurrent use of other persistent disks, with maximum throughput limits being the total sum of read and write operations.\u003c/p\u003e\n"],["\u003cp\u003eYou can create extreme persistent disks using the Google Cloud console, gcloud CLI, or REST API by specifying the desired IOPS limit and size, and it's worth noting there is a cost associated with the provisioned IOPS.\u003c/p\u003e\n"],["\u003cp\u003eExtreme persistent disks have several restrictions, including being zonal-only, not supporting multiple VM read-only attachments, and limiting resizing to once every 6 hours.\u003c/p\u003e\n"]]],[],null,["# Extreme Persistent Disk\n\nLinux Windows\n\n*** ** * ** ***\n\nFor high-end performance-critical applications, use Extreme Persistent Disk volumes.\nExtreme Persistent Disk volumes feature higher maximum IOPS and throughput than\nother Persistent Disk volumes, and let you provision IOPS and capacity\nseparately. Extreme Persistent Disk is available in all [zones](/compute/docs/regions-zones).\n\nWhen you create an Extreme Persistent Disk, you can provision 2,500 to 120,000 IOPS.\nIf you need more than 125,000 IOPS, we recommend [Google Cloud Hyperdisk](/compute/docs/disks/hyperdisks).\nHyperdisk offers the highest IOPS and throughput in Compute Engine\nand is available on the latest machine types.\n\nThis document explains several restrictions of using Extreme Persistent Disk,\nconsiderations for reaching maximum possible performance levels, and how to provision IOPS\nusing the Google Cloud console, the gcloud CLI or\nREST.\n\nBefore you begin\n----------------\n\n- If you haven't already, set up [authentication](/compute/docs/authentication). Authentication verifies your identity for access to Google Cloud services and APIs. To run code or samples from a local development environment, you can authenticate to Compute Engine by selecting one of the following options:\n\n Select the tab for how you plan to use the samples on this page: \n\n ### Console\n\n\n When you use the Google Cloud console to access Google Cloud services and\n APIs, you don't need to set up authentication.\n\n ### gcloud\n\n 1.\n [Install](/sdk/docs/install) the Google Cloud CLI.\n\n After installation,\n [initialize](/sdk/docs/initializing) the Google Cloud CLI by running the following command:\n\n ```bash\n gcloud init\n ```\n\n\n If you're using an external identity provider (IdP), you must first\n [sign in to the gcloud CLI with your federated identity](/iam/docs/workforce-log-in-gcloud).\n | **Note:** If you installed the gcloud CLI previously, make sure you have the latest version by running `gcloud components update`.\n 2. [Set a default region and zone](/compute/docs/gcloud-compute#set_default_zone_and_region_in_your_local_client).\n\n ### REST\n\n\n To use the REST API samples on this page in a local development environment, you use the\n credentials you provide to the gcloud CLI.\n 1. [Install](/sdk/docs/install) the Google Cloud CLI. After installation, [initialize](/sdk/docs/initializing) the Google Cloud CLI by running the following command: \n\n ```bash\n gcloud init\n ```\n 2. If you're using an external identity provider (IdP), you must first [sign in to the gcloud CLI with your federated identity](/iam/docs/workforce-log-in-gcloud).\n\n\n For more information, see\n [Authenticate for using REST](/docs/authentication/rest)\n in the Google Cloud authentication documentation.\n\nMachine shape support\n---------------------\n\nYou can use N2, M2 and M3 machine series with Extreme Persistent Disk. N2 VMs\nrequire at least 64 vCPUs.The following is list of machine types that support the\nmaximum performance levels offered by Extreme Persistent Disk:\n\n- [N2](/compute/docs/general-purpose-machines#n2_series):\n\n - **`n2-*-64`**\n - **`n2-*-80`**\n - **`n2-*-96`**\n - **`n2-*-128`**\n- [M2](/compute/docs/memory-optimized-machines#m2_series):\n\n - **`m2-*-208`**\n - **`m2-*-416`**\n- [M3](/compute/docs/memory-optimized-machines#m3_series):\n\n - **`m3-*-32`**\n - **`m3-*-64`**\n\nAll other machine types are not supported for production use.\nIf you'd like to use an unsupported machine type, we recommend\n[Hyperdisk](/compute/docs/disks/hyperdisks) instead.\n\nN2 VMs with 64 or 80 vCPUs require the Intel Ice Lake CPU platform to reach the\nstated performance limits. N2 VMs using Intel Cascade Lake CPU platforms will\nhave slightly lower performance. For more information, see [setting the minimum\nCPU platform for VM instances](/compute/docs/instances/specify-min-cpu-platform#startinginstancewithmincpuplatform).\n\nPerformance limits for Extreme Persistent Disk\n----------------------------------------------\n\nThe following table lists the performance limits for the supported machine types.\n\n### Performance limits and workload patterns\n\nTo reach the maximum performance levels offered by Extreme Persistent Disk volumes,\nyou must consider the following workload parameters:\n\n- **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.\n- **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.\n- **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.\n- **Concurrent use of other persistent disks**: Extreme Persistent Disk volumes 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 Disk volumes, take into account any I/O requests that you are sending to other disks attached to the same VM.\n\nOther restrictions\n------------------\n\n- Extreme Persistent Disk volumes are zonal only. You can't create regional Extreme Persistent Disks.\n- You cannot attach multiple VM instances in read-only mode to an Extreme Persistent Disk volume.\n- You cannot [create an image or machine image](/compute/docs/images/create-delete-deprecate-private-images#create_image) from an extreme persistent disk.\n- You can resize an Extreme Persistent Disk only once in a 6 hour period.\n\nThroughput\n----------\n\nFor Extreme Persistent Disk volumes, throughput scales with the number of IOPS you\nprovision at a rate of 256 KB of throughput per I/O. However,\nthroughput is ultimately capped by per-instance limits that depend on the number\nof vCPUs on the VM instance to which your extreme disks are attached.\n\nThroughput for Extreme Persistent Disk volumes isn't full duplex. The maximum\nthroughput limits listed in this document apply to the sum total of read and\nwrite throughput.\n\nProvisioning IOPS\n-----------------\n\nTo provision IOPS to match your workload requirements, do the following:\n\n1. Note the IOPS requirement of your workload.\n2. Determine the IOPS required to fulfill the throughput requirements of your workload.\n - Required IOPS = throughput in KB per second / 256\n3. Set the provisioned IOPS to the larger of the two numbers.\n\n### Console\n\n1. [Create a new persistent disk](/compute/docs/disks/add-persistent-disk#console).\n2. Under **Disk type** , select **Extreme persistent disk**.\n3. Under **Provisioned IOPS**, select the maximum IOPS limit in the range of 2,500 to 120,000 IOPS. There is a cost associated with the provisioned IOPS.\n\n### gcloud\n\nUse the [`gcloud compute disks create` command](/sdk/gcloud/reference/compute/disks/create)\nto create a new disk and include the following flags: \n\n```\ngcloud compute disks create DISK_NAME \\\n --size=DISK_SIZE \\\n --type=pd-extreme \\\n --provisioned-iops=IOPS_LIMIT\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eDISK_NAME\u003c/var\u003e: the name of the new disk\n- \u003cvar translate=\"no\"\u003eDISK_SIZE\u003c/var\u003e: the size, in GB, of the new disk. The default disk size for Extreme Persistent Disk volumes is 1,000 GB.\n- \u003cvar translate=\"no\"\u003eIOPS_LIMIT\u003c/var\u003e: the maximum IOPS limit in the range of 2,500 to 120,000 IOPS. There is a cost associated with the provisioned IOPS.\n\n### REST\n\nUse the [`disks.insert` method](/compute/docs/reference/rest/v1/disks/insert)\nto create a new disk and include the following flags: \n\n```\nPOST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks\n\n{\n \"name\": \"DISK_NAME\",\n \"type\": \"zones/ZONE/diskTypes/pd-extreme\"\n \"provisionedIops\": \"IOPS_LIMIT\"\n}\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e: your project ID\n- \u003cvar translate=\"no\"\u003eZONE\u003c/var\u003e: the target zone for the disk\n- \u003cvar translate=\"no\"\u003eDISK_NAME\u003c/var\u003e: a name for the disk\n- \u003cvar translate=\"no\"\u003eIOPS_LIMIT\u003c/var\u003e: the maximum IOPS limit in the range of 2,500 to 120,000 IOPS. There is a cost associated with the provisioned IOPS.\n\nWhat's next?\n------------\n\n- Review [disk pricing](/compute/disks-image-pricing#disk) information.\n- Review [disk performance metrics](/compute/docs/disks/review-disk-metrics).\n- Learn how to [add an Extreme Persistent Disk volume to your VM](/compute/docs/disks/add-persistent-disk).\n- Learn how to [clone an Extreme Persistent Disk volume](/compute/docs/disks/clone-duplicate-disks)."]]