如何提升 FSx for Lustre 檔案系統的效能?

2 分的閱讀內容
0

我想提升 Amazon FSx for Lustre 檔案系統的效能。

解決方法

增加檔案系統容量

FSx for Lustre 檔案系統支援的輸送量與其儲存容量成正比。

輸送容量 = 儲存容量 (TiB)* 每單位儲存輸送量 (MBps)

例如,具備 4.8 TiB 儲存容量和每 TiB 50 Mbps 每單位儲存輸送量的持久性檔案系統可提供:

  • 彙總基準磁碟輸送量為 240 MBps
  • 高載磁碟輸送量為 1.152 Gbps

如果物件儲存目標 (OST) 幾乎已滿,當您讀取或寫入檔案系統時,檔案系統可能會當機或卡住。在這種情況下,請增加檔案系統的容量。

對不平衡的 OST 進行疑難排解

FSx for Lustre 是分散式檔案系統,由將資料儲存在檔案系統中的作業系統所組成。若要查看每個 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

此外,請調整條帶組態以釋放空間並提升效能。您可以設定漸進式檔案版面配置 (PFL) 組態,允許檔案版面配置隨大小而改變。例如,若要指定版面配置組態,請使用 lfs setstripe 命令和 -E 選項,為不同大小的檔案指定版面配置元件:

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 年前