最佳化 Linux NFS 用戶端

本頁說明如何調整掛接 NetApp Volumes 匯出的 Linux NFS 用戶端。許多工作負載不需要調整。除非您需要更高的處理量、更多 IOPS、降低磁碟區的元資料負載,或特定的快取行為,否則請使用Google Cloud 控制台的掛接指令。

如要進一步瞭解連線步驟、匯出政策設定和掛接指令,請參閱「連線 NFS 用戶端」。

設定用戶端

依下列順序設定 Linux NFS:

  1. 核心並行:掛接檔案系統前,請設定 NFS 要求時段數 (NFSv3 的時段表項目或 NFSv4.1 的工作階段時段)。變更設定後,您必須重新掛接檔案系統。詳情請參閱「Linux NFS 並行」。

  2. 掛接選項:在掛接時選擇通訊協定版本、I/O 大小、TCP 連線計數、鎖定和快取相關選項。詳情請參閱「Linux NFS 掛接選項」。

  3. 預先讀取:在磁碟區掛接後,調整每個掛接點的循序讀取預先擷取。詳情請參閱「Linux NFS read-ahead」。

下表彙整這些設定步驟:

步驟 時間 控制項目 設定位置 指南
1 首次掛接前或重新掛接前 每個 TCP 連線的待處理 RPC 作業;每個工作階段的 NFSv4.1 指令 /etc/sysctl.conf
/etc/modprobe.d/
Linux NFS 並行
2 安裝時 通訊協定、I/O 傳輸大小、連線數、鎖定和屬性快取 mount -o/etc/fstab Linux NFS 掛接選項
3 掛接後 循序讀取預先擷取 /sys/class/bdi/.../read_ahead_kb、udev 規則 Linux NFS 預先讀取

設定如何搭配運作

Linux 核心會定義每個連線的並行數 (上表中的步驟 1)。您可以使用 nconnect 掛接選項 (上表中的步驟 2),從一個用戶端開啟多個 TCP 連線至同一個磁碟區 IP 位址。

單一用戶端的約略並行數計算方式如下:

(slots per connection) x (nconnect value)

每個連至 NetApp Volumes NFS 端點的 TCP 連線,在 NFSv3 中最多支援 128 個待處理作業。NFSv4.1 也會協商工作階段層級的限制;單一 TCP 連線可將有效並行上限設為低於工作階段上限。詳情請參閱「Linux NFS 並行」。

如果多個用戶端掛接相同的磁碟區 IP 位址,請使用較低的每個用戶端配額限制,確保整個用戶端機群的待處理作業總數維持在建議限制內。

您要為每個掛接點設定預先讀取 (上表中的步驟 3)。這取決於 rsize 掛接選項和 Linux 發行版預設值。部分發行版本會使用固定的 128 KiB 預先讀取,不論 rsize 為何,這可能會降低循序讀取效能,直到您調整為止。

掛接選項和核心設定不會變更匯出政策、Kerberos 設定、防火牆需求,或磁碟區服務層級的輸送量和 IOPS 限制。

工作負載起點

下表提供起點。請使用應用程式、Linux 發行版和網路路徑驗證設定。

工作負載 核心並行工作數量上限 掛接選項 預先讀取
一般用途 作業系統預設值 使用 Google Cloud 控制台提供的掛接指示 作業系統預設值
單一 VM,高總處理量/IOPS
  • 每個連線時段資料表上限為 128 個或更少
  • 如果是 NFSv4.1,請將 max_session_slots 設為伺服器上限
  • 如需超過 128 項待處理作業,請使用 nconnect=2 以上版本
  • nconnect=8nconnect=16
  • 調整 rsizewsize
如果工作負載受循序讀取限制,請進行調整
多個用戶端 (EDA/HPC/轉譯設備)
  • 每個用戶端的時段較少 (例如 8 個)
  • 將每個磁碟區 IP 的總運算單元數維持在建議限制以下
  • 通常是 NFSv3
  • 找不到「nconnect
  • 將用戶端分散至多個磁碟區 IP,適用於大容量磁碟區
大型靜態資料集的費用通常較高
Kerberos NFSv4.1
  • 調整 max_session_slots
  • 請勿依賴 nconnect 評估成效
  • sec=krb5krb5ikrb5p
  • 不要與「nconnect」合併
視連續讀取需求而定
不含諮詢鎖的 NFSv3 作業系統預設值 視需求

評估及驗證調整結果

更新用戶端設定後,請完成下列步驟:

  • 在用戶端執行 nfsiostatmountstatsnfsstat。詳情請參閱「監控效能」。

  • 成效基準比較結果。 這些基準測試在 Red Hat Enterprise Linux 9 上進行部分 NFSv3 測試時,使用了 nconnect=16rsize=65536wsize=65536

調整用戶端可提高虛擬機器 (VM) 磁碟區的網路路徑使用效率。磁碟區容量、服務等級、儲存集區限制和 Compute Engine VM 大小可能仍會限制結果。

後續步驟