執行個體效能

本頁面說明 Filestore 執行個體的效能限制,以及建議的效能設定和測試選項。

每個 Filestore 服務級別提供的效能等級不同,這可能會因使用快取、用戶端 VM 數量、用戶端 VM 的機器類型和測試工作負載等因素而異。

下表列出設定各服務層級最低和最高容量時,可達到的最高效能。

所有表格值都是預估限制,不保證一定正確。如要進一步瞭解自訂效能設定和限制,請參閱「自訂效能限制」一文。

各服務層級的最低和最高容量成效限制
服務級別 容量 讀取 IOPS 寫入 IOPS 讀取處理量 (MiBps) 寫入總處理量 (MiBps) 單一用戶端讀取總處理量 (MiBps) 單一用戶端的寫入處理量 (MiBps) 支援自訂效能
BASIC_HDD 1 TiB 至 10 TiB 600 1,000 100 100 100 100
10 TiB 至 63.9 TiB 1,000 5,000 180 120 180 120
BASIC_SSD 2.5 至 63.9 TiB 60,000 25,000 1,200 350 1,200 350
區域 1 TiB 9,200 2,600 260 88 260 88
9.75 TiB 89,700 25,350 2,535 858 450 260
10 TiB 92,000 26,000 2,600 880 1,600 800
100 TiB 920,000 260,000 26,000 8,800 1,600 800
區域性 1 TiB 12,000 4,000 120 100 120 100
9.75 TiB 117,000 39,000 1,170 975 450 260
10 TiB 92,000 26,000 2,600 880 1,600 800
100 TiB 920,000 260,000 26,000 8,800 1,600 800
Enterprise 1 TiB 12,000 4,000 120 100 120 100
10 TiB 120,000 40,000 1,200 1,000 450 260

效能調度

效能會在前述表格中列出的效能限制範圍內,隨著容量線性調整。舉例來說,如果您將企業執行個體的容量從 1 TiB 加倍至 2 TiB,執行個體的效能限制也會從 12,000/4,000 讀取和寫入 IOPS 加倍至 24,000/8,000 讀取和寫入 IOPS。

在單一用戶端和少數用戶端的情況下,您必須使用 nconnect 掛載選項增加 TCP 連線數量,才能達到最佳 NFS 效能。

針對特定服務層級,我們建議您指定用戶端與伺服器之間的連線數量,如下所示:

級別 容量 連線數量
區域性 1 至 9.75 TiB nconnect=2
區域性 10 至 100 TiB nconnect=7
Enterprise - nconnect=2
高可擴充性固態硬碟 - nconnect=7

一般來說,檔案共用容量越大,連線的用戶端 VM 越少,透過 nconnect 指定其他連線,可獲得的效能就越高。

自訂效能

設定自訂效能,根據工作負載需求調整效能,不受指定容量的限制。您可以指定每 TiB 的 IOPS 比率,或設定固定的 IOPS 數量。詳情請參閱「自訂成效」。

建議的用戶端機器類型

建議您使用 n2-standard-8 等 Compute Engine 機器類型,提供至少 16 Gbps 的輸出頻寬。這個輸出頻寬可讓用戶端在快取友善的工作負載中達到約 16 Gbps 的讀取頻寬。如需更多背景資訊,請參閱「網路頻寬」。

Linux 用戶端掛接選項

建議您使用下列 NFS 掛接選項,特別是 hard 掛接、asyncrsizewsize 選項,以便在 Linux 用戶端 VM 執行個體上獲得最佳效能。如要進一步瞭解 NFS 掛載選項,請參閱 nfs

