本頁面詳細說明如何提升 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 OS6 TiB 工作集
使用
nconnect
值 16 時,成效比未啟用時高出五倍。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
參數都會增加五個,直到達到最大輸送量為止。
後續步驟
瞭解儲存空間集區。