本頁面詳細說明如何提升 Google Cloud NetApp Volumes 效能。
事前準備
變更數量以提升成效前,請先參閱成效注意事項。
調整音量設定
你可以調整下列音量設定,提升音訊品質:
增加磁碟區容量:您可以增加 Premium、Extreme 或 Standard 服務等級磁碟區的容量,提高磁碟區可達到的最大輸送量。如果是服務等級為 Flex 的磁碟區,請改為增加儲存空間集區的容量。
升級服務層級:您可以將 Premium 服務層級的磁碟區升級至 Extreme 服務層級,以提升輸送量。建議您將磁碟區指派給服務等級不同的其他儲存空間集區。
使用手動 QoS 集區指派較高的總處理量:您可以降低總處理量需求較低的大容量指派總處理量,並將需要較高效能的小容量總處理量提高至可用集區總處理量。
增加磁碟區容量和升級服務層級都不會中斷磁碟區上正在處理的 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 支援每個連線最多 128 個未完成的要求 (使用 NFSv3),但 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
參數都會增加五,直到達到最大輸送量為止。
手動 QoS
NetApp Volumes 的手動服務品質 (QoS) 可讓您調整磁碟區效能,以符合工作負載需求並控管儲存空間費用。
手動 QoS 具有下列優點:
成本最佳化:在儲存集區容量內調整磁碟區效能,以最佳化雲端成本。
即時調整處理量:調整處理量時不需停機。
降低災難復原成本:降低複製磁碟區的服務品質,以減少目的地集區的災難復原成本。
提升複製或快取效能:提高配置大小較小的複製或快取磁碟區效能。
彈性工作負載管理:將較大的儲存空間集區做為多個工作負載的容器,並視需要調整每個磁碟區的輸送量。
注意事項
您可以使用 Google Cloud CLI、NetApp Volumes API 或 Terraform 管理手動 QoS。系統不支援 Google Cloud 控制台。
手動 QoS 支援「Standard」、「Premium」和「Extreme」服務等級,但不支援「Flex」服務等級。
設定手動 QoS 限制
對於手動 QoS 儲存空間集區中的磁碟區,您可以分別設定處理量和容量。手動 QoS 集區中所有磁碟區的整體處理量,會受到集區總處理量的限制。集區處理量取決於分得的容量和服務等級。舉例來說,40 TiB 的 Premium 集區每 TiB 可達到 64 MiBps,因此最大處理量為 2,560 MiBps;200 TiB 的 Extreme 集區則可支援總處理量達 25,600 MiBps 的磁碟區。
手動 QoS 集區設定完成後,即可為集區內的每個磁碟區設定所需的輸送量限制。單一磁碟區的總處理量上限為 4.5 GiBps,大容量磁碟區則為 30 GiBps。
集區和磁碟區指令或 API 會顯示集區的可用和已指派處理量值,協助您管理總處理量。如要建立手動 QoS 集區並定義磁碟區輸送量,請參閱「建立儲存空間集區」和「建立磁碟區」。
建立儲存空間集區
gcloud
使用手動 QoS 建立儲存空間集區:
gcloud netapp storage-pools create POOL_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --capacity=CAPACITY \ --service-level=SERVICE_LEVEL \ --qos-type=QOS_TYPE \ --network=name=NETWORK_NAME
取代下列資訊:
POOL_NAME
:要建立的集區名稱。每個地點的集區名稱不得重複。PROJECT_ID
:要在其中建立儲存集區的專案名稱。LOCATION
:要建立集區的位置。CAPACITY
:集區容量 (以 GiB 為單位)。SERVICE_LEVEL
:儲存空間集區的服務等級,包括 Standard、Premium 或 Extreme。QOS_TYPE
:儲存空間集區的 QoS 類型:自動或手動。NETWORK_NAME
:虛擬私有雲的名稱。
編輯儲存空間集區
gcloud
編輯現有的自動 QoS 儲存空間集區,改用手動 QoS:
gcloud netapp storage-pools update POOL_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --qos-type=QOS_TYPE
取代下列資訊:
POOL_NAME
:要更新的集區名稱。PROJECT_ID
:專案名稱。LOCATION
:集區的位置。QOS_TYPE
:儲存集區的更新 QoS 類型。系統僅支援手動設定。
建立磁碟區
gcloud
使用下列指令建立磁碟區,並指定手動 QoS 輸送量限制:
gcloud netapp volumes create VOLUME_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --storage-pool=STORAGE_POOL \ --capacity=CAPACITY \ --protocols=PROTOCOLS \ --share-name=SHARE_NAME \ --throughput-mibps=THROUGHPUT_MIBPS
取代下列資訊:
VOLUME_NAME
:磁碟區名稱。此名稱在同一位置中不得重複。PROJECT_ID
:要在其中建立磁碟區的專案名稱。LOCATION
:磁碟區的位置。STORAGE_POOL
:用於建立磁碟區的儲存空間集區。CAPACITY
:磁碟區容量。定義 NAS 用戶端看到的容量。PROTOCOLS
:選擇磁碟區匯出時使用的 NAS 通訊協定。有效選項包括 NFSv3、NFSv4、SMB,以及下列組合:nfsv3,nfsv4
nfsv3,smb
nfsv4,smb
視您選擇的通訊協定類型而定,建議您新增通訊協定專屬參數,例如
export-policy
或smb-settings
。SHARE_NAME
:磁碟區的 NFS 匯出路徑或 SMB 共用區名稱。THROUGHPUT_MIBPS
:磁碟區的處理量上限,單位為 MiBps。
如要進一步瞭解其他選用標記,請參閱 Google Cloud SDK 磁碟區建立說明文件。
後續步驟
瞭解儲存空間集區。