RDS(PostgreSQL)のクエリログの有無によるpgbenchの差異

RDS(PostgreSQL)でクエリログをON(log_statement=all)・OFF(log_statement=none)、さらにexportしたときの性能の変化が気になったので、pgbenchで負荷テストを行ってみた。

テスト環境

クライアント

#!/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

結果

docs.google.com

tps

latency

CPU使用率

Performance Insights

log_statement=none

log_statement=all

log_statement=all (export)

参考リンク