本文介紹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