このトピックでは、PolarDB for PostgreSQL 14およびオープンソースのPostgreSQL 14のOLTPパフォーマンステストの結果について説明します。
概要
PolarDB for PostgreSQL 14は、オープンソースのPostgreSQL 14と比較して、次の機能を最適化し、全体的なパフォーマンスを向上させます。
- PolarDB for MySQLは、3D XPointストレージメディアのOptaneソリッドステートドライブ (SSD) 、NVMe SSD、RDMA over Converged Ethernet (RoCE) などの主要なハードウェアテクノロジーを採用しています。
- PolarDB for MySQLは、新しいハードウェアに基づいてユーザーモードで実行される一連のI/Oおよびネットワークプロトコルスタックを実装します。 これにより、パフォーマンスが向上し、待ち時間が短縮されます。
- PolarDB for PostgreSQLは、Polar Commit Sequence Number (CSN) 機能を使用して、ネイティブPostgreSQLのxidトランザクションを単調増加する64ビット整数に置き換え、並行性の高いシナリオでのOLTPパフォーマンスを向上させます。
- 先読み、事前拡張、およびrel_size_cacheの機能は、I/O読み取りおよび書き込みの数を減らし、パフォーマンスを向上させるために提供されます。
説明 テスト手順の詳細については、「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テラバイト |
説明 カーネルパラメーターの場合、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 | 点クエリと範囲クエリ。 | |
Read と write | 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