コネクションプールは大きいほど良いわけではありません
データベースのコネクションプールサイズを決める際によくある誤解が「大きいほど安全」という考えです。しかし接続一つひとつがデータベースサーバーのメモリとCPUコンテキストを占有するため、必要以上に大きいプールはむしろデータベースの性能を落とす可能性があります。適正サイズを見つける最も実用的な方法はリトルの法則(Little's Law)を応用することです。
リトルの法則によると、ある時点で必要な平均同時接続数は「秒間リクエスト数 × 平均処理時間」で近似できます。この計算機は秒間リクエスト数(RPS)と平均クエリ処理時間を入力してこの値を計算し、トラフィック変動に対応する余裕率を加えて最終的な推奨プールサイズを提示します。例えば秒間100件のリクエストが入り、クエリ1件に20msかかる場合、理論上必要な同時接続は2個に過ぎませんが、トラフィックの変動を考慮して余裕率を加えるわけです。
参考までに、HikariCPのような有名なコネクションプールライブラリは「CPUコア数 × 2 + 有効ディスクスピンドル数」のようなハードウェア基準の公式も提示しています。両方のアプローチを併せて参考にし、トラフィックパターンとサーバースペックに合ったサイズを見つけるのが良いでしょう。プールサイズを決めた後は、実際の運用環境で接続待ち時間と使用率指標をモニタリングしながら値を調整するのが安全です。
よくある質問
いいえ。不必要に大きいプールはデータベースサーバーのリソースを浪費し、むしろ全体の性能を落とす可能性があります。
トラフィック変動が大きいサービスは20~30%、安定したサービスは10~15%程度が一般的な参考値です。
コア数基準の公式はハードウェアの限界を、この計算機は実際のトラフィックパターンを基準にするアプローチで、互いに補完的に活用できます。