

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon EFS 性能规范
<a name="performance"></a>

以下章节概述了 Amazon EFS 性能，还介绍了文件系统配置如何影响关键性能维度。我们还提供了一些用于优化文件系统性能的重要提示和建议。

**Topics**
+ [性能摘要](#performance-overview)
+ [存储类](#storage-perf)
+ [性能模式](#performancemodes)
+ [吞吐量模式](#throughput-modes)
+ [Amazon EFS 性能提示](performance-tips.md)
+ [Amazon EFS 性能问题排查](troubleshooting-efs-general.md)
+ [排查 AMI 和内核问题](troubleshooting-efs-ami-kernel.md)

## 性能摘要
<a name="performance-overview"></a>

文件系统性能通常使用延迟、吞吐量和每秒 Input/Output 操作数 (IOPS) 等维度来衡量。Amazon EFS 在这些方面的性能取决于文件系统的配置。以下配置会影响 Amazon EFS 文件系统的性能：
+ **文件系统类型** – 区域性或单区
+ **性能模式** – 通用或最大 I/O
**重要**  
与通用 I/O 性能模式相比，最大性能模式的每次操作延迟更高。为了提高性能，我们建议始终使用通用性能模式。有关更多信息，请参阅 [性能模式](#performancemodes)。
+ **吞吐量模式** – 弹性、预配置或突增

下表概述了使用通用性能模式的文件系统的性能规格，以及不同文件系统类型和吞吐量模式的可能组合。


**使用通用性能模式的文件系统的性能规格**  

| 存储和吞吐量配置 | 延迟1 | 最大 IOPS | 最大吞吐量 | 
| --- |--- |--- |--- |
|  **文件系统类型**  |  ** 吞吐量模式**  |  **读取操作**  |  **写入操作**  |  **读取操作**  |  **写入操作**  |  **P er-file-system read** 2  |  **P er-file-system writ** e 2  |  **按客户端读取/写入**  | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
|  **区域性**  | 弹性 |  \~1 毫秒 (ms)  | 大约 2.7 毫秒 (ms) | 900,000—2,500,000 3 | 500,000 **3** |  每秒 20—60 千兆字节 () GiBps  |  1—5 GiBps  |  每秒 1,500 兆字节 (4) MiBps  | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
|  **区域性**  | 已预置 |  大约 1 毫秒  | 大约 2.7 毫秒 | 55,000 | 25000 |  3—10 GiBps  |  1—3.33 GiBps  | 500 MiBps | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
|  **区域性**  | 突增 |  大约 1 毫秒  | 大约 2.7 毫秒 | 35000 | 7,000 |  3—5 GiBps  |  1—3 GiBps  | 500 MiBps | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
|  **单区**  | 弹性、预配置、爆发 |  大约 1 毫秒  |  大约 1.6 毫秒  | 35000 | 7,000 |  3 GiBps 5  |  1 GiBps 5  | 500 MiBps | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |

1. 所示延迟值代表了最佳条件下的最佳性能。实际结果可能因网络、工作负载和系统因素而异。

1. 最大读取和写入吞吐量取决于 Amazon Web Services 区域。如果吞吐量超过最大吞吐量，则需要增加吞吐量配额。 Amazon Web Services 区域任何增加吞吐量的请求都将 case-by-case由 Amazon EFS 服务团队进行考虑。是否批准可能取决于工作负载类型。有关请求增加配额的更多信息，请参阅[Amazon EFS 限额](limits.md)。

1. 默认情况下，使用弹性吞吐量的文件系统可针对不频繁访问的数据，实现高达 90,000 次读取 IOPS；而针对频繁访问的数据，可以实现 250,000 次读取 IOPS 和 50,000 次写入 IOPS。如果您的工作负载需要更高 IOPS，您可以请求将这些数字增加高达 10 倍。有关更多信息，请参阅 [您可以提高的 Amazon EFS 配额](limits.md#soft-limits)。其它建议适用于实现最大 IOPS。有关更多信息，请参阅 [优化需要高吞吐量和 IOPS 的工作负载](performance-tips.md#recs-intensive-workloads)。

1.  MiBps 对于使用弹性吞吐量并使用版本 2.0 或更高版本的 Amazon EFS 客户端（amazon-efs-utils 版本）或 Amazon EFS CSI 驱动程序（aws-efs-csi-driver）装载的文件系统，最大合并读写吞吐量为 1,500。对于所有其他文件系统，吞吐量限制为 500 MiBps。有关 Amazon EFS 客户端的更多信息，请参阅[安装 Amazon EFS 客户端](using-amazon-efs-utils.md)。

1. 使用突增吞吐量的单区域文件系统可以驱动与使用突发吞吐量的区域文件系统相同的 per-file-system读取和写入吞吐量（读取的最大读取量为 5，写入的最大读 GiBps 取量为 3 GiBps ）。

## 存储类
<a name="storage-perf"></a>

Amazon EFS 存储类专为实现最有效的存储而设计，具体取决于用例。
+ EFS 标准存储类使用固态驱动器 (SSD) 存储为频繁访问的文件提供最低延迟级别。该存储类为读取提供低至 1 毫秒的首字节延迟，写入的首字节延迟低至 2.7 毫秒。
+ EFS 不频繁访问（IA）和 EFS 存档存储类可存储访问频率较低的数据，这些数据不需要频繁访问的数据所需的延迟性能。这些存储类提供的第一个字节延迟为数十毫秒。

有关 EFS 存储类的更多信息，请参阅 [EFS 存储类](features.md#storage-classes)。

## 性能模式
<a name="performancemodes"></a>

Amazon EFS 提供两种性能模式：通用模式和最大 I/O 模式。
+ **通用模式**的每次操作延迟最低，是文件系统的默认性能模式。单区文件系统始终使用通用性能模式。为了提高性能，我们建议始终使用通用性能模式。
+ **Max I/O 模式**是上一代性能类型，专为高度并行化的工作负载而设计，这些工作负载可以容忍比通用模式更高的延迟。One Zone 文件系统或使用弹性吞吐量的文件系统不支持最大 I/O 模式。
**重要**  
由于最大 I/O 的每次操作延迟较高，因此我们建议对所有文件系统使用通用性能模式。

为了帮助确保您的工作负载保持在使用通用性能模式的文件系统可用的 IOPS 限制范围内，您可以监控该`PercentIOLimit` CloudWatch 指标。有关更多信息，请参阅 [CloudWatch 亚马逊 EFS 的指标](efs-metrics.md)。

应用程序可以弹性扩展其 IOPS，以达到与性能模式相关的限制。无需单独为 IOPS 付费；它们已包含在文件系统的吞吐量核算中。每个网络文件系统（NFS）请求都以 4 千字节（KB）吞吐量或其实际请求和响应大小计算，以较大者为准。

## 吞吐量模式
<a name="throughput-modes"></a>

文件系统的吞吐量模式决定了文件系统可用的吞吐量。Amazon EFS 提供三种吞吐量模式：弹性、预配置和突增。读取吞吐量已打折，使您能够获得比写入吞吐量更高的读取吞吐量。每种吞吐量模式下可用的最大吞吐量取决于 Amazon Web Services 区域。有关不同区域中最大文件系统吞吐量的更多信息，请参阅[Amazon EFS 限额](limits.md)。

文件系统可以实现 100% 的读写组合吞吐量。例如，如果文件系统使用其读取吞吐量限制的 33%，则该文件系统可以同时达到其写入吞吐量限制的 67%。可以在控制台的**文件系统详细信息**页面上的**吞吐量利用率（%）**图表中监控文件系统的吞吐量使用情况。有关更多信息，请参阅 [监控吞吐量性能](how_to_use_metrics.md#monitor-throughput-performance)。

### 为文件系统选择正确的吞吐量模式
<a name="choosing"></a>

为文件系统选择正确的吞吐量模式取决于工作负载的性能要求。
+ **弹性吞吐量**（推荐）— 当您的工作负载激增或不可预测且性能要求难以预测时，或者您的应用程序以 5% 或更低的 average-to-peak比率驱动吞吐量时，请使用默认的弹性吞吐量。有关更多信息，请参阅 [弹性吞吐量](#elastic)。
+ **预配置吞吐量**-如果您知道工作负载的性能要求，或者当您的应用程序以 5% 或更高的 average-to-peak比例提高吞吐量时，请使用预配置吞吐量。有关更多信息，请参阅 [预配置吞吐量](#provisioned-throughput)。
+ **突增吞吐量** – 如果您希望吞吐量随文件系统中的存储量扩展，请使用突增吞吐量。

  如果在使用突增吞吐量后，发现您的应用程序受到吞吐量限制（例如，使用的吞吐量超过允许吞吐量的 80%，或者已经使用了所有突增点数），则应使用弹性吞吐量或预置吞吐量。有关更多信息，请参阅 [突增吞吐量](#bursting)。

 有关 Amazon EFS 指标的更多信息，请参阅[CloudWatch 亚马逊 EFS 的指标](efs-metrics.md)。

### 弹性吞吐量
<a name="elastic"></a>

对于使用弹性吞吐量的文件系统，Amazon EFS 会自动扩缩吞吐量性能，以满足工作负载活动需求。对于性能要求难以预测的尖峰或不可预测的工作负载，或者对于吞吐量以平均峰值吞吐量的 5% 或更低（ average-to-peak比率）的应用程序，弹性吞吐量是最佳吞吐量模式。

由于具有弹性吞吐量的文件系统的吞吐量性能会自动扩缩，因此无需指定或预置吞吐能力来满足应用程序需求。只需为读取或写入的元数据和数据量付费，并且在使用弹性吞吐量时不会累积或消耗突增点数。

**注意**  
虽然 Elastic 吞吐量旨在根据您的吞吐量弹性扩展，但我们建议您通过使用 CloudWatch （计量IOBytes）监控指标和使用情况警报来实施适当的治理，以此作为最佳运营实践的一部分。这有助于保持资源的最优利用率，并确保始终保持在计划的操作参数范围内。有关更多信息，请参阅 [使用 Amazon 监控指标 CloudWatch](monitoring-cloudwatch.md)。

有关每个区域的弹性吞吐量限制的信息，请参阅[您可以提高的 Amazon EFS 配额](limits.md#soft-limits)。

### 预配置吞吐量
<a name="provisioned-throughput"></a>

使用预置吞吐量时，可以指定文件系统可以驱动的吞吐量级别，不受文件系统大小或突增点数余量影响。如果您知道工作负载的性能要求，或者您的应用程序将吞吐量提高到该 average-to-peak比率的 5% 或更多，请使用预配置吞吐量。

对于使用预置吞吐量的文件系统，会针对为文件系统启用的吞吐量向您收费。一个月内计费的吞吐量基于预配置的吞吐量，该吞吐量超过文件系统包含的标准存储的基准吞吐量，不超过 Amazon Web Services 区域中现行的突增基准吞吐量限制。

如果文件系统的基准吞吐量超过预配置的吞吐量，则它会自动使用文件系统允许的突增吞吐量（不超过其中的现行突发基准吞吐量限制）。 Amazon Web Services 区域

有关每个区域的预置吞吐量限制的信息，请参阅[您可以提高的 Amazon EFS 配额](limits.md#soft-limits)。

#### 突增吞吐量
<a name="bursting"></a>

对于需要吞吐量随文件系统存储量扩展的工作负载，建议使用突增吞吐量。使用突增吞吐量时，基本吞吐量与标准存储类中的文件系统大小成正比，每 GiB 存储空间的速率为 KiBps 每 GiB 存储 50。当文件系统消耗的吞吐量低于其基本吞吐量速率时，突增点数就会累积，当吞吐量超过基本速率时，会扣除突增点数。

当有突发积分可用时，文件系统可以在标准存储中将吞吐量提高到 MiBps每个 TiB 100（每 KiBps GiB 50 个），但不 Amazon Web Services 区域 超过限制，最小值为 100。 MiBps如果没有可用的突发积分，则文件系统最多可以驱动 MiBps 每 TiB 存储 50 个，最少为 1。 MiBps

有关每个区域的突增吞吐量的信息，请参阅[General resource quotas that cannot be changed](limits.md#ResourceHardLimits)。

##### 了解 Amazon EFS 突增点数
<a name="efs-burst-credits"></a>

使用突增吞吐量，每个文件系统随时间推移获得基准速率的突增点数，该基准速率由存储在 EFS 标准存储类中的文件系统大小决定。基准速率为 MiBps 每 TiB [TiB] 存储 50 个（相当于每 KiBps GiB 存储 50 个）。Amazon EFS 可将读取操作计量到写入操作速率的三分之一，从而允许文件系统将基准速率提高到 KiBps 每 GiB 读取吞吐量 150，或每 KiBps GiB 写入吞吐量 50。

文件系统可以其基准计量速率持续提高吞吐量。每当文件系统处于不活动状态或吞吐量低于其基准计量速率时，文件系统就会累积突增点数。累计的突增积分使文件系统可以推高吞吐量，使其高于其基准速率。

例如，标准存储类中具有 100 GiB 计量数据的文件系统的基准吞吐量为 5。 MiBps****在 24 小时的非活动状态下，文件系统将获得价值 43.2 万MiB（5 MiB **× 86,400 秒 **=** 432,000 Mi** B）的积分，这些积分可用于以 100 的速度突发持续 72 分钟（432,000 MiB ε 100 MiBps = 72 分钟）。 MiBps ****

如果大于 1 TiB 的文件系统在 50% 的时间内处于不活动状态，该文件系统在其余 50% 的时间内始终可以突增。

 下表提供了突增行为的示例。


****  

| 文件系统大小 | 突增吞吐量 | 基准吞吐量 | 
| --- | --- | --- | 
| 标准存储中有 100 GiB 计量数据 |  [See the AWS documentation website for more details](http://docs.amazonaws.cn/efs/latest/ug/performance.html)  |  [See the AWS documentation website for more details](http://docs.amazonaws.cn/efs/latest/ug/performance.html)  | 
| 标准存储中有 1 TiB 计量数据 |  [See the AWS documentation website for more details](http://docs.amazonaws.cn/efs/latest/ug/performance.html)  |  [See the AWS documentation website for more details](http://docs.amazonaws.cn/efs/latest/ug/performance.html)  | 
| 标准存储中有 10 TiB 计量数据 |  [See the AWS documentation website for more details](http://docs.amazonaws.cn/efs/latest/ug/performance.html)  |  [See the AWS documentation website for more details](http://docs.amazonaws.cn/efs/latest/ug/performance.html)  | 
| 通常，较大的文件系统 |  [See the AWS documentation website for more details](http://docs.amazonaws.cn/efs/latest/ug/performance.html)  |  [See the AWS documentation website for more details](http://docs.amazonaws.cn/efs/latest/ug/performance.html)  | 

**注意**  
Amazon EFS 为所有文件系统提供的计量吞吐量为 1 MiBps ，即使基准速率较低。  
确定基准速率和突增速率时所使用的文件系统大小是通过 [DescribeFileSystems](API_DescribeFileSystems.md) API 操作可用的 `ValueInStandard` 计量大小。  
小于 1 TiB 的文件系统可以获得的积分可达到最高 2.1 TiB 积分余额，对于大于 1 TiB 的文件系统，可达到每 TiB 存储 2.1 TiB 的积分余额。此行为意味着文件系统可以累积足够的点数来持续突增长达 12 小时。

### 对切换吞吐量和更改预置量的限制
<a name="switch-throughput-mode"></a>

可以切换现有文件系统的吞吐量模式并更改吞吐量。但是，在将吞吐量模式切换到预置吞吐量或更改预置吞吐量后，以下操作将在 24 小时内受到限制：
+ 从预置吞吐量模式切换到弹性或突增吞吐量模式。
+ 减少预置吞吐量。