本文介紹了PolarDB for PostgreSQL 14與同類PostgreSQL 14云原生數據庫的OLTP負載性能測試結果。
簡介
相對于同類PostgreSQL云原生數據庫,PolarDB PostgreSQL版在以下幾方面進行了優化,提升了整體性能:
- 采用了領先硬件技術,包括使用3DXpoint存儲介質的Optane存儲卡、NVMeSSD和RoCE RDMA網絡等。
- 基于新的硬件,實現了一整套在用戶態運行的IO和網絡協議棧,獲得了更高的性能、更低的延遲。
- 通過Polar CSN(Commit Sequence Number)技術,將原生PostgreSQL xid事務替換為單調遞增的64位整型來提升高并發下OLTP性能。
- 借助預讀、預擴展、rel_size_cache技術,可以有效減少IO讀寫次數,提升性能。
說明 具體測試步驟,請參見性能測試方法(OLTP)。
測試環境與規格
PolarDB for PostgreSQL 14和同類PostgreSQL 14云原生數據庫的環境和規格如下表所示:
說明 | PolarDB for PostgreSQL 14 | 同類PostgreSQL云原生數據庫 |
---|---|---|
核數+內存 | 8核 64 GB | 8核 64 GB |
并發數 | 256 | 256 |
PostgreSQL版本 | 14 | 14 |
磁盤性能等級 | PSL5 | 默認配置 |
說明 關于內核參數,PolarDB for PostgreSQL 14和同類PostgreSQL 14云原生數據庫的參數均采用默認參數。
測試Workload說明
在Sysbench中,有七類場景,包括oltp_insert、oltp_point_select、oltp_read_only、oltp_read_write、oltp_update_index、oltp_update_non_index、oltp_write_only。各種場景的測試內容說明如下:
參數 | 場景 | 測試內容 |
---|---|---|
寫場景 | oltp_insert | 插入表。 |
oltp_update_index | 更新帶索引的表。 | |
oltp_update_non_index | 更新不帶索引的表。 | |
oltp_write_only | 插入、更新、刪除表混合測試。 | |
讀場景 | oltp_point_select | 點查詢。 |
oltp_read_only | 點查詢+范圍查詢。 | |
讀寫混合 | oltp_read_write | oltp_write_only+oltp_read_only混合測試。 |
衡量指標
TPS(Transactions Per Second):即數據庫每秒執行的事務數,以COMMIT成功次數為準。
測試數據量
本次實驗測試數據量如下表所示:
參數 | 說明 |
---|---|
表數目 | 8 |
行數 | 64,000,000 |
總數據量 | 128 GB |
性能結果
- 寫場景
TPS/實例類型 PolarDB for PostgreSQL 14 同類PostgreSQL 14數據庫 oltp_insert 26894.32 12787.40 oltp_update_index 26794.94 8112.62 oltp_update_non_index 27799.49 10037.60 oltp_write_only 10254.72 4227.12 - 讀場景
TPS/實例類型 PolarDB for PostgreSQL 14 同類PostgreSQL 14數據庫 oltp_point_select 87774.29 26358.05 oltp_read_only 3421.84 1489.13 - 讀寫混合場景
TPS/實例類型 PolarDB for PostgreSQL 14 同類PostgreSQL 14數據庫 oltp_read_write 1953.10 846.73