

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

# 性能提示
<a name="performance-tips"></a>

使用 Amazon f FSx or Lustre 时，请记住以下性能提示。有关服务限制的信息，请参阅[Amazon for Lustre FSx 的服务配额](limits.md)。
+ **平均 I/O 大小** — 由 FSx 于 Amazon for Lustre 是一个网络文件系统，因此每个文件操作都要在客户端和 Amazon FSx for Lustre 之间往返，从而产生很小的延迟开销。由于每次操作的延迟，总体吞吐量通常会随着平均 I/O 大小的增加而增加，因为开销会分摊到较大的数据量上。
+ **请求模型** — 通过启用对文件系统的异步写入，待处理的写入操作将在异步写入 Amazon for Lustre 之前在 Amazon EC2 实例上 FSx 进行缓冲。异步写入通常具有较低的延迟。在执行异步写入时，内核使用额外内存进行缓存。启用同步写入功能的文件系统向 Amazon 发出 Lustre FSx 的同步请求。每项操作都要在客户和 Amazon FSx for Lustre 之间往返。
**注意**  
您选择的请求模型将在一致性（如果您使用多个 Amazon EC2 实例）和速率之间进行取舍。
+ **限制目录大小** — 要在 Lustre 文件系统的 Persit FSx ent 2 上实现最佳元数据性能，请将每个目录的文件限制在 10 万以下。限制目录中的文件数可以减少文件系统在父目录上获取锁定所需的时间。
+ **Amazon EC2 实例** – 执行大量读取和写入操作的应用程序可能比不执行这些操作的应用程序需要更多的内存或计算容量。在为计算密集型工作负载启动 Amazon EC2 实例时，应选择具有您的应用程序需要的这些资源量的实例类型。Amazon FSx for Lustre 文件系统的性能特征不依赖于 Amazon EBS 优化实例的使用。
+ **建议调整客户端实例以获得最佳性能**

  1. 对于内存超过 64 GiB 的客户端实例类型，我们建议应用以下调整：

     ```
     sudo lctl set_param ldlm.namespaces.*.lru_max_age=600000
     sudo lctl set_param ldlm.namespaces.*.lru_size=<100 * number_of_CPUs>
     ```

  1. 对于超过 64 个 vCPU 核心的客户端实例类型，我们建议应用以下调整：

     ```
     echo "options ptlrpc ptlrpcd_per_cpt_max=32" >> /etc/modprobe.d/modprobe.conf
     echo "options ksocklnd credits=2560" >> /etc/modprobe.d/modprobe.conf
                 
     # reload all kernel modules to apply the above two settings
     sudo reboot
     ```

     挂载客户端后，需要应用以下调整：

     ```
     sudo lctl set_param osc.*OST*.max_rpcs_in_flight=32
     sudo lctl set_param mdc.*.max_rpcs_in_flight=64
     sudo lctl set_param mdc.*.max_mod_rpcs_in_flight=50
     ```

  1. 要优化目录列表 (ls) 的性能，需要进行以下调整：

     ```
     sudo lctl set_param llite.*.statahead_max=512
     sudo lctl set_param llite.*.statahead_agl=1
     if sudo lctl get_param llite.*.statahead_xattr > /dev/null 2>&1; then
         sudo lctl set_param llite.*.statahead_xattr=1
     else
         echo "Warning: Xattr statahead is not supported on this Lustre client. Please upgrade to the latest Lustre 2.15 client to apply this tuning"
     fi
     ```

  请注意，已知 `lctl set_param` 重启后不会继续有效。由于无法从客户端侧永久设置这些参数，因此建议实施启动 cron 作业，使用推荐的调整来设置配置。
+ **工作负载平衡 OSTs** — 在某些情况下，您的工作负载并不能推动文件系统所能提供的聚合吞吐量（ MBps 每 TiB 存储 200 个）。如果是这样，您可以使用 CloudWatch 指标来排除性能是否受到工作负载 I/O 模式不平衡的影响。要确定这是否是造成这种情况的原因，请查看 Amazon FSx for Lustre 的最大 CloudWatch 指标。

  在某些情况下，此统计数据显示的负载等于或大于 240 MBps 的吞吐量（单个 1.2 TiB 的 A FSx mazon for Lustre 磁盘的吞吐容量）。在这种情况下，您的工作负载不会均匀分布在磁盘上。在这种情况下，您可以使用 `lfs setstripe` 命令修改工作负载最常访问的文件的条带化。为了获得最佳性能，请在 OSTs 构成您的所有文件系统中对吞吐量要求很高的文件进行条带化。

  如果您的文件是从数据存储库导入的，则可以采用另一种方法将高吞吐量文件均匀地分散在数据存储 OSTs库中。为此，您可以在创建下一个 Amazon FSx for Lustre 文件系统时修改该`ImportedFileChunkSize`参数。

  例如，假设您的工作负载使用 7.0-TiB 文件系统（由 6x 1.17-TiB 组成 OSTs），并且需要在 2.4 GiB 文件之间实现高吞吐量。在这种情况下，您可以将该`ImportedFileChunkSize`值设置为，`(2.4 GiB / 6 OSTs) = 400 MiB`以便文件在文件系统中均匀分布 OSTs。
+ **Lustre元数据 IOPS 客户端** — 如果您的文件系统指定了元数据配置，我们建议您安装具有以下操作系统版本之一的 Lustre 2.15 客户端或 Lustre 2.12 客户端：亚马逊 Linux 2023；亚马逊 Linux 2；Red Linux 8.9、8.10 或 9. Hat/Rocky x；CentOS 8.9 或 8.10；带有 6.2、6.5 或 6.8 内核的 Ubuntu 22\$1；或 Ubuntu 20。

## Intelligent-Tiering 性能注意事项
<a name="intelligent-tiering-performance-considerations"></a>

以下是使用 Intelligent-Tiering 存储类别处理文件系统时一些重要的性能注意事项：
+ 由于智能分层存储层的延迟更高，读取较小 I/O 大小数据的工作负载需要更高的并发性，并且需要更多的请求成本才能实现与使用大容 I/O 量的工作负载相同的吞吐量。我们建议将 SSD 读取缓存配置得足够大，以便在处理较小的 IO 大小时支持更高的并发性和吞吐量。
+ 客户端使用 Intelligent-Tiering 文件系统所能达到的最大磁盘 IOPS 值，取决于工作负载的具体访问模式以及是否预置 SSD 读取缓存。对于具有随机访问权限的工作负载，如果数据缓存在 SSD 读取缓存中，客户端通常能实现远高于未缓存数据的 IOPS 性能。
+ Intelligent-Tiering 存储类别支持预读功能，以优化顺序读取请求的性能。我们建议尽可能按顺序配置数据访问模式，以便预取数据并提升性能。