本文介紹PolarDB PostgreSQL版16版本的OLTP負載效能測試結果。
簡介
相較於開源PostgreSQL 16,PolarDB PostgreSQL版16在以下幾方面進行了最佳化,提升了整體效能:
採用了領先硬體技術,包括使用3DXpoint儲存介質的Optane儲存卡、NVMeSSD和RoCE RDMA網路等。
基於新的硬體,實現了一整套在使用者態啟動並執行IO和網路通訊協定棧,獲得了更高的效能、更低的延遲。
通過Polar CSN(Commit Sequence Number)技術,將原生PostgreSQL xid事務替換為單調遞增的64位整型來提升高並發下OLTP效能。
藉助預讀、預擴充、rel_size_cache技術,可以有效減少IO讀寫次數,提升效能。
具體測試步驟,請參見效能測試方法(OLTP)。
測試環境和規格
PolarDB PostgreSQL版16和開源 PostgreSQL 16的環境和規格如下表所示,本次測試的開源PostgreSQL 16在阿里雲ECS機器上進行部署:
參數 | PolarDB PostgreSQL版16 | 開源 PostgreSQL 16 |
核心數+記憶體 | 8核 64 GB | 8核 64 GB |
發壓ECS機規格 | ecs.u1-c1m2.8xlarge | ecs.u1-c1m2.8xlarge |
並發數 | 256 | 256 |
PostgreSQL版本 | 16.10 | 16.10 |
磁碟效能等級 | PSL5 | cloud_essd+PL3 |
預留磁碟空間 | 自動擴容,無限制 | 自動擴容,無限制 |
關於核心參數,PolarDB PostgreSQL版16的參數與開源PostgreSQL 16績效參數進行了對齊,其餘參數均採用預設參數。
測試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 |
效能結果
寫情境

壓測情境
PolarDB PostgreSQL版16
開源PostgreSQL 16資料庫
oltp_insert
111618.70
91512.15
oltp_update_index
77647.89
8129.04
oltp_update_non_index
78112.42
8420.75
oltp_write_only
24602.97
2658.71
讀情境


壓測情境
PolarDB PostgreSQL版16
開源PostgreSQL 16資料庫
oltp_point_select
220782.88
48837.41
oltp_read_only
8653.15
1049.34
讀寫混合情境

壓測情境
PolarDB PostgreSQL版16
開源PostgreSQL 16資料庫
oltp_read_write
5073.52
649.34