佈建 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 資源的效能。
詳情請參閱「查看磁碟效能指標」。
您也可以在控制台中使用「可觀測性」頁面查看磁碟效能指標。