Azure Database for PostgreSQLに... ノート

Azure Database for PostgreSQLにおけるHikariCPの一般的なベストプラクティス

Azure Database for PostgreSQL のパフォーマンスにとって、コネクションプーリングは極めて重要です。なぜなら、新しいコネクションを確立するのはリソースを大量に消費するからです。人気の Java コネクションプールである HikariCP は、設定を誤ると、枯渇、古いコネクション、またはレイテンシを引き起こす問題に遭遇する可能性があります。Maximum lifetime は、コネクションがリタイアされる前に再利用される期間を制御し、30分が一般的で効果的な設定です。Minimum idle connections は、トラフィックの急増に即座に対応できるように、最大プールサイズと一致させることが理想的です。Idle timeout は、未使用のコネクションが削除されるまでの時間を決定し、デフォルトの10分は良好なバランスを提供します。Maximum pool size は重要であり、小さすぎるとタイムアウトが発生し、大きすぎるとデータベースに過負荷がかかります。Maximum pool size の控えめな開始点は 10〜20 で、負荷テスト後に調整します。TCP keepalive を有効にすると、ネットワークデバイスによって引き起こされる古いコネクションを防ぐことができます。アクティブおよびアイドルコネクション、取得時間、プール枯渇を監視することで、適切なサイジングを特定するのに役立ちます。長時間実行されるクエリは、プール枯渇の根本原因であることが多いため、クエリパフォーマンスを調査する必要があります。これらのパラメータのバランスを取り、Azure Database for PostgreSQL 用にサンプル本番環境設定を提供します。主な目標は、単にコネクションを最大化することではなく、アプリケーションの応答性とデータベースリソース消費の健全なバランスを取ることです。これらのプラクティスに従うことで、Azure Database for PostgreSQL に接続するアプリケーションのスケーラビリティ、レイテンシ、および信頼性が向上します。