Amazon EFS 性能提示 - Amazon Elastic File System
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Amazon EFS 性能提示

在使用 Amazon EFS 时,请记住以下性能提示:

平均 I/O 大小

Amazon EFS 的分布式特性实现了高水平的可用性、持久性和可扩展性。这种分布式架构使得每次文件操作只产生很小的延迟开销。由于这种每次操作的延迟,总吞吐量通常会随着平均 I/O 大小增加而增加,因为开销在大量数据之间分摊。

同步连接

您最多可以将 Amazon EFS 文件系统挂载到数千个 Amazon EC2 和其他Amazon并发计算实例。如果可以跨多个实例并行执行应用程序,则您可以跨计算实例在文件系统上推动总计更高的吞吐量水平。

请求模型

通过启用对文件系统的异步写入,待处理的写入操作先在 Amazon EC2 实例上缓冲,然后才异步写入 Amazon EFS。异步写入通常具有较低的延迟。在执行异步写入时,内核使用额外内存进行缓存。启用了同步写入的文件系统或使用绕开缓存选项 (如 O_DIRECT) 打开文件的文件系统将向 Amazon EFS 发出同步请求。每个操作都将在客户端和 Amazon EFS 之间往返一次。

注意

您选择的请求模型将在一致性(如果您使用多个 Amazon EC2 实例)和速率之间进行取舍。

NFS 客户端挂载设置

确认您使用的是推荐的挂载选项,如挂载 EFS 文件系统其他挂载注意事项。在 Amazon EC2 实例上挂载文件系统时,Amazon EFS 支持网络文件系统版本 4.0 和 4.1 (NFSv4) 协议。NFSv4.1 提供更好的性能。运行 macOS 大苏尔的 Amazon EC2 Mac 实例仅支持 NFSv4.0。

注意

在挂载文件系统时,可能需要将 NFS 客户端的读取和写入缓冲区的大小提高到 1 MB。

优化 NFSread_ahead_kbsize

注意

对于 Linux 内核版本 5.4.*,Linux NFS 客户端使用默认的read_ahead_kb值为 128 KB。我们建议将此值增加到 15 MB。

NFSread_ahead_kb属性定义了 Linux 内核在顺序读取操作期间提前读取或预取的千字节数。对于 5.4.* 之前的 Linux 内核版本,read_ahead_kb值是通过乘以NFS_MAX_READAHEAD的值为rsize(客户端配置的读缓冲区大小在装载选项中设置)。使用推荐的挂载选项,此公式将设置read_ahead_kb设置为 15 MB。但是,从 Linux 内核版本 5.4.* 开始,Linux NFS 客户端使用默认的read_ahead_kb值为 128 KB。

我们建议将read_ahead_kb大小设置为 15 MB。

亚马逊 EFS 装载帮助程序可在amazon-efs-utils版本 1.30.2 及更高版本,自动修改read_ahead_kb等于 15 *rsize(或 15 MB),在挂载文件系统后。

对于 Linux 内核 5.4 或更高版本,如果不使用装载帮助程序装载文件系统,则可以考虑手动设置read_ahead_kb设置为 15 MB 以提高性能。在挂载文件系统后,请使用以下命令执行此操作。将替换为:

  • 前读值 kb以千字节为单位的所需大小

  • EFS 安装点与文件系统的挂载点一起使用。

sudo bash -c "echo read-ahead-value-in-kb > /sys/class/bdi/0:$(stat -c '%d' efs-mount-point)/read_ahead_kb"

以下示例设置read_ahead_kb大小设置为 15 MB。

sudo bash -c "echo 15000 > /sys/class/bdi/0:$(stat -c '%d' efs)/read_ahead_kb"

优化 Amazon EC2 实例

执行大量读取和写入操作的应用程序可能比不执行这些操作的应用程序需要更多的内存或计算容量。在启动 Amazon EC2 实例时,请选择具有您的应用程序需要的这些资源量的实例类型。Amazon EFS 文件系统的性能特征不依赖于使用 EBS 优化的实例。

加密和性能

Amazon EFS 支持两种形式的加密:传输中加密和静态加密。选择为文件系统启用一种或两种类型的加密对 I/O 延迟和吞吐量的影响很小。

有关 Amazon EFS 对通用性能模式中总文件系统吞吐量、每实例吞吐量和每秒操作数的配额的信息,请参阅Amazon EFS 配额和限制