佈建 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,包括
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 (Google Cloud的整合式監控解決方案) 中查看磁碟效能指標。您可以使用這些指標觀察磁碟和其他 VM 資源在不同應用程式工作負載下的效能。
詳情請參閱「查看磁碟效能指標」。
您也可以在控制台中使用「可觀測性」頁面查看磁碟效能指標。