Performance - AWS Storage Services Overview

Performance

Amazon EFS file systems are distributed across an unconstrained number of storage servers, enabling file systems to grow elastically to petabyte-scale and allowing massively parallel access from EC2 instances within a Region. This distributed data storage design means that multi-threaded applications and applications that concurrently access data from multiple EC2 instances can drive substantial levels of aggregate throughput and IOPS.

There are two different performance modes available for Amazon EFS: General Purpose and Max I/O. General Purpose performance mode is the default mode and is appropriate for most file systems. However, if your overall Amazon EFS workload will exceed 7,000 file operations per second per file system, we recommend the files system use Max I/O performance mode. Max I/O performance mode is optimized for applications where tens, hundreds, or thousands of EC2 instances are accessing the file system. With this mode, file systems scale to higher levels of aggregate throughput and operations per second with a tradeoff of slightly higher latencies for file operations.

Due to the spiky nature of file-based workloads, Amazon EFS is optimized to burst at high-throughput levels for short periods of time, while delivering low levels of throughput the rest of the time. A credit system determines when an Amazon EFS file system can burst. Over time, each file system earns burst credits at a baseline rate, determined by the size of the file system, and uses these credits whenever it reads or writes data. A file system can drive throughput continuously at its baseline rate. It accumulates credits during periods of inactivity or when throughput is below its baseline rate. These accumulated burst credits allow a file system to drive throughput above its baseline rate. The file system can continue to drive throughput above its baseline rate as long as it has a positive burst credit balance. You can see the burst credit balance for a file system by viewing the BurstCreditBalance metric in Amazon CloudWatch.

Newly created file systems start with a credit balance of 2.1 TiB with a baseline rate of 50 MiB/s per TiB of storage and a burst rate of 100 MiB/s.

The following list describes some examples of bursting behaviors for file systems of different sizes.

File system size (GiB) Baseline aggregate throughput (MiB/s) Burst aggregate throughput (MiB/s) Maximum burst duration (hours) % of time file system can burst
10 0.5 100 6.0 0.5%
256 12.5 100 6.9 12.5%
512 25.0 100 8.0 25.0%
1024 50.0 100 12.0 50.0%
1536 75.0 150 12.0 50.0%
2048 100.0 200 12.0 50.0%
3072 150.0 300 12.0 50.0%
4096 200.0 400 12.0 50.0%

Here are a few recommendations to get the most performance out of your Amazon EFS file system. Because of the distributed architecture of Amazon EFS, larger I/O workloads generally experience higher throughput. EFS file systems can be mounted by thousands of EC2 instances concurrently. If your application is parallelizable across multiple instances, you can drive higher throughput levels on your file system in aggregate across instances. If your application can handle asynchronous writes to your file system, and you’re able to trade off consistency for speed, enabling asynchronous writes may improve performance. We recommend Linux kernel version 4 or later and NFSv4.1 for all clients accessing EFS file systems. When mounting EFS file systems, use the mount options recommended in the Mounting File Systems and Additional Mounting Considerations sections of the Amazon EFS User Guide.