檔案系統效能考量
如果您已執行 HPC 工作負載,則有機會看到「作業」、「區塊大小」、「IOPS」、「輸送量」和「延遲」等詞彙。 您可能已在選擇儲存體時考慮過這些因素。
在此節結束時,您應該能夠確實了解這五個效能因素,以及其如何影響您的 HPC 工作負載。
Operations
字詞 [作業] 指的是主機/機器與檔案系統或磁碟之間的任何活動。
例如,您可能很熟悉這些涉及作業系統與其本機磁碟的作業:
- 建立 (檔案)
- 刪除
- 開盤
- 關閉
- 讀取
- 寫入
- 附加
- Get 屬性
- Set 屬性
- 重新命名
NFS 代表檔案用戶端與伺服器之間的網路層級互動。 注意,這其中有些作業看起來類似本機作業。 但因為 NFS 是網路 API,所以這些網路作業可能涉及多個本機作業。
create
(檔案或連結)mkdir
readdir
或readdirplus
getattr
setattr
lookup
(搜尋目錄中的檔案控制代碼)link
/symlink
/readlink
read
rename
remove
rmdir
write
作業如何影響 HPC 儲存體?
了解作業如何影響您的儲存體系統是很有幫助的。 例如,假設您的 HPC 工作負載會在巢狀目錄結構中建立大量小型檔案。 在此案例中,相較於讀取數個大型循序檔案的工作負載,您工作負載所需的作業數目要更多。
我們將在下一個單元討論這些存取模式。 create
涉及多個作業,因此,您工作負載建立的檔案越多,對效能的影響就越大。
區塊大小
「區塊大小」指的是檔案系統可當成一次作業來讀取或寫入的最小資料大小 (以位元組為單位)。
基於我們的目的,區塊大小也指可在 NFS 用戶端與伺服器之間傳輸的 NFS 資料區塊 (讀取/寫入) 承載大小。
NFS 伺服器與用戶端會交涉區塊大小,並接受彼此皆支援的最大可能大小。 預設設定的範圍介於 4 KB 到 64 KB 之間。 目前可設定的最大值是 1 MB。 個別資料封包的承載不能超過所設定的值。
您可以明確地設定用戶端上的區塊大小。 檢查 HPC 叢集機器上的完整 mount
陳述式來判斷該值。 預設大小已設定。 您未在 mount
陳述中明確設定值。
這兩個用來設定 NFS 區塊大小的引數是 rsize
(讀取大小) 與 wsize
(寫入大小)。
如果您設定小型區塊大小。 或者您的檔案系統選擇具有小型最大區塊大小且您的工作負載包含大型檔案。 效能會因為大型檔案的額外區塊化而受到影響。
IOPS
字詞 [IOPS] 代表 每秒輸入/輸出作業數。 儲存體環境中的 IOPS 數目取決於下列屬性:
- 儲存體媒體類型。 例如,硬碟 (HDD) 與固態硬碟 (SSD)。
- 網路連線能力所導致的延遲。
- 檔案系統所使用的區塊大小。
- 可供檔案系統使用的同時存取數量。
儲存體解決方案具有單一 IOPS 數目。 例如,如果您使用的 Azure 受控磁碟支援 5,000 個 IOPS,則您每秒最多可以有 5,000 個作業。 但是,IOPS 數字是磁碟上所有讀取或寫入作業的 [總數] 上限量值,包括系統額外負荷讀取和寫入。
您的 IOPS 值是您的磁碟或 NAS 環境可支援之可能最大作業數目的準則。
度量通常會細分為「隨機」和「循序」讀取與寫入作業。
- 隨機作業指的是在磁碟或檔案的不同隨機點讀取或寫入資料。 例如,在檔案某處編輯特定位元組範圍。
- 循序作業指的是連續存取檔案,從檔案的開頭讀取。
輸送量
「輸送量」指的是檔案系統可處理的可能總傳輸速率,以每秒位元組數為單位。
若要進行輸送量的基本計算,請將系統的 IOPS 乘以區塊大小。
例如,如果您的磁碟支援 3,000 個 IOPS 且區塊大小為 4K,則可能的輸送量總計為 12 MBps。
此計算讓您能夠對檔案系統的一般效能可能性有基本了解。 但實際輸送量可能有所不同。 其他因素會影響輸送量,包括像是建立或刪除大量小型檔案時所產生的網路額外負荷等事項。
Latency
「延遲」指的是完成作業所需的時間量。 延遲越高,工作負載執行速度較慢的可能性就越高。
單一架構內可能有多個延遲來源,每個都會導致整體延遲效應。
在下列情況下可能會發生檔案系統延遲:
- 用戶端與伺服器之間的網路連線速度緩慢。
- 網路或檔案伺服器上的壅塞是由大量同時要求所造成。
- 由於用戶端與伺服器之間的距離 (例如,跨 WAN) 而導致的自然延遲。
- 檔案伺服器本身的磁碟子系統存取速度緩慢。
延遲並非總是一致或清楚地記載。 您需要執行測試,以判斷 HPC 叢集機器與儲存體端點之間的延遲。
延遲也是個累積的問題。 網路效能可能是一個促成因素,但可能還有其他因素,例如,機器作業系統設定錯誤或工作負載程式碼本身的效率不佳。 上述每個因素都會影響整體延遲。
當您評定檔案系統的實際效能時,延遲是最重要的因素。 較高的延遲會轉譯為較少的 IOPS。 較少的 IOPS 可轉譯為較低的輸送量。
測試和計算基準值
當您針對 HPC 工作負載選擇精確的效能設定時,工作負載本身會有顯著的影響。
Azure 檔案系統供應項目會呈現預期的 IOPS 與輸送量值。 如果您選擇建置自己的 NAS 解決方案,請使用針對每個虛擬機器和受控磁碟 SKU 記載的計量。
您可以使用本機資料中心 HPC 設定作為效能預期的起點。 請記住,雲端解決方案可讓您建立多個執行工作負載的環境。 因此,您在 Azure 中針對每個工作負載可能會有更多彈性。 相比之下,您的本機環境是以不容易 (動態) 擴充的特定容量為基礎所建置。
您可以使用如 ping
、fio
、iozone
與 iometer
等基本工具來判斷 Azure 檔案系統的基準數目。
應用程式分析
您可能有需要大量 I/O 的工作負載,其需要大量 IOPS 與輸送量,才能有效率地執行。 或者,您的工作負載可能會啟動、將程式庫與來源資料讀入記憶體,並以基本的儲存體 I/O 繼續。 可能是前一個清單中的第一個工作負載寫出了其他 HPC 機器必須讀取的中繼資料。 這些動力中的每一個都能為您提供處理儲存體解決方案的方法。 若要確保機器能夠儘快讀取該資料,請著重於減少讀取延遲。 但是,如果您的工作負載會將中繼 (臨時) 資訊寫入磁碟,建議您確定每部 HPC 機器都能快速存取本機磁碟或快速共用的 NAS 解決方案以進行那些寫入。 取決於哪些機器可能需要讀取那些中繼寫入。
建議您投入分析應用程式對於儲存體 I/O 的使用方式。 隨著您的 HPC 叢集變得越來越大且工作負載越來越重,分析也會變得越來越重要。
分析涉及使用在您的 HPC 機器與儲存體環境上執行的工具。 這些工具會回報針對您的儲存體環境執行的作業數量、類型與大小。
分析工作負載會因為可能產生的資料量而變得困難。 iostat
與 sar
等工具會隨著時間推移建立顯著的輸出。 您可能必須分析結果,而且可能必須進一步剖析結果,以產生長條圖。
如果您使用的是 NAS 解決方案,就必須在執行分析期間,從廠商的介面收集統計資料。 接著,將該資訊與 HPC 機器資料相互關聯,以驗證 I/O 模式。
有一些協力廠商分析工具可用來協助進行 I/O 分析,其中有些是由 HPC 應用程式廠商所提供。