如何提高我的 FSx for Lustre 文件系统的性能?

2 分钟阅读
0

我想提高我的 Amazon FSx for Lustre 文件系统的性能。

解决方法

增加文件系统大小

FSx for Lustre 文件系统支持的吞吐量与其存储容量成正比。

吞吐能力 = 存储容量 (TiB)*每单位存储吞吐量 (MBps)

例如,一个具有 4.8 TiB 存储容量和每存储单元每 TiB 吞吐量 50 MBps 的永久文件系统可提供:

  • 240 MBps 的合计基准磁盘吞吐量
  • 1.152 GiBps 的突发磁盘吞吐量

如果对象存储目标 (OST) 几乎已满,则在您读取或写入文件系统时,文件系统可能会挂起或卡住。在这种情况下,请增加文件系统的大小。

对不平衡的 OST 进行故障排除

FSx for Lustre 是一个分布式文件系统,由在文件系统中存储数据的 OST 组成。要查看 OST 的数量和每个 OST 的大小,请从客户端运行以下命令:

$lfs df -h

如果它是一个不平衡的文件系统,则输出应看起来类似于以下内容:

UUID                 bytes   Used  Available Use%  Mounted on  
testfs-MDT0000_UUID  4.4G   214.5M   3.9G     4%   /mnt/testfs[MDT:0]  
testfs-MDT0001_UUID  4.4G   144.5M   4.0G     4%   /mnt/testfs[MDT:1]  
testfs-OST0000_UUID  2.0T   751.3G   1.1G    37%   /mnt/testfs[OST:0]  
testfs-OST0001_UUID  2.0T   755.3G   1.1G    37%   /mnt/testfs[OST:1]  
testfs-OST0002_UUID  2.0T     1.9T  55.1M    99%   /mnt/testfs[OST:2] <-  
testfs-OST0003_UUID  2.0T   751.3G   1.1G    37%   /mnt/testfs[OST:3]  
testfs-OST0004_UUID  2.0T   747.3G   1.1G    37%   /mnt/testfs[OST:4]  
testfs-OST0005_UUID  2.0T   743.3G   1.1G    36%   /mnt/testfs[OST:5]

filesystem summary: 11.8T     5.5T   5.7T    46%  /mnt/lustre

单个 OST 的可用存储空间可能相对小于或大于其他 OST。发生这种情况是因为以下情况之一:

  • 添加了新的 OST,但优化尚未完成。
  • 默认条带数为一,将文件存储在单个 OST 上了。

如果多个 OST 已满,请增加文件系统的存储容量。如果只有少量 OST 已满,请重新平衡 OST

此外,请调整条带配置以释放空间并提高性能。您可以设置一个渐进式文件布局 (PFL) 配置,允许文件的布局随大小变化。例如,要指定布局配置,请使用带有 -E 选项的 lfs setstripe 命令为不同大小的文件指定布局组件:

lfs setstripe -E 100M -c 1 -E 10G -c 8 -E 100G -c 16 -E -1 -c 32 /mountname/directory

注意:

  • PFL 可能无助于处理较小的文件。
  • 您可以使用 lfs setstripe 命令仅为新文件和新文件夹设置条带配置。您必须使用 lfs migrate 命令来为现有文件或文件夹设置条带配置。
  • 顺序读取可能无法从条带配置中受益。

为计算密集型工作负载使用更大的实例

对于密集型工作负载,请选择拥有更大内存或计算能力的实例。

以下是一些用于调整实例的最佳实践:

1.    调整大型客户端实例以获得最佳性能:

对于内存超过 64 GiB 的客户端实例类型,请应用以下调整措施:

lctl set_param ldlm.namespaces.*.lru_max_age=600000

对于 CPU 内核数超过 64 个的客户端实例类型,请应用以下调整措施:

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

2.    安装客户端后,进行以下调整:

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

注意:

lctl set_param 命令在重启后不会继续存在。您不能在客户端永久设置这些参数。因此,最佳实践是设置一个 boot cron 作业,以便在重启后使用推荐的调整来设置配置。

相关信息

汇总基准吞吐量和突发吞吐量

性能提示

AWS 官方
AWS 官方已更新 1 年前