本文介紹PolarDB for PostgreSQL 14版本的OLTP負載效能測試結果。
簡介
相較於開源PostgreSQL 14,PolarDB for PostgreSQL 14在以下幾方面進行了最佳化,提升了整體效能:
採用了領先硬體技術,包括使用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的環境和規格如下表所示,本次測試的開源PostgreSQL 14在阿里雲ECS機器上進行部署:
參數 | PolarDB for PostgreSQL 14 | 開源 PostgreSQL 14 |
核心數+記憶體 | 8核 64 GB | 8核 64 GB |
發壓ECS機規格 | ecs.c5.4xlarge | ecs.c5.4xlarge |
並發數 | 256 | 256 |
PostgreSQL版本 | 14 | 14 |
磁碟效能等級 | PSL5 | cloud_essd+PL3 |
預留磁碟空間 | 自動擴容,無限制 | 4 TB |
關於核心參數,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
43129.08
41161.66
oltp_update_index
32492.36
3710.60
oltp_update_non_index
30929.04
5367.59
oltp_write_only
9492.40
1294.47
讀情境

TPS/執行個體類型
PolarDB for PostgreSQL 14
開源PostgreSQL 14資料庫
oltp_point_select
88967.60
14566.05
oltp_read_only
4834.21
570.62
讀寫混合情境

TPS/執行個體類型
PolarDB for PostgreSQL 14
開源PostgreSQL 14資料庫
oltp_read_write
1738.51
306.39