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