提升 Hyperdisk 效能

佈建 Google Cloud Hyperdisk 磁碟區後,應用程式和作業系統可能需要進行效能調整,才能滿足效能需求。

在接下來的章節中,我們會說明幾個可調整的重要元素,以提升效能,以及如何將這些元素套用至特定類型的工作負載。

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

使用高 I/O 佇列深度

Hyperdisk 磁碟區是網路連接裝置,因此延遲時間比本機連接磁碟 (例如本機 SSD) 長。這類磁碟可提供極高的 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 級別,您必須有可處理 I/O 的 CPU。

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

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

環境設定需求

如要讓 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,包括 lvmcache、dm-cache 或 bcache。
    • 為資料庫 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 以上版本中,必須為 ext4 或 xfs。
  • 檔案存取權:應用程式必須使用直接 I/O 開啟資料庫檔案 (O_DIRECT)。
  • 支援的資料庫:建議僅針對 MariaDB 11.x 以上版本使用這個選項 (適用於一般 Linux RWF_ATOMIC 支援)。MySQL 和 PostgreSQL 不支援這項功能。

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

查看 Hyperdisk 效能指標

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

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

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

後續步驟