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に対して簡単に負荷をかけることができます。
ぜひ、ご利用してみてはいかがでしょうか!
RELATED ARTICLE関連記事
RELATED SERVICES関連サービス
Careersキャリア採用
LATEST ARTICLE
CATEGORY
- AWS (70)
- Azure (24)
- Databricks (18)
- GCP (27)
- Nutanix (14)
- Oracle Cloud Infrastructure(OCI) (22)
- Oracle Cloud VMware Solution(OCVS) (4)
- Oracle DB (94)
- Oracle Linux KVM (19)
- Python (3)
- Snowflake (22)
- Veeam Backup & Replication (13)
- インフラ (77)
- クラウド (141)
- コンテナ技術 (18)
- セキュリティ (22)
- データエンジニアリング (66)
- ネットワーク (21)
- 仮想基盤 (38)
- 生成AI (19)





