我想提升 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 任務,使用建議的調整來設定組態。
相關資訊
彙總基準和高載輸送量
效能秘訣