Question: What are the differences between General Purpose and Max I/O performance modes in Amazon EFS?

I want to know the difference between the two performance modes, General Purpose and Max I/O, in Amazon Elastic File System (Amazon EFS).

Short descriptionThe performance modes differ in the following aspects:Number of file system operations per secondIn General Purpose performance mode, read and write operations consume a different number of file operations. Read data or metadata consumes one file operation. Write data or update metadata consumes five file operations. A file system can support up to 35,000 file operations per second (IOPS). This can be 35,000 only READ operations, 7,000 only WRITE operations, or a combination of the two. For example, a file system supports 20,000 READ operations and 3,000 WRITE operations. This is because 20,000 READ operations (one file operation per read) + 3,000 WRITE operations (five file operations per write) = 35,000 IOPS. For more information, see Quotas for Amazon EFS file systems.Max I/O performance modeThere's no IOPS limit for the MAX I/O performance mode of a file system. If you require a high number of IOPS from a file system, then it's a best practice to use Max I/O performance mode.Latency per file system operationGeneral Purpose performance mode has the lower latency of the two performance modes. If your workload is sensitive to latency, then this performance mode is likely suitable for your use case.Max I/O performance mode doesn't have an IOPS limit, but it has a slightly higher latency per each file system operation.For more information, including additional use cases, see Performance modes.Note: After you create your file system, you can't change the file system performance mode. As a workaround, you can use AWS DataSync or AWS Backup to migrate and restore your file system with a different performance mode. Because AWS bills each mode the same way, there are no additional costs for either performance mode. For DataSync, note the Considerations with Amazon EFS locations.

ResolutionTo determine which performance mode to use for your workflow, use General Purpose mode to create a file system. Then, run your application for 2-3 weeks. During this time, monitor the file system's PercentIOLimit Amazon CloudWatch metric. Note how close your file system is from reaching 100% of the PercentIOLimit metric. If it reaches 90-100% of the metric for most of the time, then Max I/O performance mode is a better option for your workload.Keep in mind that Max I/O performance mode doesn't have IOPS limitations, but it does have higher latency for IOPS. Therefore, before moving all your applications to Max I/O performance mode, test your workflow to validate if the latency is acceptable for your use case.Create a file system with General Purpose performance mode1.    Open the Amazon EFS console.2.    Choose Create file system.3.    Choose Customize.4.    Choose Additional Settings, and then select General Purpose (Recommended) as your Performance mode.Note: General Purpose is the default performance mode.5.    (Optional) You can add tags, configure a Lifecycle policy, select a throughput mode, and activate encryption at rest.6.    Choose Next to view the Network access pane. Configure the Virtual Private Cloud (VPC) and Mount targets for your file system. Then, choose Next.7.    (Optional) You can configure a File system policy to control access to your file system. Then, choose Next.8.    Review the summary of your configuration settings, and then choose Create.Monitor the maximum file system operations using Amazon CloudWatch metricsThe PercentIOLimit CloudWatch metric monitors how close a file system is to hitting its maximum file system operations per second limit. This metric is available only for file systems that are running with General Purpose performance mode. When you reach 35,000 file system operations per second, General Purpose performance mode reaches the 100% PercentIOLimit.To check the PercentIOLimit, complete the following steps:1.    Open the CloudWatch console in the AWS Region where you created your file system.2.    Choose Metrics from the navigation bar. Then, choose All metrics.3.    In the search bar, enter your file system ID, and then press ENTER. This displays the relevant metrics that are associated with your file system.4.    Choose File System Metrics. This displays all the available CloudWatch metrics of your file system.5.    Choose PercentIOLimit. This metric displays your file system's IOPS usage. 35,000 IOPS equal a PercentIOLimit of 100%.Note: For more information about PercentIOLimit and other available CloudWatch metrics, see Amazon CloudWatch metrics for Amazon EFS.