由 HPC 與 AI 創新實驗室的 Mario Gallegos 於 2019 年 10 月撰寫的文章
用戶端節點數 |
16 |
用戶端節點 |
C6320 |
每個用戶端節點的處理器數 |
2 x Intel(R) Xeon(R) Gold E5-2697v4 18 核心 @ 2.30GHz |
每個用戶端節點的記憶體數 |
12 x 16GiB 2400 MT/s RDIMM |
BIOS |
2.8.0 |
作業系統核心 |
3.10.0-957.10.1 |
GPFS 版本 |
5.0.3 |
./iozone -i0 -c -e -w -r 8M -s 128G -t $Threads -+n -+m ./threadlist
./iozone -i1 -c -e -w -r 8M -s 128G -t $Threads -+n -+m ./threadlist
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --mca btl_openib_allow_ib 1 --mca pml ^ucx --oversubscribe --prefix /mmfs1/perftest/ompi /mmfs1/perftest/lanl_ior/bin/ior -a POSIX -v -i 1 -d 3 -e -k -o /mmfs1/perftest/tst.file -w -s 1 -t 8m -b 128G
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --mca btl_openib_allow_ib 1 --mca pml ^ucx --oversubscribe --prefix /mmfs1/perftest/ompi /mmfs1/perftest/lanl_ior/bin/ior -a POSIX -v -i 1 -d 3 -e -k -o /mmfs1/perftest/tst.file -r -s 1 -t 8m -b 128G
./iozone -i2 -c -O -w -r 4K -s 32G -t $Threads -+n -+m ./threadlist
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --prefix /mmfs1/perftest/ompi --mca btl_openib_allow_ib 1 /mmfs1/perftest/lanl_ior/bin/mdtest -v -d /mmfs1/perftest/ -i 1 -b $Directories -z 1 -L -I 1024 -y -u -t -F
執行緒數目 |
每個執行緒的目錄數目 |
檔案總數 |
1 |
2048 |
2,097,152 |
2 |
1024 |
2,097,152 |
4 |
512 |
2,097,152 |
8 |
256 |
2,097,152 |
16 |
128 |
2,097,152 |
32 |
64 |
2,097,152 |
64 |
32 |
2,097,152 |
128 |
16 |
2,097,152 |
256 |
8 |
2,097,152 |
512 |
4 |
2,097,152 |
1024 |
2 |
2,097,152 |
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --prefix /mmfs1/perftest/ompi --mca btl_openib_allow_ib 1 /mmfs1/perftest/lanl_ior/bin/mdtest -v -d /mmfs1/perftest/ -i 1 -b $Directories -z 1 -L -I 1024 -y -u -t -F -w 4K -e 4K
圖 6: 中繼資料效能 - 小型檔案 (4K)
系統在 Stat 和移除作業方面獲得非常好的結果,分別以 7.7M op/s 和 1M op/s 達到 128 個執行緒的峰值。移除操作達到最大 37.3K op/s,建立操作則以 55.5K op/s 達到峰值,兩者皆在 512 個執行緒上。統計數據和移除操作具有更多可變性,但一旦達到峰值,性能不會低於統計數據的 4M op/s 和移除的 200K op/s。建立和讀取的變化較少,並會隨著執行緒數目增加而持續成長。
由於這些數字適用於具有單個 ME4024 的中繼資料模組,因此每個額外的 ME4024 陣列的性能都會提高,但我們不能只假設每個操作都線性增加。除非完整檔案位於該檔案的 inode 內部,否則 ME4084 上的資料目標將用於儲存 4K 檔案,使效能有所限制。由於 inode 的大小為 4KiB,但仍需要儲存中繼資料,因此只有約 3 KiB 的檔案可裝入其中,且任何大於該大小的檔案皆會使用資料目標。
此測試與以前的測試幾乎完全相同,只是使用了 3KiB 的小檔。主要區別在於這些檔完全適合 inode。因此不會使用儲存節點及其 ME4084,透過僅使用 SSD 媒體進行儲存和減少網路存取來提高整體速度。
我們使用下列命令執行效能指標,其中「Threads」是使用之執行緒數量的變數 (1 到 512,以二的次方增加),而「my_hosts.$Threads」則是將每個執行緒分配到不同節點上的對應檔案,使用循環制將執行緒同質分散到 16 個運算節點上。
mpirun --allow-run-as-root -np $Threads --hostfile my_hosts.$Threads --prefix /mmfs1/perftest/ompi --mca btl_openib_allow_ib 1 /mmfs1/perftest/lanl_ior/bin/mdtest -v -d /mmfs1/perftest/ -i 1 -b $Directories -z 1 -L -I 1024 -y -u -t -F -w 3K -e 3K
圖 7:中繼資料效能 - 小型檔案 (3K)
系統在 Stat 和讀取操作方面獲得非常好的結果,分別以 8.29M op/s 和 5.06M op/s 達到 256 個線程的峰值。移除作業在 128 個執行緒時達到最大 609K op/秒,而建立作業在 512 個執行緒時達到 78K op/s 的峰值。統計資訊和讀取操作比創建和刪除操作具有更大的可變性。刪除會導致兩個較高線程點的性能略有下降,這表明 128 個線程后的持續性能將略高於 400K op/s。建立持續增加最多 512 個執行緒,但看起來正在達到一個穩定期,因此最大效能可能仍低於 100K op/s。
由於此類小檔完全存儲在基於 SSD 的元數據模組上,因此需要卓越小檔性能的應用程式可以使用一個或多個可選的高要求元數據模組來提高小檔性能。但是,按照當前標準,適合 inode 的檔很小。此外,由於中繼資料目標使用的 RAID1 固態硬碟相對較小 (最大大小為 19.2 TB),因此與儲存節點相比,容量會受到限制。因此,必須注意避免填滿元數據目標,這可能會導致不必要的故障和其他問題。
在 PixStor 功能中,通過高級分析監控文件系統對於大大簡化管理至關重要,有助於主動或被動地發現問題或潛在問題。接下來,我們將簡要回顧其中的一些功能。
圖 8 顯示了基於文件系統容量的有用資訊。左側是已使用的檔案系統總空間,以及根據使用的檔案系統容量排名前十的使用者。在右側,一個歷史視圖,其中包含多年來使用的容量,然後是使用的十大檔類型和前十個檔集,兩者都基於使用的容量,格式類似於帕累托圖表(沒有累積總計的行)。有了這些資訊,就很容易發現使用者獲得的不僅僅是他們在文件系統中的公平份額、容量使用趨勢,以協助做出有關未來容量增長的決策、哪些檔佔用了大部分空間或哪些專案佔用了大部分容量。
圖 8: PixStor 分析 - 容量視圖
圖 9 提供了一個檔計數檢視,其中包含兩種非常有用的問題查找方法。螢幕的前半部分包含餅圖中的前十名使用者,前十名檔類型和前十名檔集(想想專案),格式類似於帕累托圖(沒有累積總數的線條),所有這些都基於文件數。此資訊可用於回答一些重要問題。例如,哪些使用者通過創建太多檔來獨佔文件系統,哪種類型的檔正在創建元數據噩夢,或者哪些專案正在使用大部分資源。
下半部分有一個直方圖,其中包含檔大小的文件數量(頻率),使用 5 個不同檔大小的類別。這可用於瞭解整個文件系統中使用的檔大小,這些檔大小與檔類型相協調,可用於確定壓縮是否有益。
圖 9: PixStor 分析 - 檔案計數檢視
當前的解決方案能夠提供相當好的性能,無論使用空間如何(因為系統是以分散模式格式化的),預計性能都是穩定的,如 表 4 所示。此外,隨著新增更多儲存節點模組,解決方案的容量和效能也會以線性增長,而選用的高需求中繼資料模組預期也能提供類似的效能提升。此解決方案可為 HPC 客戶提供非常可靠的平行檔案系統,許多前 500 大 HPC 叢集皆正在使用。此外,它還提供卓越的搜索功能、高級監控和管理,並添加可選閘道,允許通過 NFS、SMB 等無處不在的標準協定與任意數量的用戶端共用檔。
表4 尖峰與持續效能
|
尖峰效能 |
持續效能 |
||
寫入 |
讀取 |
寫入 |
讀取 |
|
大型循序 N 用戶端至 N 檔案 |
16.7 GB/秒 |
23 GB/秒 |
16.5 GB/秒 |
20.5 GB/秒 |
大型循序 N 用戶端至單一共用檔案 |
16.5 GB/秒 |
23.8 GB/s |
16.2 GB/秒 |
20.5 GB/秒 |
隨機小型區塊 N 用戶端至 N 檔案 |
15.8KIOps |
20.4KIOps |
15.7 KIOps |
20.4KIOps |
中繼資料建立空白檔案 |
169.4K IOps |
127.2K IOps |
||
中繼資料統計空白檔案 |
11.2M IOps |
3.3 M IOps |
||
中繼資料讀取空白檔案 |
4.8M IOps |
2.4M IOps |
||
中繼資料移除空白檔案 |
194.2K IOps |
144.8K IOps |
||
中繼資料建立 4KiB 檔案 |
55.4K IOps |
55.4K IOps |
||
中繼資料統計 4KiB 檔案 |
6.4M IOps |
4M IOps |
||
中繼資料讀取 4KiB 檔案 |
37.3K IOps |
37.3K IOps |
||
中繼資料移除 4KiB 檔案 |
1M IOps |
219.5K IOps |
由於解決方案的設計是搭配 Cascade Lake CPU 和更快速的 RAM 一起推出,因此一旦系統擁有最終組態,也會進行一些效能檢查。同時也需要測試選用高需求中繼資料模組,至少搭載 2 個 ME4024 和 4KiB 檔案,以更清楚地記錄在涉及資料目標時,中繼資料效能的擴充方式。此外也會測量閘道節點的效能,並將相關的檢查結果報告在新部落格或白皮書中。最後,我們計劃針對更多解決方案元件進行測試和發佈,以提供更多功能。