EFS performance is configured through two settings: Performance Mode (General Purpose or Max I/O) which controls latency and IOPS characteristics, and Throughput Mode (Elastic, Provisioned, or Bursting) which controls the available read/write bandwidth. The right combination depends on whether your workload is latency-sensitive, throughput-intensive, or bursty.
EFS performance is determined by two independent configuration axes: Performance Mode (which governs per-operation latency and maximum IOPS) and Throughput Mode (which governs how much data can be read or written per second). These two settings address different bottlenecks in file system performance, and choosing the right combination is key to building a cost-effective, high-performance shared storage layer.
Lowest per-operation latency — sub-millisecond latency for file metadata operations (open, close, stat, listdir)
Maximum IOPS: up to 35,000 IOPS for the file system
Best for: latency-sensitive workloads — web servers, CMS, development environments, home directories, containerized apps
Can be combined with any throughput mode
AWS recommends General Purpose for ALL new workloads, even large-scale ones, when combined with Elastic Throughput
Optimized for maximum aggregate throughput and IOPS across a large number of concurrent clients
Trade-off: higher per-operation latency compared to General Purpose (tens of milliseconds for metadata)
Best for: highly parallelized big data workloads — genomics pipelines, media rendering farms, large Hadoop clusters with hundreds of nodes
Cannot be used with Elastic Throughput mode
AWS recommends using General Purpose + Elastic Throughput instead of Max I/O for new file systems
Throughput automatically scales up and down based on actual workload demand — no configuration required
Maximum read throughput: up to 3 GiB/s
Maximum write throughput: up to 1 GiB/s
Billing: pay per GB of data transferred (read: $0.03/GB, write: $0.06/GB) — no baseline charge
Best for: spiky, unpredictable, or bursty workloads that are idle most of the time and occasionally need high throughput
Cannot be used with Max I/O performance mode
You manually specify a fixed throughput level in MiB/s, independent of the amount of data stored
Range: 1 MiB/s to 3,414 MiB/s (3+ GiB/s)
Billing: charged for the provisioned MiB/s amount regardless of actual usage
Best for: workloads with consistently high throughput requirements that exceed what Elastic mode provides at your current storage size
Example: a 1 TB file system using Bursting would only get ~50 MiB/s baseline. If you need 500 MiB/s consistently, use Provisioned.
Can be changed to Elastic mode at any time
Throughput scales proportionally with the amount of data stored in the Standard storage class
Baseline throughput: 50 MiB/s per TiB stored in Standard class
Burst capability: up to 100 MiB/s per TiB stored (minimum 100 MiB/s guaranteed)
Burst credits: accumulate when throughput is below baseline, consumed when bursting above baseline
Problem: small file systems (under 1 TiB) get very low baseline throughput (as low as 50 MiB/s)
Not recommended for new workloads — use Elastic or Provisioned instead