本文提供工作負載和部署建議,協助您為線上交易處理 (OLTP) 和線上分析處理 (OLAP) 工作負載,調整 AlloyDB for PostgreSQL 執行個體的大小。
總覽
為協助您提升資料庫效能,AlloyDB for PostgreSQL 提供下列內建功能:
- 自動記憶體管理
- 自動調整型自動清除
- 最佳化內建效能設定
- 複製延遲時間短
- 維護作業不會中斷服務,擴充作業期間主要節點的停機時間不到一秒,讀取集區節點則完全不必停機
如要調整 AlloyDB for PostgreSQL 執行個體以提升效能,請管理下列項目:
- 正確調整主要和讀取集區執行個體的大小
- 更新會影響成效的旗標
大小注意事項
調整 AlloyDB for PostgreSQL 執行個體大小前,請先判斷下列事項:
- 工作負載類型:OLTP、OLAP 或 HTAP
- 效能要求:延遲時間和處理量要求
- 預期資料大小:您打算儲存在 AlloyDB for PostgreSQL 中的資料大小,以及作用中資料集大小
- 工作負載規模:資料大小隨時間增加或成長
OLTP 工作負載
您可以將 AlloyDB for PostgreSQL 資料庫部署為區域執行個體 (單一節點),或是高可用性執行個體 (每個區域有兩個節點)。您也可以視需要新增讀取集區執行個體,以及另一個區域的次要叢集,以利地理位置分散的工作負載或災難復原 (DR)。
AlloyDB for PostgreSQL 採用雲端規模的分散式架構部署,並將運算和儲存資源分離。寫入作業一經區域儲存空間保留寫前記錄 (WAL) 檔案,系統就會確認寫入作業,而區塊具體化作業則會卸載至儲存空間。
同樣地,透過多層快取架構,資料會自動放置在緩衝區快取、極速快取和智慧儲存引擎之間。由於 AlloyDB for PostgreSQL 採用多層快取架構,因此在 AlloyDB for PostgreSQL 環境中,每秒輸入/輸出作業數 (IOP) 與其他資料庫系統的比較並不相關。
不過,使用每秒交易數 (TPS)/每分鐘交易數 (TPM) 進行比較,有助於瞭解 AlloyDB for PostgreSQL 可處理的資料量。
主要大小調整指標為 TPS。如要估算所需的 AlloyDB for PostgreSQL 大小,請按照下列步驟操作:
- 找出現有工作負載。如果您是從自行管理的 PostgreSQL 或其他商用資料庫遷移,可能已經有現有工作負載的 TPS 值。
- 分析查詢。找出工作負載中最關鍵的查詢,並判斷其效能需求。
- 使用
HammerDB或pgbench等工具。這些工具可協助您評估 AlloyDB for PostgreSQL 的效能,並判斷機器大小是否符合 TPS 需求。 - 使用 AlloyDB for PostgreSQL OLTP 基準化指南。本指南提供各種 AlloyDB for PostgreSQL 設定的效能資料,協助您找出符合 TPS 需求的設定。
- 選擇適當的 AlloyDB for PostgreSQL 大小。請考量目前的資料大小和未來的成長預期。
機器大小規範
下表範例顯示 TPC-C 基準化資料的建議,讀寫比例約為 65% 讀取和 35% 寫入。調整 AlloyDB for PostgreSQL 執行個體大小時,您必須將 CPU 使用率維持在 60% 到 70% 左右,以免作業系統排程負擔過重。這可為用戶端應用程式的資源用量尖峰提供一些緩衝空間。
請參考下表中的尺寸建議,做為一般準則。
如要瞭解各機器大小建議的 max_connections 上限,請參閱「並行連線數量上限」。
| vCPU/記憶體 | 建議交易數/秒 範圍 (30% 已快取) |
建議的工作 資料大小 (總大小最多 128 TB) |
|---|---|---|
| 2 / 16GB | 最多 1,000 個 | 最多 100 GB |
| 4 / 32GB | 最多 2,500 部 | 最多 250 GB |
| 8/ 64GB | 最多 4,000 個 | 最多 500 GB |
| 16 / 128GB | 最多 8,000 個 | 最多 1 TB |
| 32 GB / 256 GB | 最多 14,000 個 | 最多 3 TB |
| 64 GB / 512 GB | 最多 20,000 個 | 最多 8 TB |
| 96 / 768GB | 最多 25,000 個 | 最多 16 TB |
| 128 GB / 864 GB | 大於 20,000 | 最多 32 TB |
部署類型
您可以根據工作負載,只部署主要執行個體,或是部署主要執行個體和讀取集區執行個體。
僅限主要
下列工作負載只能選擇主要部署作業:
- 寫入量大,讀取量中等
- 讀取量大但寫入量小的查詢
- 典型的 OLTP 讀寫作業 (60% 至 70% 的讀取作業,30% 至 40% 的寫入作業)。
如要進一步瞭解機型,請參閱「一般機型大小指南」。
具備讀取集區執行個體的主要執行個體
如果選擇部署主要執行個體和讀取集區執行個體,請考慮下列事項:
- 如果讀取作業容易受到延遲影響,請考慮將讀取查詢卸載至讀取集區執行個體。所有讀取集區執行個體最多可設定 20 個節點。詳情請參閱「建立讀取集區執行個體」。
- 如果您有多個資料庫 (例如同一執行個體中的 CRM 或財務),請設定多個讀取集區執行個體。使用這項策略有助於有效快取及提升查詢效能。
- 您可以根據需求,為主要和讀取集區執行個體設定不同大小。如要進一步瞭解讀取集區執行個體的最佳做法,請參閱「提升 AlloyDB 效能和可用性的最佳做法」。
- 為每個讀取集區執行個體新增多個節點,確保高可用性。
- 在特定讀取集區執行個體中選擇性啟用資料欄引擎,提升讀取查詢效能。這項操作不需要在主要執行個體上啟用資料欄引擎。
建議使用索引建議工具等內建功能,新增可提升查詢效能的索引。
OLAP 工作負載
對於 OLAP 工作負載,主要的調整大小指標是查詢效能,尤其是需要完整掃描資料表或匯總的查詢。AlloyDB for PostgreSQL 內建資料欄引擎,可加快分析查詢速度。預設啟用資料欄引擎會耗用 30% 的記憶體,並自動使用超快速快取資料。
如要進一步瞭解如何使用 TPC-H 工作負載,透過 AlloyDB for PostgreSQL 評估 OLAP 效能,請參閱 AlloyDB for PostgreSQL for PostgreSQL OLAP 基準化指南。
部署類型
您可以根據工作負載,只部署主要執行個體,或是部署主要執行個體和讀取集區執行個體。
僅限主要
如果部署僅限主要執行個體的執行個體,請注意下列事項:
- 這個部署作業可用於交易和分析查詢 (HTAP)。
- 啟用資料欄引擎,協助執行 OLAP 查詢。
- 建議您部署 16 個以上的 vCPU,或提供更多記憶體的機器,以儲存資料欄資料。
具備讀取集區的主要執行個體
如果您部署主要執行個體和讀取集區執行個體,請注意下列事項:
- 如果您需要大量寫入,且對延遲時間敏感的分析讀取作業有低延遲需求,請部署啟用高可用性的主要執行個體,以及讀取集區執行個體。
- 在執行分析查詢的讀取集區執行個體中啟用資料欄引擎。
- 如果您有多個資料庫 (例如同一執行個體中的 CRM 或財務),請設定多個讀取集區執行個體。使用這項策略有助於有效快取及提升查詢效能。
- 您可以根據需求,為主要和讀取集區執行個體設定不同大小。如要進一步瞭解讀取集區執行個體的最佳做法,請參閱「提升 AlloyDB 效能和可用性的最佳做法」。
- 為每個讀取集區執行個體新增多個節點,確保高可用性。
- 在特定讀取集區執行個體中選擇性啟用資料欄引擎,提升讀取查詢效能。這項操作不需要在主要執行個體上啟用資料欄引擎。
後續步驟
- 瞭解如何運用最佳做法提升效能和可用性。
- AlloyDB for PostgreSQL OLTP 基準測試指南。
- AlloyDB for PostgreSQL for PostgreSQL OLAP Benchmarking Guide。