すべてのプロダクト
Search
ドキュメントセンター

PolarDB:OLTP パフォーマンステスト

最終更新日:Jun 04, 2024

このトピックでは、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クラスターを使用しています。
  1. PolarDB for PostgreSQLクラスターのクラスターエンドポイントとポート番号を取得します。 詳細については、「エンドポイントの表示または申請」をご参照ください。
  2. PolarDB for PostgreSQLクラスターに接続します。 詳細については、「PolarDB For PostgreSQLクラスターへの接続」をご参照ください。
  3. ECSインスタンスで次のコマンドを実行し、PolarDB for PostgreSQLクラスターにtestdbという名前のデータベースを作成します。
    psql -h XXX -p XXX -U XXX -W -c 'create database testdb;'
    説明 このコマンドおよび次のコマンドのXXXパーツを、クラスターエンドポイント、ポート番号、およびPolarDB for PostgreSQLクラスターのユーザー名に置き換えます。
    下表に、各パラメーターを説明します。
    パラメーター説明
    -hPolarDB for PostgreSQLクラスターのプライマリエンドポイント。
    -pPolarDB for PostgreSQLクラスターのプライマリノードへの接続に使用されるポート番号。
    -UPolarDB for PostgreSQLクラスターへのログインに使用されるユーザー名。
    -Wパスワードログインが実施されていることを示します。
  4. SysBenchを使用して、PolarDB for PostgreSQLクラスターのパフォーマンスをテストします。
    下表に、各パラメーターを説明します。
    パラメーター説明
    -- pgsql-パスワードPolarDB for PostgreSQLクラスターへのログインに使用されるパスワード。
    -- pgsqlポートPolarDB for PostgreSQLクラスターのプライマリノードへの接続に使用されるポート番号。
    -- pgsql-userPolarDB for PostgreSQLクラスターへのログインに使用されるユーザー名。
    -- pgsql-hostPolarDB 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実行
                                      

次のステップ