提升 Hyperdisk 效能

佈建 Google Cloud Hyperdisk 磁碟區後,應用程式和作業系統可能需要經過效能微調,才能符合效能需求。

在下節中,我們將說明幾個可微調以提高效能的重要元素,及如何將其中幾種元素應用於特定類型的工作負載。

如要概略瞭解 Google Cloud Hyperdisk 效能的運作方式,請參閱「關於 Hyperdisk 效能」。

使用高 I/O 佇列深度

Hyperdisk 磁碟區是網路附加裝置,因此延遲時間比本機附加磁碟 (例如本機 SSD) 長。Hyperdisk 磁碟區可提供極高的 IOPS 和處理量,但您必須確保平行完成足夠的 I/O 要求。平行完成的 I/O 要求數量稱為 I/O 佇列深度

下表列出建議的 I/O 佇列深度,確保您能達到特定效能等級。這些表格稍微高估了典型延遲時間,因此建議值較為保守。範例假設您使用的 I/O 大小為 16 KB。

所需 IOPS 佇列深度
500 1
1,000 2
2,000 4
4,000 8
8,000 16
16,000 32
32,000 64
64,000 128
100,000 200
200,000 400
320,000 640
所需處理量 (MB/秒) 佇列深度
8 1
16 2
32 4
64 8
128 16
256 32
512 64
1,000 128
1,200 153

確認您有可用的 CPU

讀取和寫入 Hyperdisk 磁碟區時需要 VM 的 CPU 週期。如果 VM 執行個體的 CPU 不足,應用程式將無法達到先前所述的 IOPS。如要達到高度且一致的 IOPS 等級,則必須釋出 CPU 來處理 I/O。

停用資料庫層級的寫入中斷保護機制,以最佳化寫入作業

由於 Google Cloud Hyperdisk 提供內建的寫入中斷保護機制,您可以停用資料庫層級的保護功能,藉此減少 I/O 負擔,並將資料庫寫入輸送量提高最多 25%。如要進一步瞭解這項功能,請參閱 Hyperdisk 總覽頁面的「寫入中斷保護機制」一節。

環境設定需求

如要有效保護 Hyperdisk 免於寫入撕裂,資料庫寫入作業不得在到達儲存層之前片段化。視資料庫而定,您可以使用下列其中一種設定選項來達成此目的:

選項 1:將層對齊 16 KiB 區塊邊界 (建議用於 MySQL 和 PostgreSQL)

設定作業系統、檔案系統和中介軟體層,保留 16 KiB 邊界。使用這個選項時,您必須維持這項特定設定:

  • 檔案系統:使用 ext4 檔案系統。您必須使用 bigalloc 選項建立檔案系統,並將檔案系統的叢集大小設為 16 KiB (16,384 位元組),或大於 16 KiB 的 2 的倍數:

    mkfs.ext4 -O bigalloc -C 16384 /dev/<var>DEVICE_NAME</var>
    

    DEVICE_NAME 替換為儲存裝置名稱。

  • 不支援的設定:請避免使用可能在區塊儲存空間層上方導入撕裂寫入的設定,例如:

    • 在 Google Kubernetes Engine 或自架 Kubernetes 上執行容器化資料庫。
    • 將資料庫檔案儲存在 xfs 檔案系統中,這類系統通常不支援大多數 Linux 發行版上的足夠區塊大小。
    • 使用容錯式獨立磁碟陣列 (RAID) 設定或剝除 I/O 的邏輯磁碟區管理員 (LVM)。
    • 搭配本機 SSD 快取使用 Hyperdisk,包括 lvmcachedm-cachebcache
    • 使用資料庫 VM 的巢狀虛擬化功能。

選項 2:使用 Linux 區塊原子 I/O (建議用於 MariaDB)

如果資料庫或應用程式支援 Linux 區塊原子 I/O,並使用直接 I/O (O_DIRECT) 存取檔案,只要符合下列條件,即可略過選項 1 中列出的設定規則:

  • RWF_ATOMIC 旗標:應用程式必須使用 RWF_ATOMIC 旗標呼叫 pwritev2() 系統。使用這個旗標時,Linux 核心會確保寫入作業是由基礎 Hyperdisk 裝置處理為單一連續區塊。如果核心無法保證原子性,寫入呼叫會立即失敗,以防止資料損毀。
  • 作業系統:必須是 Linux 核心 6.11 以上版本。
  • 檔案系統:在 Linux 核心 6.13 以上版本中,必須為 ext4xfs
  • 檔案存取權:應用程式必須使用直接 I/O (O_DIRECT) 開啟資料庫檔案。
  • 支援的資料庫:建議僅針對 MariaDB 11.x 以上版本使用這個選項 (適用於一般 Linux RWF_ATOMIC 支援)。MySQL 和 PostgreSQL 不支援這項功能。

如需資料庫專屬的詳細最佳化說明,請參閱「在 Compute Engine 上設定 MySQL」。

查看 Hyperdisk 效能指標

您可以在 Cloud Monitoring (Google Cloud的整合式監控解決方案) 中查看磁碟效能指標。您可以使用這些指標觀察磁碟和其他 VM 資源在不同應用程式工作負載下的效能。

詳情請參閱「查看磁碟效能指標」。

您也可以在控制台中使用「可觀測性」頁面查看磁碟效能指標

後續步驟