このトピックでは、SysBenchを使用してPolarDB for PostgreSQL 14クラスターのOLTPパフォーマンスをテストする方法について説明します。 指示に基づいてテストを実行し、データベースシステムのパフォーマンス情報を取得できます。
テストツール
SysBenchは、モジュラー、クロスプラットフォーム、およびマルチスレッドのベンチマークツールです。 これを使用して、重負荷のデータベースを実行するシステムのコアパラメータのパフォーマンスを評価できます。 SysBenchを使用すると、データベースをインストールしなくても、複雑なベンチマーク設定なしでデータベースのパフォーマンスをすばやくテストできます。
テスト環境
- Elastic Compute Service (ECS) インスタンスとPolarDB for PostgreSQLクラスターは、同じリージョンの同じゾーンにデプロイされます。
- ネットワークタイプは仮想プライベートクラウド (VPC) です。 説明 ECSインスタンスとPolarDB for PostgreSQLクラスターは同じVPCにあります。
- テストで使用されるPolarDB for PostgreSQLクラスターに関する情報:
- 1つのプライマリノード、1つの読み取り専用ノード、および1つのスタンバイノードを持つクラスターを使用して、読み取り専用、書き込み専用、および読み取りと書き込みのシナリオでパフォーマンスをテストします。
- プライマリエンドポイントは、クラスターへの接続に使用されます。 PolarDB For PostgreSQLクラスターのエンドポイントを表示する方法の詳細については、「エンドポイントの表示または適用」をご参照ください。
- テストで使用されるECSインスタンスに関する情報:
- インスタンスタイプは ecs.c5.4xlarge です。
- インスタンスのイメージは64ビットCentOS 7.6です。
テストシナリオ
1つのプライマリノード、1つの読み取り専用ノード、および1つのスタンバイノードを備えたPolarDB for PostgreSQLクラスターを使用して、読み取り専用、書き込み専用、および読み取りと書き込みのシナリオでパフォーマンスをテストします。
メトリクス
1秒あたりのトランザクション (TPS): データベースで1秒あたりに実行されるトランザクションの数。 コミットされたトランザクションのみがカウントされます。
SysBench のインストール
次のいずれかの方法でSysBenchをインストールできます。
- Debian/Ubuntu
curl -s https:// packagecloud.io/install/repositories/akopytov/sysbench/script.de b.sh | sudo bash sudo apt -y install sysbench
- RHEL/CentOS
curl -s https:// packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash sudo yum -y install sysbench
説明 バイナリインストールコマンドの詳細については、「SysBenchドキュメント」をご参照ください。
テスト方法
説明 次の例では、PolarDB for PostgreSQLクラスターを使用しています。
- PolarDB for PostgreSQLクラスターのクラスターエンドポイントとポート番号を取得します。 詳細については、「エンドポイントの表示または申請」をご参照ください。
- PolarDB for PostgreSQLクラスターに接続します。 詳細については、「PolarDB For PostgreSQLクラスターへの接続」をご参照ください。
- ECSインスタンスで次のコマンドを実行し、PolarDB for PostgreSQLクラスターに
testdb
という名前のデータベースを作成します。psql -h XXX -p XXX -U XXX -W -c 'create database testdb;'
説明 このコマンドおよび次のコマンドのXXXパーツを、クラスターエンドポイント、ポート番号、およびPolarDB for PostgreSQLクラスターのユーザー名に置き換えます。下表に、各パラメーターを説明します。パラメーター 説明 -h PolarDB for PostgreSQLクラスターのプライマリエンドポイント。 -p PolarDB for PostgreSQLクラスターのプライマリノードへの接続に使用されるポート番号。 -U PolarDB for PostgreSQLクラスターへのログインに使用されるユーザー名。 -W パスワードログインが実施されていることを示します。 - SysBenchを使用して、PolarDB for PostgreSQLクラスターのパフォーマンスをテストします。 下表に、各パラメーターを説明します。
パラメーター 説明 -- pgsql-パスワード PolarDB for PostgreSQLクラスターへのログインに使用されるパスワード。 -- pgsqlポート PolarDB for PostgreSQLクラスターのプライマリノードへの接続に使用されるポート番号。 -- pgsql-user PolarDB for PostgreSQLクラスターへのログインに使用されるユーザー名。 -- pgsql-host PolarDB for PostgreSQLクラスターのプライマリエンドポイント。 説明 実際の接続情報に基づいてパラメーターを変更します。- SysBenchを使用して、PolarDB for PostgreSQLクラスターの書き込み専用パフォーマンスをテストします。
## データを準備します。 sysbench-pgsql-password=XXX -- pgsql-port=XXX -- report-interval='1'-pgsql-host=XXX-tables='8'-db-driver='pgsql'-events='0'-histogram='on'-percentile='95' -- threads=''256'-table-size-user='readrdb-user '準備する ## oltp_insertテストを実行します。 sysbench-pgsql-password=XXX -- pgsql-port=XXX -- report-interval='1'-pgsql-host=XXX-tables='8'-db-driver='pgsql '-events='0'-histogram='on'-percentile='95' -- threads=''256'-- table-size-type'-s'-user実行 ## oltp_update_indexテストを実行します。 sysbench-pgsql-password=XXX -- pgsql-port=XXX -- report-interval='1'-pgsql-host=XXX-tables='8'-db-driver='pgsqsql '-time='0'on'-percentile='95'-percentile='1200'-threads=''256' -- table-type='poldb-user実行 ## oltp_update_non_indexテストを実行します。 sysbench-pgsql-password=XXX -- pgsql-port=XXX -- report-interval='1'-pgsql-host=XXX-tables='8'-db-driver='pgsqsql-000'-events='0'-histogram='on'-percentile='95'-percentile='1200'XXX-type-sqp_rdb-user実行 ## oltp_write_onlyテストを実行します。 sysbench-pgsql-password=XXX-pgsql-port=XXX-report-interval='1'-pgsql-host=XXX-tables='8'-db-driver='pgsqsql '000'-events='0'-histogram='on'-percentile='95'-peritile='1200XXX='polg'-user '-only実行
- SysBenchを使用して、PolarDB for PostgreSQLクラスターの読み取り専用パフォーマンスをテストします。
## データを準備します。 sysbench-pgsql-password=XXX -- pgsql-port=XXX -- report-interval='1'-pgsql-host=XXX-tables='8'-db-driver='pgsql'-events='0'-histogram='on'-percentile='95' -- threads=''256'-table-size-user='readrdb-user '準備する ## oltp_point_selectテストを実行します。 sysbench-pgsql-password=XXX -- pgsql-port=XXX -- report-interval='1'-pgsql-host=XXX-tables='8'-db-driver='pgsql '-events='0'-histogram='on'-percentile='95'-percentile='1200'_XXX='poin'p-user'-type-select sqolg' 実行 ## oltp_read_onlyテストを実行します。 sysbench-pgsql-password=XXX -- pgsql-port=XXX -- report-interval='1'-pgsql-host=XXX-tables='8'-db-driver='pgsql'-events='0'-histogram='on'-percentile='95' -- threads=''256'-table-size-user='readrdb-user '実行
- SysBenchを使用して、PolarDB for PostgreSQLクラスターの読み書きパフォーマンスをテストします。
## データを準備します。 sysbench-pgsql-password=XXX -- pgsql-port=XXX -- report-interval='1'-pgsql-host=XXX-tables='8'-db-driver='pgsql'-events='0'-histogram='on'-percentile='95' -- threads=''256'-table-size-user='readrdb-user '準備する ## oltp_read_writeテストを実行します。 sysbench-pgsql-password=XXX-pgsql-port=XXX-report-interval='1'-pgsql-host=XXX-tables='8'-db-driver='pgsql'-events='0'-histogram='on'-percentile='95'-percentile='1200'XXX-readp_- user-type-user実行
- SysBenchを使用して、PolarDB for PostgreSQLクラスターの書き込み専用パフォーマンスをテストします。
次のステップ
- PolarDB For PostgreSQLと類似のPostgreSQL 14クラウドネイティブデータベースのパフォーマンス比較の詳細については、「類似のPostgreSQLクラウドネイティブデータベースとのパフォーマンス比較」をご参照ください。
- PolarDB For PostgreSQLとオープンソースPostgreSQL 14のパフォーマンス比較の詳細については、「オープンソースPostgreSQLとのパフォーマンス比較」をご参照ください。