レック・テクノロジー・コンサルティング株式会社TECH BLOG

pgbenchを使ってAurora Serverless V2のPostgreSQLサーバーの負荷テストを実施してみよう

0. はじめに

Re:Q Techブログをご覧いただきありがとうございます。 クラウド&ネットワーク技術統括部のN.Tです。

Aurora Serverless v2を利用する環境で、負荷テストやScallingのテストを実施したい場合に利用できる負荷ツールとしてpgbenchがあげられます。
今回はpgbenchを利用してAuroraのPostgre SQLサーバーに対して負荷をかけてテストする方法についてまとめます。




前提条件

  • pgbenchはEC2インスタンス(m5.large)
  • Aurora Serverless v2 (PostgreSQL)




1. 前準備

1-1. PostgreSQL, PostgreSQLのクライアントツールをインストール

以下コマンドを実行します

sudo dnf install postgresql16 -y
sudo dnf install postgresql16-contrib -y




1-2. 確認

バージョンを確認し、正常にインストールされていることを確認します

$ pgbench --version
pgbench (PostgreSQL) 16.10




1-3. ログイン確認

  • Defaultのデータベースに接続する
    []内は必要に応じて書き換えてください
  • DB接続時にパスワードが求められます
psql -h [aurora-cluster-name.cluster-***.ap-northeast-1.rds.amazonaws.com] -p 5432 -U [USERNAME] -d [DATABASE]




1-4. 負荷テスト用のDBを作成する

  • 以下コマンドでデータベースを作成します
CREATE DATABASE loadtest_db;


  • 確認
    • データベースが新規作成され、一覧表示やSELECTクエリが実行できることを確認します。
\l

もしくは

SELECT datname
FROM pg_database
WHERE datname = 'loadtest_db';


  • 確認後、データベースからログアウトします。
\q




2. pgbenchを使用して負荷をかける

2-1. ベンチマークデータ初期化

以下のコマンドを実行し、初期化を実行します
-sオプションを10に指定し、1,000,000レコードの初期データを生成します

pgbench -i -s 10 -U [USERNAME] -h [aurora-cluster-name.cluster-***.ap-northeast-1.rds.amazonaws.com] -d loadtest_db




2-2. 負荷テスト実施

  • -c: クライアント接続数を指定 (何人のユーザーが接続するか)
  • -j: スレッド数を指定 (コマンドを実行するローカルマシンで使用するスレッド数)
  • -T: テスト時間を指定
pgbench -c 50 -j 2 -T 60 -h [aurora-cluster-name.cluster-***.ap-northeast-1.rds.amazonaws.com] -U [USERNAME] -d loadtest_db




2-3. 結果確認

以下のような結果が出力されます

transaction type: <builtin: TPC-B (sort of)>
scaling factor: 100
query mode: simple
number of clients: 50
number of threads: 2
maximum number of tries: 1
duration: 60 s
number of transactions actually processed: 39829
number of failed transactions: 0 (0.000%)
latency average = 74.747 ms
initial connection time = 542.004 ms
tps = 668.926181 (without initial connection time)


結果をまとめると下表のようになります
適宜、確認したい項目の結果を確認してください

項目 備考
transaction type TPC-B (sort of) 組み込みの読み書き混合ワークロード
scaling factor 100 データ量指標
query mode simple Prepared を使わない実行モード
number of clients 50 同時クライアント数
number of threads 2 pgbench のスレッド数
maximum number of tries 1 トランザクション再試行回数上限
duration 60 s テスト実行時間
number of transactions processed 39,829 実行されたトランザクション数
number of failed transactions 0 (0.000%) 失敗なし
latency average 74.747 ms トランザクション平均応答時間
initial connection time 542.004 ms 接続確立に要した合計時間
tps 668.926181 Transactions Per Secondの略称




さいごに

pgbenchを利用することで、Auroraに対して簡単に負荷をかけることができます。
ぜひ、ご利用してみてはいかがでしょうか!

Careersキャリア採用

ページトップへ戻る