このトピックでは、PolarDB for PostgreSQL 14 とオープンソース PostgreSQL 14 の OLTP パフォーマンステストの結果について説明します。
概要
PolarDB for PostgreSQL 14 には、オープンソース PostgreSQL 14 に対する以下の最適化が含まれており、全体的なパフォーマンスが向上しています。
3D XPoint 記憶媒体を使用した Optane ストレージカード、Non-Volatile Memory Express (NVMe) ソリッドステートドライブ (SSD)、Remote Direct Memory Access (RDMA) over Converged Ethernet (RoCE) ネットワークなどの高度なハードウェア技術を使用しています。
新しいハードウェアを活用して、ユーザーモードで実行される I/O およびネットワークプロトコルスタックの完全なセットを実装し、より高いパフォーマンスとより低いレイテンシーを実現します。
Polar Commit Sequence Number (CSN) 技術を使用して、ネイティブの PostgreSQL xid トランザクションを単調に増加する 64 ビット整数に置き換え、高い同時実行性下での OLTP パフォーマンスを向上させます。
先行読み取り、事前拡張、および rel_size_cache 技術を使用して、I/O の読み取りおよび書き込み回数を削減し、パフォーマンスを向上させます。
テスト手順の詳細については、「パフォーマンスのテスト方法 (OLTP)」をご参照ください。
テスト環境と仕様
次の表に、PolarDB for PostgreSQL 14 とオープンソース PostgreSQL 14 の環境と仕様を示します。このテストでは、オープンソース PostgreSQL 14 は Alibaba Cloud Elastic Compute Service (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 のパフォーマンスパラメーターと整合しています。他のすべてのパラメーターはデフォルト値を使用します。
テストワークロード
Sysbench には、oltp_insert、oltp_point_select、oltp_read_only、oltp_read_write、oltp_update_index、oltp_update_non_index、oltp_write_only の 7 つのシナリオが含まれています。次の表に、各シナリオのテスト内容を示します。
パラメーター | シナリオ | テスト内容 |
書き込みシナリオ | 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 の混合テストです。 |
メトリクス
1 秒あたりのトランザクション数 (TPS): データベースで 1 秒あたりに実行されるトランザクションの数。コミットされたトランザクションのみがカウントされます。
テストデータ
次の表に、このテストで使用されたデータ量を示します。
パラメーター | 説明 |
テーブル数 | 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