Custom performance

This page discusses custom performance for your Filestore instances.

Read and write IOPS

Your file system uses a combined 100% of read and write IOPS that have different weights. For example, if your file system uses 33% of its read IOPS limit, it can simultaneously use up to 67% of its write IOPS limit.

Custom performance supports up to 100 client connections per 1,000 purchased IOPS, regardless of the capacity range or service tier being regional or zonal.

IOPS accrued from replicated data, such as backup operations, don't count towards user-purchased IOPS.

Example IOPS calculation

Assuming you have purchased 4,000 IOPS:

  • If you want to use them strictly for read IOPS, you would have access to a maximum of 4,000 read IOPS.
  • If you want to use them strictly for write IOPS, you would have access to a maximum of 1,200 write IOPS.
  • If you want to use 900 IOPS for write operations, it will effectively use 3,000 of your IOPS budget, leaving 1,000 IOPS for read operations.

If you need more IOPS or throughput, you can increase your purchased IOPS rate.

Configure custom performance

You can set custom performance for zonal and regional instances that already support it. Basic tiers don't support this feature.

Custom performance instances are billed differently than instances where custom performance is not configured. For details, see Filestore pricing.

You have the following options to configure custom performance:

  • Set an IOPS per TiB ratio where IOPS scale linearly with the instance's size.
  • Set a fixed IOPS rate. The rate is steady, regardless of instance size.

For details on setting custom performance, see creating instances.

Check custom performance status

If you want to the check the custom performance status, follow these instructions:

Google Cloud console

Go to the Filestore Instances page

  1. Click the Instance ID to open the Instance Details page.
  2. Go to the Overview tab and look for a Custom Performance entry.

    • Not supported means that custom performance is not supported for a specific instance. For example, when you create a basic tier instance, or when the instance was created before the feature was launched.
    • Enabled means that custom performance is supported and active for this instance.
    • Disabled means that custom performance is supported but not enabled for this instance.

gcloud

Get information about a Filestore instance by running the instances describe command:

    gcloud filestore instances describe INSTANCE_ID --project=PROJECT_ID --location=LOCATION

The output might vary depending on the instance settings. The following is an example output:

    createTime: '2021-10-11T17:28:23.340943077Z'
    customPerformanceSupported: true
    fileShares:
    - capacityGb: '1024'
    name: vol1
    kmsKeyName: projects/example-project/locations/us-central1/keyRings/example-ring/cryptoKeys/example-key
    labels:
    key:val
    name: projects/yourproject/locations/us-central1/instances/nfs-server
    networks:
    - ipAddresses:
    - 10.0.0.2
    network: default
    reservedIpRange: 10.0.0.0/26
    performanceConfig:
      iopsPerTb:
        maxIopsPerTb: '17000'
    performanceLimits:
      maxIops: '17000'
      maxReadIops: '17000'
      maxReadThroughputBps: '417792000'
      maxWriteIops: '5100'
      maxWriteThroughputBps: '139264000'
    state: READY
    tier: REGIONAL
  • If customPerformanceSupported parameter is present and set to true it means that custom performance is supported for this instance. If the flag is not present, custom performance is not supported.

  • If performanceConfig parameter is present, it means that custom performance is enabled for this instance.

REST API

  1. Have gcloud CLI installed and initialized, which lets you generate an access token for the Authorization header.

  2. Use cURL to call the Filestore API:

    curl -s \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --header "Content-Type: application/json" \
      GET "https://file.googleapis.com/v1beta1/projects/PROJECT/locations/LOCATION/instances/INSTANCE_NAME"

    Where:

    • PROJECT is the name of the project where your instance is located. For example, my-project.
    • LOCATION is the location where your instance resides. For example, us-central1-a.
    • INSTANCE_NAME is the name of the instance you want to view. For example, nfs-server.

    If custom performance is supported and configured for the provided instance, the response will include the following parameters:

     "customPerformanceSupported": true,
      "performanceConfig": {
        "fixedIops": {
          "maxIops": "9000"
        }
      },
      "performanceLimits": {
        "maxReadIops": "9000",
        "maxWriteIops": "2700",
        "maxReadThroughputBps": "221184000",
        "maxWriteThroughputBps": "73728000",
        "maxIops": "9000"
      }
    

Custom performance limits

The following table lists the performance limits based on minimum and maximum capacity values. These values determine the maximum expected read and write IOPS and throughput.

For more information, see the read and write IOPS section of this document.

Custom performance limits for zonal and regional tiers
Capacity Performance limit IOPS per TiB Read IOPS Write IOPS Read throughput (MiBps) Write throughput (MiBps)
1 TiB Min 4,000 4,000 1,200 94 32
Max 17,000 17,000 5,100 399 133
9.75 TiB Min 4,000 39,000 11,700 915 305
Max 17,000 166,000 49,800 3,891 1,297
10 TiB Min 3,000 30,000 9,000 704 235
Max 7,500 75,000 22,500 1,758 586
100 TiB Min 3,000 300,000 90,000 7,032 2,344
Max 7,500 750,000 225,000 17,579 5,860

Monitoring

To monitor instance IOPS usage, you can use the Metrics Explorer to view the following metrics: read_ops_count, write_ops_count, and metadata_ops_count.

For more information, see monitoring instances.

What's next