預設選項 說明
hard NFS 用戶端會無限期重試 NFS 要求。
timeo=600 NFS 用戶端會等待 600 分秒 (60 秒),然後重試 NFS 要求。
retrans=3 NFS 用戶端會嘗試三次 NFS 要求,然後再採取進一步的復原動作。
rsize=524288 每個 READ 要求,NFS 用戶端最多可從 NFS 伺服器接收 524,288 個位元組。
注意:如果是基本層級的執行個體,請將 rsize 值設為 1048576
wsize=1048576 每個 WRITE 要求,NFS 用戶端最多可向 NFS 伺服器傳送 1,048,576 位元組 (1 MB)。
resvport NFS 用戶端與 NFS 伺服器通訊時,會使用此掛接點的特殊權限來源通訊埠。
async NFS 用戶端會延遲將應用程式寫入 NFS 伺服器,直到符合特定條件為止。
注意:使用 sync 選項會大幅降低效能。

使用 read_ahead_kb 參數最佳化 NFS 讀取吞吐量

NFS read_ahead_kb 參數會指定 Linux 核心在順序讀取作業期間應預先擷取的資料量 (以千位元為單位)。因此,後續的讀取要求可直接從記憶體中提供,以縮短延遲時間並提升整體效能。

如果是 Linux 核心版本 5.4 以上,Linux NFS 用戶端會使用預設的 read_ahead_kb 值 128 KB。建議您將這個值提高至 20 MB,以改善序列讀取吞吐量。

在 Linux 用戶端 VM 上成功掛接檔案共用區後,您可以使用下列指令碼手動調整 read_ahead_kb 參數值:

mount_point=MOUNT_POINT_DIRECTORY
device_number=$(stat -c '%d' $mount_point)
((major = ($device_number & 0xFFF00) >> 8))
((minor = ($device_number & 0xFF) | (($device_number >> 12) & 0xFFF00)))
sudo bash -c "echo 20480 > /sys/class/bdi/$major:$minor/read_ahead_kb"

其中:

MOUNT_POINT_DIRECTORY 是掛接檔案共用區的所在目錄路徑。

單一和多個用戶端 VM 效能

Filestore 的可擴充服務層級是針對多個用戶端 VM 而非單一用戶端 VM 進行效能最佳化。

區域、區域和企業執行個體至少需要四個用戶端 VM,才能發揮完整效能。這可確保充分利用基礎 Filestore 叢集中的所有 VM。

為了提供更多背景資訊,最小可擴充的 Filestore 叢集有四個 VM。無論每個用戶端使用 nconnect 掛載選項指定的 NFS 連線數量為何,每個用戶端 VM 都只會與一個 Filestore 叢集 VM 通訊。如果使用單一用戶端 VM,讀取和寫入作業只會從單一 Filestore 叢集 VM 執行。

改善各項 Google Cloud 資源的效能

跨多個 Google Cloud 資源的作業 (例如使用 gcloud CLI 將資料從 Cloud Storage 複製到 Filestore 執行個體) 可能會很慢。如要減少效能問題,請嘗試下列方法:

  • 請確認 Cloud Storage 值區、用戶端 VM 和 Filestore 執行個體都位於相同的地區

    雙區域可為儲存在 Cloud Storage 中的資料提供最高效能。如果使用這個選項,請確認其他資源位於雙區域中其中一個單一區域。舉例來說,如果 Cloud Storage 資料位於 us-central1,us-west1,請確認用戶端 VM 和 Filestore 執行個體位於 us-central1

  • 為方便您參考,請驗證已連結永久磁碟 (PD) 的 VM 效能,並與 Filestore 執行個體的效能進行比較。

    • 如果 PD 已連結的 VM 與 Filestore 執行個體的效能相似或更慢,這可能表示效能瓶頸與 Filestore 無關。如要改善非 Filestore 資源的基準效能,您可以調整與平行複合上傳作業相關聯的 gcloud CLI 屬性。詳情請參閱「工具和 API 如何使用平行複合式上傳」。
    • 如果 Filestore 執行個體的效能明顯比
      PD 已連結 VM 慢,請嘗試將作業分散至多個 VM。

    • 這有助於改善 Cloud Storage 讀取作業的效能。

    • 區域、區域和企業執行個體至少需要四個用戶端 VM,才能發揮完整效能。這樣可確保充分利用基礎 Filestore 叢集中的所有 VM。詳情請參閱「單一和多個用戶端 VM 效能」。

後續步驟