RDS(PostgreSQL)でクエリログをON(log_statement=all
)・OFF(log_statement=none
)、さらにexportしたときの性能の変化が気になったので、pgbenchで負荷テストを行ってみた。
テスト環境
クライアント
- pgbench (PostgreSQL) 14.2 (Ubuntu 14.2-1ubuntu1)
EC2のc5.xlargeインスタンスから実行
- インスタンスのCPUは余裕のある状態
- RDSと同じAZ
以下のようなスクリプトを実行
#!/bin/bash echo "$(date +%FT%TZ): start" for i in 64 128 192 256; do echo "$(date +%FT%TZ): $i" pgbench -q -i -s 100 sleep 10 pgbench -c $i -T 180 if [ $i -ne 256 ]; then sleep 60 fi done echo "$(date +%FT%TZ): end"
サーバ
- PostgreSQL 12.8
- m4.2xlarge(都合により旧世代…)
- Parameter Groupはデフォルトから
log_statement
だけ変更 - Encryption有効
- Performance Insights有効
- Enhanced Monitoring有効
- Multi-AZ
- ストレージはgp2/500GB
結果
tps
latency
CPU使用率
Performance Insights
log_statement=none
log_statement=all
log_statement=all (export)