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-prefilltrue に設定すると、JBoss EAP は起動時により多くのリソースを使用しますが、初期トランザクションの待ち時間が短縮されます。

    min-pool-size を最適化した場合、Red Hat は pool-prefilltrue に設定することを推奨します。

    厳密な最小値

    pool-use-strict-min 属性は、プールの接続数が指定の最小値を下回ることが可能であるかどうかを指定します。

    pool-use-strict-mintrue に設定すると、接続数は一時的に指定の最小値を下回ることができません。デフォルト値は false です。

    プール接続の最小数が指定されていても、JBoss EAP が接続を閉じるときなどに接続がアイドル状態になり、タイムアウトすると、新しい接続が作成されプールに追加される前に、合計接続数が一時的に最小数を下回ることがあります。

    タイムアウト

    接続プールに設定可能なタイムアプトオプションは複数ありますが、パフォーマンスのチューニングには idle-timeout-minutes が重要です。

    idle-timeout-minutes 属性は、接続が閉じられるまでにアイドル状態でいられる最大期間を分単位で指定します。アイドル接続が閉じられると、プールの接続数が指定の最小値まで減少します。

    タイムアウトが長いほどより多くのリソースが使用されますが、リクエストはより迅速に対応されます。タイムアウトが短いほどより少ないリソースが使用されますが、リクエストは新しい接続が作成されるまで待機する必要があることがあります。