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