IOPS (input/output operations per second) measures how many read or write operations a storage system completes each second. The operation size depends on the service: EBS uses a standard 16 KB I/O, while EFS counts each 4 KB of file activity as one operation, with at least one operation per read or write. section 8.1.3 section 9.5.1
Interpret IOPS together with workload and storage configuration:
- Separate read-heavy and write-heavy behavior; operation size and access pattern affect performance, and larger operations increase throughput. section 8.1.3
- Match EBS volume and EC2 instance capabilities; the instance’s bandwidth and the volume’s IOPS must be balanced. section 8.1.3
- Choose EFS General Purpose for latency-sensitive small-file workloads, or Max I/O for large analytics workloads that prioritize throughput. section 9.5.1
- Treat higher IOPS as a trade-off rather than an automatic improvement: volume type, performance mode, latency, throughput, and price all matter. section 8.1.3 section 9.5.1
Choosing an EFS performance mode
Use General Purpose mode for a shared /home directory containing many small documents and requiring low latency. Use Max I/O for analytics over terabytes of data, where throughput matters more than time to first byte. Because the performance mode cannot be changed after creation, monitor PercentIOLimit and create a replacement filesystem if the limit is too low. section 9.5.1
Listing 9.6 Monitoring the PercentIOLimit metric using a CloudWatch alarm
PercentIOLimitTooHighAlarm:
Type: 'AWS::CloudWatch::Alarm' #1
Properties:
AlarmDescription: 'I/O limit has been reached, consider ...'
Namespace: 'AWS/EFS' #2
MetricName: PercentIOLimit #3
Statistic: Maximum #4
Period: 600 #5
EvaluationPeriods: 3 #6
ComparisonOperator: GreaterThanThreshold #7
Threshold: 95 #8
Dimensions: #9
- Name: FileSystemId #10
Value: !Ref FileSystem #11
Inspect a CloudWatch alarm configuration that monitors the EFS PercentIOLimit metric and flags sustained values above 95 percent. section 9.5.1

