PostgreSQLの性能評価をツールで簡単に一括管理
PostgreSQLの性能評価をツールで簡単に一括管理
はじめに
PostgreSQLの性能を比較したいとき、みなさんはどのように測定していますか?
単純に pgbench のような性能評価ツールを使うだけでも結果は得られますが、
環境差・手順差・タイミング差 により再現性がばらつきやすいのが課題です。
そこで、測定の手間や環境差を減らすために、
pgbenchによるベンチマークを自動化・定型化し、
さらに CPU温度 / 電力 / クロックMHz / ストレージ温度 まで同時計測できる
🧩 「pgbench-compare」 を作成しましたので紹介します。
ツール概要
-
名称:
pgbench-compare - リポジトリ: mono-tec/pgbench-compare
- 対応環境: Windows(PowerShell 7)
-
主な機能:
-
pgbenchの実行条件を自動設定 - 実行結果をログ・JSON形式で保存
- CPU温度 / 電力 / クロックMHz / ストレージ温度を同時計測
- システム情報(CPU / OS / メモリ)を自動取得
- 結果を比較可能な形式で蓄積(
summary.csv)
-
実行手順(Windows)
① 初期準備
windows\prep_db.bat
- 接続先情報を入力すると、
secrets/pgpass.localとrun_pgbench.ps1を作成します。 - テストDBが存在しない場合は自動作成します。
② ベンチマーク実行
ベンチマークを一括実行するには、次のバッチを実行します。
CPU温度や電力の取得に必要なため、自動で管理者モードに昇格して実行されます。
※既に管理者権限で実行している場合は、そのまま継続されます。
windows\launch_all.bat
- 標準(std)/読み取り専用(readonly)/書き込み専用(writeheavy)の3種類を
順番に実行します。
③ 集計(JSON → CSV)
windows\summarize.bat
-
results/raw/*.jsonからresults/summary.csvを生成します。
(既存CSVは連番バックアップとして保存されます)
出力結果は下記のように results/raw/ フォルダに格納されます。
results/raw/
├─ 20251101-MyPC-win11-std.json
├─ 20251101-MyPC-win11-readonly.json
├─ 20251101-MyPC-win11-writeheavy.json
└─ summary.csv
JSON出力例
{
"timestamp": "2025-11-01T21:43:23+09:00",
"workload": { "profile": "readonly", "duration_s": 60 },
"results": { "tps_avg": 6374.865, "latency_ms_avg": 0.157 },
"perf": {
"cpu_temp_c": { "avg_overall": 56.6 },
"cpu_power_w": { "avg_overall": 8.3 },
"cpu_clock_mhz": { "avg_overall": 3100 },
"storage_temp_c": { "avg_overall": 40.2 }
}
}
性能値(TPS/Latency)と温度・電力などの物理指標を参考値となりますが、
同じタイムスタンプで分析できます。
サンプルのご提供
Windows端末での PostgreSQL運用構成の違いによる性能傾向 を調べる目的で、
自分の学習記録と検証メモを兼ねてサンプルデータを公開しています。
実際の出力画面イメージ
下記のように、出力結果をブラウザで直接閲覧できるようにしています。
(pgbench結果のJSONとCPU-Z HTMLを並べて確認できる形式です)
① 一覧ビュー

② 端末詳細ビュー

③ JSON出力ビュー

これにより、ベンチマーク結果をブラウザで比較・確認できるようになりました。
GitHub上では直接は閲覧できませんが、
ローカルにダウンロードして開くとブラウザで確認できます。
本HTMLビューアは検証用途の簡易ツールです。
CPU-Z HTMLレポートにはサニタイズ(UUID・MAC・Serial・URL などのマスク処理)を実装していますが、既知・未知の脆弱性に対する完全な保証はできません。
ご利用は自己責任でお願いします。
解析や可視化は、公開されている JSON およびsummary.csvを活用し、
AIツールやスクリプト、BIツール等で自由に分析していただく形を推奨します。
本記事は、
PostgreSQL Advent Calendar 2025 の 12月2日 に参加しています。
PostgreSQL の性能評価やベンチマーク自動化に関する話題を扱っています。
他の日の記事も興味深い内容が多いので、ぜひあわせてご覧ください。
📦 最新版リリース
👉 https://github.com/mono-tec/pgbench-compare/releases
Discussion