本文介紹了PolarDB PostgreSQL版鏈接地址選擇集群地址時的性能測試結果。
簡介
相較于直接連接PolarDB PostgreSQL版主節點地址,PolarDB PostgreSQL版連接集群地址在以下兩方面進行了優化,提升了整體吞吐:
- PolarDB PostgreSQL版集群自帶讀寫分離功能。應用程序只需連接一個集群地址,寫請求會自動發往主節點,讀請求會自動根據各節點的負載(當前未完成的請求數)發往主節點或只讀節點。
- PolarDB PostgreSQL版集群具有事務拆分功能。事務拆分在保證讀寫一致性的前提下,將事務中的讀請求發往只讀節點,以提升性能。詳情請參見事務拆分。
說明 具體測試步驟請參見性能測試方法(OLTP)。
前提條件
- 購買的PolarDB PostgreSQL版包含一個主節點和至少一個只讀節點。
- 連接的地址采用集群地址,而不是主節點地址。采用集群地址后,會根據您的讀寫請求以及負載來決定請求發往主節點還是只讀節點。
- 建議開啟事務拆分功能,事務拆分在保證讀寫一致性的前提下,將事務中的讀請求發送只讀節點,以提升性能。
測試環境與規格
本次測試主要采用PolarDB for PostgreSQL 14集群,環境和規格如下表所示(除連接地址之外,其他均相同):
環境與規格 | 說明 |
---|---|
核數+內存 | 8核 64 GB |
PostgreSQL版本 | 14 |
磁盤性能等級 | PSL5 |
節點數量 | 1主節點+1只讀節點+1standby節點 |
連接地址 | 集群地址/主節點地址 |
事務拆分 | 開啟 |
會話/最終一致性 | 會話一致性 |
測試Workload說明
本次測試采用Sysbench測試,只需將Sysbench測試連接的IP修改為集群地址即可,Sysbench的測試方法具體請參見性能測試方法(OLTP)。
為了更好的說明PolarDB for PostgreSQL 14集群性能的提升,本次測試選取了一個典型場景:讀場景(oltp_read_only
)。
衡量指標
TPS(Transactions Per Second):即數據庫每秒執行的事務數,以COMMIT成功次數為準。
測試數據量
本次實驗測試數據量如下表所示:
參數 | 說明 |
---|---|
表數目 | 8 |
行數 | 64,000,000 |
總數據量 | 128 GB |
性能結果
讀場景
TPS/連接地址 | 集群地址 | 主節點地址 |
---|---|---|
256 | 8149.57 | 4859.45 |
512 | 7607.02 | 4418.72 |
1024 | 7037.76 | 4058.89 |