PostgreSQL で QPS(Queries per second) を確認したい場合、イコールではないが以下で TPS(Transactions per second) を確認することができる。
SELECT sum(xact_commit+xact_rollback) FROM pg_stat_database;
RDS PostgreSQL や Aurora PostgreSQL だと、Performance Insights のカウンターメトリクスで xact_commit や xact_rollback を確認することができる。以下は pgbench で参照ワークロードを流した際の Aurora PostgreSQL の Performance Insights のスクリーンショット。
$ pgbench -Sn -c 32 -j 32 -t 10000 -U awsuser -h <ホスト名> -d mydb -p 9999 >/dev/null 2>&1
検証結果
- pgbench で参照ワークロードを実行する。
$ pgbench -Sn -c 40 -j 40 -t 100000 -U awsuser -h reader-a-1.******.ap-northeast-1.rds.amazonaws.com -d writer -p 5432 >pgbench`date -d "-$i days" '+%Y-%m-%d-%H%M%S'`.log 2>&1
- ログを確認すると、約 17,000 tps のスループットが出ている。
$ tail -11 pgbench2020-11-26-034125.log pghost: reader-a-1.******.ap-northeast-1.rds.amazonaws.com pgport: 5432 nclients: 40 nxacts: 100000 dbName: writer transaction type: <builtin: select only> scaling factor: 100 query mode: simple number of clients: 40 number of threads: 40 number of transactions per client: 100000 number of transactions actually processed: 4000000/4000000 latency average = 2.339 ms tps = 17099.442370 (including connections establishing) tps = 17104.206044 (excluding connections establishing) ★ 約17,000 tps(Readクエリのみのため、QPSと同等と考えられる)
- Performance Insights のカウンターメトリクスの xact_commit を確認すると約17,000 tps となっている。