6.2. プールの属性
ここでは、データソースまたはリソースアダプターのパフォーマンスを最適化するために設定できる一部のプール属性の推奨設定について説明します。各属性の設定方法は以下を参照してください。
- データソースプール属性の設定
- 最小プールサイズ
min-pool-size
属性は、接続プールの最小サイズを定義します。デフォルトではゼロ個の接続が最小です。min-pool-size
がゼロの場合、最初のトランザクションの発生時に接続が作成され、プールに置かれます。min-pool-size
が小さすぎると、新しい接続の確立が必要となる可能性があるため、最初のデータベースコマンドの実行中に待ち時間が長くなります。min-pool-size
が大きすぎると、データソースまたはリソースアダプターへ無駄な接続が発生します。アクティビティーのない期間が続くと、接続プールは縮小され、
min-pool-size
の値まで縮小される可能性があります。Red Hat は、
min-pool-size
をアプリケーションに適したオンデマンドスループットを可能にする接続数に設定することを推奨します。- 最大プールサイズ
max-pool-size
属性は、接続プールの最大サイズを定義します。これは、アクティブな接続の数を制限し、同時アクティビティーの量も制限するため、重要なパフォーマンスパラメーターとなります。max-pool-size
が小さすぎると、リクエストが不必要にブロックされます。max-pool-size
が大きすぎると、JBoss EAP の環境、データソース、またはリソースアダプターによって、処理能力を超えた量のリソースが使用されます。Red Hat は、負荷のかかった状態で
パフォーマンスを監視
した後に測定された許容範囲のMaxUsedCount
よりも 15% 以上高い max-pool-size を設定することを推奨します。これにより、想定以上の条件でも多少のバッファーを確保できるようにします。- プレフィル
pool-prefill
属性は、JBoss EAP の起動時に JBoss EAP が 最低接続数で接続プールをプレフィルするかどうかを指定します。デフォルト値はfalse
です。pool-prefill
をtrue
に設定すると、JBoss EAP は起動時により多くのリソースを使用しますが、初期トランザクションの待ち時間が短縮されます。min-pool-size
を最適化した場合、Red Hat はpool-prefill
をtrue
に設定することを推奨します。- 厳密な最小値
pool-use-strict-min
属性は、プールの接続数が指定の最小値を下回ることが可能であるかどうかを指定します。pool-use-strict-min
をtrue
に設定すると、接続数は一時的に指定の最小値を下回ることができません。デフォルト値はfalse
です。プール接続の最小数が指定されていても、JBoss EAP が接続を閉じるときなどに接続がアイドル状態になり、タイムアウトすると、新しい接続が作成されプールに追加される前に、合計接続数が一時的に最小数を下回ることがあります。
- タイムアウト
接続プールに設定可能なタイムアプトオプションは複数ありますが、パフォーマンスのチューニングには
idle-timeout-minutes
が重要です。idle-timeout-minutes
属性は、接続が閉じられるまでにアイドル状態でいられる最大期間を分単位で指定します。アイドル接続が閉じられると、プールの接続数が指定の最小値まで減少します。タイムアウトが長いほどより多くのリソースが使用されますが、リクエストはより迅速に対応されます。タイムアウトが短いほどより少ないリソースが使用されますが、リクエストは新しい接続が作成されるまで待機する必要があることがあります。