pgbenchで任意のSQLを使って負荷掛け
実行するSQL
cat << EOF > query.sql
<SQL文をここに書く>
EOF
pgbenchを使った並列実行
この場合はクライアント数が5、スレッド数5で100回SQLを実行するパターン。
pgbench -r -c 5 -j 5 -n -t 100 -f query.sql -U awsuser -h aurora-postgresql.xxxxxx.ap-northeast-1.redshift.amazonaws.com -d postgres -p 5439
各オプションの説明
pgbench https://www.postgresql.jp/document/12/html/pgbench.html
-j threads --jobs=threads
pgbench内のワーカスレッド数
-r --report-latencies
ベンチマーク完了後の各コマンドにおけるステートメント毎の平均レイテンシ(クライアントから見た実行時間)を報告
-c clients --client=clients
模擬するクライアント数、つまり、同時に実行されるデータベースセッション数
-f filename --file=filename
実行するSQLを指定する
-t transactions --transactions=transactions
各クライアントが実行するトランザクション数。 デフォルトは10。
関連しているかもしれない記事
- awslabsのpg-collectorについて
- OracleとPostgreSQLのシーケンスキャッシュの動作差異
- PostgreSQL内の重複インデックスまたは未使用のインデックスを抽出
- Aurora PostgreSQLのフェイルオーバー時間の計測
- Aurora PostgreSQLとRDSの比較メモ(リンク集)