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
- Click the Instance ID to open the Instance Details page.
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 totrue
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
Have gcloud CLI installed and initialized, which lets you generate an access token for the
Authorization
header.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.
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.