最佳化效能

本頁面詳細說明如何提升 Google Cloud NetApp Volumes 效能。

事前準備

變更數量以提升成效前,請先參閱成效注意事項

調整音量設定

你可以調整下列音量設定,提升音訊品質:

  • 增加磁碟區容量:您可以增加 Premium、Extreme 或 Standard 服務等級磁碟區的容量,提高磁碟區可達到的最大輸送量。如果是 Flex 服務等級的磁碟區,請改為增加儲存空間集區容量。

  • 升級服務層級:您可以將 Premium 服務層級的磁碟區升級至 Extreme 服務層級,以提升輸送量。建議您將磁碟區指派給服務等級不同的其他儲存空間集區。

增加磁碟區容量和升級服務層級都不會中斷磁碟區上正在處理的 I/O 工作負載,也不會以任何方式影響磁碟區存取權。

調整用戶端

您可以在用戶端調整下列設定,以提升效能:

  • 將用戶端放在同一位置:延遲結果會直接受到用戶端功能和位置的影響。為獲得最佳結果,請將用戶端放在與磁碟區相同的區域,或盡量靠近磁碟區。從每個區域的用戶端測試延遲,藉此測試區域影響,並使用延遲時間最短的區域。

  • 設定 Compute Engine 網路頻寬:Compute Engine 虛擬機器的網路功能取決於使用的執行個體類型。一般來說,較大的執行個體可以提高網路總處理量。建議您選取具備適當網路頻寬功能的用戶端虛擬機器,選取 Google 虛擬 NIC (gVNIC) 網路介面,並啟用 Tier_1 效能。詳情請參閱 Compute Engine 說明文件中的網路頻寬一節。

  • 開啟多個 TCP 工作階段:如果應用程式需要高輸送量,最終可能會飽和單一傳輸控制通訊協定 (TCP),而這是正常 NFS 和 SMB 工作階段的基礎。如要解決這類問題,請增加 NFS 和 SMB 連線使用的 TCP 工作階段數量。

    請使用下列其中一個分頁,根據用戶端類型調整用戶端:

    Linux

    傳統上,NFS 用戶端會為共用儲存端點的所有 NFS 掛接檔案系統,使用單一 TCP 工作階段。使用nconnect掛接選項,最多可將支援的 TCP 工作階段數量增加至 16 個。

    建議您按照下列最佳做法調整 Linux 用戶端類型,充分運用 nconnect

    • 使用 nconnect 增加 TCP 工作階段數量:每個額外的 TCP 工作階段都會新增 128 個待處理要求的佇列,進而提升潛在並行數。

    • 設定 sunrpc.max_tcp_slot_table_entries 參數sunrpc.max_tcp_slot_table_entries 是連線層級的調整參數,您可以修改這個參數來控管效能。建議您將 sunrpc.max_tpc_slot_table_enteries 設為每個連線 128 個要求,且單一專案中連線至 NetApp Volumes 的所有 NFS 用戶端,不得超過 10,000 個運算單元。如要設定 sunrpc.max_tcp_slot_table_entries 參數,請將參數新增至 /etc/sysctl.conf 檔案,然後使用 sysctl -p 指令重新載入參數檔案。

    • 將每個工作階段支援的最大值調整為 180:與 NFSv3 不同,NFSv4.1 用戶端會在工作階段中定義用戶端與伺服器之間的關係。雖然 NetApp Volumes 透過 NFSv3 支援每個連線最多 128 個未完成的要求,但 NFSv4.1 每個工作階段最多只能有 180 個未完成的要求。Linux NFSv4.1 用戶端預設為每個工作階段 64 max_session_slots,但您可以視需要調整這個值。建議將每個工作階段支援的最大值變更為 180。

      如要調整 max_session_slots,請在 /etc/modprobe.d 下建立設定檔。請確認沒有引號 (" ") 出現在同一行。否則,該選項不會生效。

      $ echo "options nfs max_session_slots=180" > /etc/modprobe/d/nfsclient/conf
      $ reboot
      
      Use the systool -v -m nfs command to see the current maximum in use
      by the client. For the command to work, at least one NFSv4.1 mount
      must be in place.
      
      $ systool -v -v nfs
      {
      Module = "nfs"
      
      Parameters:
      
      Max_session_slots = "63" <-
      
      }
      

    下方的 NFS nconnect 比較圖表顯示使用 nconnect 設定對 NFS 工作負載的影響。這項資訊是使用 Fio 擷取,設定如下:

    • 100% 讀取工作負載

    • 針對單一磁碟區的 8 KiB 區塊大小

    • n2-standard-32 虛擬機器,使用 Red Hat 9 OS

    • 6 TiB 工作集

    使用 nconnect 值 16 時,成效比未啟用時高出五倍。

    使用單一 Red Hat 9 虛擬機器 (區塊大小為 8 KiB) 比較 NFS nconnect。

    Windows

    如果是 Windows 用戶端,用戶端可以使用 SMB 多重通道搭配接收端調整 (RSS) 開啟多個 TCP 連線。如要達成這項設定,虛擬機器必須分配到支援 RSS 的網路介面卡。建議將 RSS 設為四個或八個值,但任何大於一的值都應能提高輸送量。

    下圖顯示使用 RSS 設定對 SMB 工作負載造成的差異。這項資訊是使用 Fio 擷取,設定如下:

    • 100% 讀取工作負載

    • 針對單一磁碟區的 8 KiB 區塊大小

    • 執行 Windows 2022 作業系統的單一 n2-standard-32 虛擬機器

    • 6 TiB 工作集

    執行八項作業時,只有 SMB 用戶端 RSS 選項在測試執行之間變更。與使用值 1 相比,使用 RSS 值 4、8 和 16 時,效能提升了兩倍。每個 RSS 執行個體都執行了九次,numjobs 參數為 8。每次執行時,iodepth 參數都會增加五個,直到達到最大輸送量為止。

    單一 Windows 2022 VM 的 SMB RSS 比較 (區塊大小為 8 KiB)

後續步驟

瞭解儲存空間集區