第11章

サーバの調整

この章では、SMCを使用して、システムのパフォーマンスおよび効率的な操作全体に影響するサーバパラメータを管理する方法について説明します。この章を構成する節は次のとおりです。

 
Top of page

パフォーマンスパラメータの設定

パフォーマンスを向上させるには、SMCを使用して、バッファサイズおよびサーバタイムアウトパラメータを設定できます。

Procedure パフォーマンスパラメータを設定する

  1. SMCを開始します。

  2. ツールバーから[環境設定]アイコンを選択します。

  3. 詳細]を選択します。

  4. パフォーマンス]タブを選択します。

    performanceTab

  5. 必要に応じて設定を編集します。

    フィールド

    説明

    返信のバッファサイズ

    大きな返信が収集、コピー、およびクライアントに返送されるパケットのサイズ(バイト単位)。

    大きなサイズに設定するとパフォーマンスが向上する場合がありますが、使用できるサーバの物理メモリおよびクライアント接続数に応じて、8KBまたは16KBにサイズを制限することをお勧めします。

    セッションタイムアウト

    クライアントがアイドルになった後、サーバがクライアントとのセッションを終了するまでの時間。デフォルト値は5分です。

    セッションタイムアウト値は、セッションのオブジェクト変数が維持される長さに影響します。タイムアウトが長いほど、セッションに使用されるメモリがサーバによって消費される時間が長くなります。セッションオブジェクトを使用しない展開済みのアプリケーションでは、短いセッションタイムアウトを使用できますが、この値は4分以下に減らさないでください。

    サーバ要求のタイムアウト

    要求を受け取った瞬間から応答を返すまでの、クライアント要求を処理するための最大合計サーバサイド時間。これにより、サーバは持続的問題が発生した場合にタイムアウトできます。

    この値は、最大予測サーバ応答時間より大幅に長く設定する必要があります。

    サーブレットのバックグランドスレッドプールサイズ

    この値は、exteNd Directorポートレットを含むアプリケーションが展開されている場合にのみ設定します。

    0より大きい数字に設定した場合は、ポートレットコンテナがポートレットを表示するために同時に割り当てることのできるスレッドの数を指定することになります。

    接続の維持が有効になっています

    オンにすると、クライアント接続をサーバへの追加クライアント要求に再使用できます。

    サーバは、TCP/IPプロトコルを介してクライアント要求を受け付けるHTTPリスナを使用します。サーバは、クライアントTCP/IP接続を処理する特定数のスレッドを持つように設定されます(クライアント接続の管理を参照してください)。

    • [接続の維持が有効になっています]がオン(true)になっている場合、サーバは、新しいTCP/IP要求の処理後、同じクライアントTCP/IP接続から次のクライアント要求を読み込みます。

    • [接続の維持が有効になっています]が無効になっている場合、サーバは、新しいTCP/IP要求の処理後、クライアントのTCP/IP要求を閉じます。

  6. 更新]をクリックします。

  7. 新しい設定を有効にするために、[再起動](サーバ)ボタンをクリックします。

 
Top of page

クライアント接続の管理

この節では、サーバでクライアント接続を確立する方法、およびパフォーマンス向上のために接続パラメータを修正する方法について説明します。

注記:   クライアント接続は、データベース接続とは異なります。データベース接続については、データベース接続の管理で説明します。

 
Top of section

クライアントセッションおよびスレッド

クライアントが最初にHTTP経由でサーバと接続すると、サーバは接続プールから「スレッド」(使用できる場合)を割り当てることにより、接続を確立します。

スレッドについて

スレッドは、次の処理を行う軽量なバックグランドプロセスです。

スレッドは、クライアントまたはサーバがそのスレッドを閉じるまで、クライアント接続に関連付けられています。サーバは、設定可能な接続パラメータに従って接続を閉じます。接続が閉じられると、スレッドはクライアント接続プールに戻されます。

セッションオブジェクトについて

セッション」は、次の処理を行うサーバ上のオブジェクトです。

サーバセッションとのクライアント接続および関連スレッドは、次の図のとおりです。

SessionThread

 
Top of section

クライアント接続パラメータ

アプリケーションサーバは、合計許容クライアント接続数(スレッド)を制限しています。運用環境でサーバロードを管理するため、この割り当て内で接続パラメータを修正できます。サーバは、個々の接続状況と全体的なロードの観点から、クライアント接続を定義します。

接続状況

各クライアント接続(スレッド)の状況は、次のいずれかです。

セッションタイムアウト期間中にスレッドがアイドルになっていると、アプリケーションサーバは接続を閉じて、接続プールにスレッドを戻します。タイムアウト期間はユーザが設定できます。パフォーマンスパラメータの設定を参照してください。

スレッドは通常、次のライフサイクルを持ちます。

ThreadLifecycle

ロードレベル

サーバのロードレベルには、「軽負荷」および「高負荷」の2つがあります。新しい接続が要求されたとき、ロードレベルによって動作が異なります。

ロードレベルに基づくアプリケーションサーバの動作   サーバが新しい接続の要求を受け取ると、次の処理が実行されます。

  1. サーバに新しい接続が要求されます。

  2. アプリケーションサーバは、ロードレベルに基づいて次のように応答します。

    ロードレベル

    アプリケーションサーバでの処理内容

    軽負荷

    新しい要求は空きスレッドに割り当てられます。

    アクティブな接続がアイドルになった場合は、その接続はタイムアウトになるまで開かれたままです。

    高負荷

    サーバは、古いアイドル接続(可能な場合は、サーバを「軽負荷」ロードレベルにするのに十分な数のアイドル接続)を閉じ、スレッドを接続プールに戻してから、空きスレッドを新しい要求に割り当てます。

    アイドル接続がない場合(許容接続数のすべてがアクティブな場合)、ダイナミックに割り当てられるクライアント接続を許可するようサーバを設定しない限り、新しい要求は拒否されます(接続パラメータの設定を参照)。

ロードレベル決定方法の指定   SMCを使用して、ロードが「軽負荷」または「高負荷」のいずれであるかをサーバが判別する方法を指定できます。次の説明で、太字の用語はSMCのプロパティのラベルを指します。

接続パラメータの設定

SMCで接続パラメータを設定できます。

Procedure クライアント接続パラメータを設定する

  1. SMCを開始します。

  2. ツールバーから[環境設定]アイコンを選択します。

  3. 接続]を選択します。

    connectionsTab

  4. 次のように設定を指定します。

    フィールド

    説明およびガイドライン

    クライアント接続の最大数

    クライアント接続プールの最大接続数を決定します。ハード制限です。

    ガイドライン - 次のように設定します。

      同時セッションの最大数 + 10 %
    

    (1セッションに1つのアクティブ接続があることを前提とします。)

    このパラメータの設定が高すぎると、システムリソースがアプリケーションサーバによって過剰に消費されます。設定が低すぎると、接続が拒否される場合があります。ピークサーバロードがクライアント接続プールサイズを超えても、着信クライアント要求を拒否したくない場合は、サーバプロパティ[ダイナミックに割り当てたクライアント接続]を設定できます(次を参照)。

    NetWare以外のプラットフォームインストール用のデフォルト値

    • ExpressまたはServer Express - 25

    • ServerまたはCustom - 250

    NetWareインストール用のデフォルト値

    • exteNd J2EE Web Application Server - 250

    • Customized NetWare Server - 25

    アイドルクライアント再利用前の空きクライアント接続数

    空き接続数がこの値より少ない場合、アプリケーションサーバはアイドルクライアントのブロックを再利用します。

    ガイドライン - 次のように設定します。

      0.2 * クライアント接続の最大数
    

    NetWare以外のプラットフォームインストール用のデフォルト値

    • ExpressまたはServer Express - 5

    • ServerまたはCustom - 50

    NetWareインストール用のデフォルト値

    • exteNd J2EE Web Application Server - 50

    • Customized NetWare Server - 5

    空きクライアント接続(軽負荷)

    アプリケーションサーバのロードレベルを決定します。空き接続数がこの値より少ない場合、アプリケーションサーバのロードレベルは高負荷です。

    ガイドライン - 次のように設定します。

      0.8 * クライアント接続の最大数
    

    NetWare以外のプラットフォームインストール用のデフォルト値

    • ExpressまたはServer Express - 5

    • ServerまたはCustom - 200

    NetWareインストール用のデフォルト値

    • exteNd J2EE Web Application Server - 200

    • Customized NetWare Server - 20

    アイドルクライアント接続予約

    アイドルクライアント接続数がこの値より多い場合、アプリケーションサーバのロードは軽負荷です。

    イントラネットアプリケーションの場合など、アプリケーションのユーザロードが安定している場合は、この値を低く設定します。低い設定は、アプリケーションのロードが通常は軽負荷であるため、アイドル接続がより長い時間維持されることを意味します。つまり、既存のユーザは接続をより長い時間維持できます。

    インターネットアプリケーション(ユーザのロードは大幅に異なる可能性があります)に対しては、新しいユーザがより確実に接続を取得できるように、比較的高く設定することができます。アイドル接続はより短時間で終了します。

    ガイドライン - 次のように設定します。

      0.5* クライアント接続の最大数
    

    NetWare以外のプラットフォームインストール用のデフォルト値

    • ExpressまたはServer Express - 12

    • ServerまたはCustom - 125

    NetWareインストール用のデフォルト値

    • exteNd J2EE Web Application Server - 125

    • Customized NetWare Server - 12

    ダイナミックに割り当てたクライアント接続

    クライアントスレッドのダイナミックな作成をアプリケーションサーバに許可します。このようにダイナミックに割り当てられたスレッドは、ピークアプリケーションサーバロードがクライアント接続プールのサイズを超えた場合の影響を緩和します。これらのスレッドがオフピーク期間にシステムリソースを使い果たすことはありません。

    ガイドライン:

    • この値を設定しない場合 - ピーク使用量期間に十分なスレッドが使用できるよう、[クライアント接続の最大数]を設定します。設定しない場合、一部の接続要求が拒否されます。オフピーク期間中、これらの余分なスレッドはアプリケーションサーバのリソースを使用します。

    • この値を設定する場合 - [クライアント接続の最大数]の値をピークサイズより低く(オフピーク時間中に処理される同時要求の通常数より若干大きく)設定し、[ダイナミックに割り当てたクライアント接続]を設定してピーク使用量を処理します。

      つまり、ほとんどの場合、プールは追加のスレッド割り当てを必要とせずにすべての要求を処理でき、スレッドがダイナミックに割り当てられてトラフィックピークを処理します。この値を超えるとアプリケーションサーバは着信要求を拒否するため、アプリケーションサーバは[ダイナミックに割り当てたクライアント接続]によってサービス拒否攻撃から保護されます。

    NetWare以外のプラットフォームインストール用のデフォルト値

    • ExpressまたはServer Express - 40

    • ServerまたはCustom - 250

    NetWareインストール用のデフォルト値

    • exteNd J2EE Web Application Server - 500

    • Customized NetWare Server - 250

  5. 更新]をクリックします。

    新しい設定はただちに有効になります。

 
Top of page

サーバコンテンツキャッシュの管理

アプリケーションサーバは、リソースの命名および属性情報を含むさまざまな目的にサーバサードキャッシュを使用します。また、メモリ内またはディスク上のファイルリソースのコンテンツも保存(またはキャッシュ)します。ほとんどの場合、パフォーマンスに影響する点を除けば、ユーザがキャッシュを意識することはありません。

2つのキャッシュ

各アプリケーションサーバには、独立した次の2つのキャッシュがあります。

キャッシュ

説明

メモリキャッシュ

このキャッシュは完全にメモリ内に保持されており、小さなファイルの格納が対象です。

ディスクキャッシュ

このキャッシュはディスク上にあり、大きなファイルを対象とします。

設定できる内容

各キャッシュでは、次の2つの設定が可能です。

設定

説明

最大コンテンツサイズ

キャッシュに格納できる個々のファイルの最大サイズ

最大キャッシュサイズ

キャッシュ自体の最大サイズ(キャッシュ内にあるすべてのファイルの合計サイズ)

ディスクキャッシュに使用されるディレクトリも指定できます。

アプリケーションサーバのキャッシュ使用方法

アプリケーションサーバは、ファイルサイズに基づいて、各ファイルに最適なキャッシュを使用します。小さなファイルはメモリキャッシュに保存され、大きなファイルはディスクキャッシュに保存されます。非常に大きなファイルはキャッシュされません。サーバは、各キャッシュ内のLRU(最近、最も使用されていないもの)アルゴリズムを使用して、キャッシュがいっぱいになると古い(最近使用されていない)ファイルを処分します。

Procedure キャシュ設定を設定する

  1. SMCを開始します。

  2. ツールバーから[環境設定]アイコンを選択します。

  3. 詳細]オプションを選択します。

  4. キャッシュ]タブを選択します。

    次のようなパネルが表示されます。

    cacheTab

  5. 次のように設定を指定します。

    フィールド

    説明

    有効なコンテンツキャッシュ

    コンテンツキャッシュを有効または無効にします。オフにすると、すべてのコンテンツキャッシュがオフになります。

    頻繁に要求されるファイルリソースをキャッシュすると、リソースの応答時間が向上します。デバッギング目的でのみオフにします。

    ディスクキャッシュの最大サイズ

    ディスクキャッシュの最大サイズ(バイト単位)。キャッシュ内にあるすべてのファイルの合計サイズは、常にこのサイズ以下になります。0に設定すると、ディスクキャッシュは無効になります。

    一般的に、このキャッシュは、メモリ内キャッシュサイズを決定した後に、頻繁に使用されるファイルの残りを保存するのに十分な大きさにします(下のメモリ内キャッシュの 最大サイズの説明を参照)。

    ディスクキャッシュにキャッシュされるファイルの最大サイズ

    ディスクキャッシュでキャッシュされるファイルの最大サイズ(バイト単位)。

    このサイズ以下であってもメモリ内キャッシュには大きすぎるファイルは、ディスクキャッシュにキャッシュされます。このサイズより大きなファイルはキャッシュされません。

    メモリ内キャッシュの最大サイズ

    メモリ内キャッシュの最大サイズ(バイト単位)。キャッシュ内にあるすべてのファイルの合計サイズは、常にこのサイズ以下になります。0に設定すると、メモリ内キャッシュは実質的に無効になります。

    一般的には、システムで過剰なページアクティビティが発生しないできるだけ大きなサイズにします。

    メモリ内キャッシュにキャッシュされるファイルの最大サイズ

    メモリ内キャッシュでキャッシュされるファイルの最大サイズ(バイト単位)。これ以下のサイズのファイルは、メモリ内キャッシュにキャッシュされます。

    ディスクキャッシュエントリのディレクトリ

    ディスクキャッシュエントリが保存されるディレクトリ。デフォルトでは、アプリケーションサーバのインストールディレクトリのサブディレクトリです。

    このディレクトリが存在しない場合は、サーバによって作成されます。また、起動時にこのディレクトリからキャッシュファイルをすべてクリアしようとします(キャッシュ専用ディレクトリを用意することをお勧めします)。

    サーバがこのディレクトリを見つけられないか、または作成できない場合、ディスクキャッシュは無効になります。

  6. 更新]をクリックします。

    新しい設定はただちに有効になります。

 
Top of page

接続プールの管理

この節では、次のトピックについて説明します。

 
Top of section

接続プールの接続について

アプリケーションサーバは、接続プールを使用して、J2EEアプリケーションとデータソース間のすべての接続を処理します。 通常、接続プールの接続は、JDBCまたはRAR(Resource Adapter Archive)を介してアプリケーションサーバとデータソースの間に確立されたTCP/IP接続です。

ほとんどのデータベースまたはEIS(Enterprise Information System)サーバでは、同時に開くことができる通信数が制限されています。SMCを使用して、アプリケーションサーバによって使用される最小(初期)および最大接続数を各データソースに設定できます。

最高のパフォーマンスを得るには、通常、開いているデータソース接続の最大数を、データソースに対して同時にクエリまたは更新を行う最大ユーザ数に等しい値に設定します。

正しい接続数の決定

設定した最大数が小さすぎると、パフォーマンスが低下します。すべての接続が使用中のときにクライアントがデータソースにアクセスしようとすると、実行中のクエリまたは更新が完了するまで、クライアントはブロックされます。異なる最大設定を試して、サーバパフォーマンスを最適化することができます。

他のアプリケーションがアプリケーションサーバとは別にデータソースサーバへの接続を確立する場合は、開いているアプリケーションサーバ接続の最大数を減らして、データソースへのアクセスが必要なすべてのプロセスがデータソースに接続できるようにする必要があります。

DBMSまたはEISのマニュアルを参照して、データソースにアクセスする他のアプリケーションを考慮に入れ、SMCで指定されたクライアント接続数を受け入れるようにデータソースが設定されていることを確認します。

 
Top of section

接続プールの接続数の設定

SMCの[プール]タブを使用して、次のJDBCおよびコネクタ接続プールを管理できます。

各接続プールに値を指定します。

Procedure 接続プール設定を更新する

  1. SMCを開始します。

  2. ツールバーから[環境設定]アイコンを選択します。

  3. プール]を選択します。

  4. コネクタ]または[JDBC]を選択して、使用できる接続プールを表示します。

  5. 接続値を修正する接続プールを選択して、[編集]を選択します。

    JDBC接続プールの編集ウィザードが表示されます。

    接続プールのさまざまな設定を表示できますが、更新できるのは最小および最大接続値と接続プールタイムアウト値のみです。

  6. 次へ]を選択して、次に示す最小および最大接続値を表示するパネルまでウィザードを進めます。

    tunconpoolvalues

    フィールド

    説明

    最小接続数

    接続プールのデフォルト最小接続数。アプリケーションサーバは、起動するとただちにこの数の接続を確立して、サーバが動作している限り、開いたままにします。

    注記:   データソースがクラッシュして再起動した場合、アプリケーションサーバは古い接続を削除し、必要に応じて新しい接続を再確立します。最少接続数として指定された接続数はただちに確立されません。

    最大接続数

    接続プールのデフォルト最大接続数。アプリケーションサーバは、要求に応じて接続をこの数まで開きます。

    開いているアプリケーションサーバ接続の最大数が、EISによって許可されている合計数以下であることを確認します。それ以外の場合、接続を開こうとすると、データソースサーバからアプリケーションサーバにエラーが返されます。

    アイドル接続タイムアウト

    アイドルタイムアウト(秒単位)。デフォルトは60秒です。-1に設定すると、アイドルタイムアウトが無効になり、アイドル接続は閉じられなくなります。

    接続待機タイムアウト

    接続待機タイムアウト(秒単位)。デフォルトは30秒です。-1に設定すると、クライアントは、接続が使用可能になるまで待機する必要があります。

    ログレベル

    レベルは次のとおりです。

    0 - ログ記録がオフになっている

    1 - 基本的な接続プール操作をログ記録する

    2 - レベル1 + より詳細な操作とエラーメッセージ

    3 - レベル2 + JDBCドライバまたはコネクタリソースアダプタによって生成された例外スタックトレースとトレース出力

    メッセージは、サーバコンソールに書き込まれます。

  7. 更新]をクリックします。

  8. 新しい設定を有効にするために、[再起動]ボタンをクリックします。

 
Top of page

データベース接続の管理

この節では、次のトピックについて説明します。

 
Top of section

データベース接続およびパフォーマンスについて

アプリケーションサーバは、クライアントと展開データベース間のすべての接続を処理します。通常、各データベース接続は、JDBCを介してアプリケーションサーバとデータベースサーバの間で確立されるTCP/IP接続です。

ほとんどのデータベースサーバでは、同時に開くことのできるデータベース接続数が制限されています。SMCを使用して、アプリケーションサーバに使用される最小(初期)および最大接続数を各データベースに設定できます。

通常、開いている展開データベース接続の最大数は、データベースに対して同時にクエリまたは更新を実行するユーザの最大数に等しい数に設定します。

正しい最大接続数の決定

設定した最大数が小さすぎると、パフォーマンスが低下します。すべての接続が使用中のときに、クライアントがデータベースにアクセスしようとすると、実行中のクエリまたは更新が完了するまで、クライアントはブロックされます。異なる最大設定を試して、サーバパフォーマンスを最適化することができます。

他のデータベースユーザがアプリケーションサーバとは別にデータベースサーバへの接続を確立する場合は、開いている接続の最大数を減らす必要があります。 これにより、アプリケーションサーバ以外のユーザがデータベース接続を使用できます。

DBMSのマニュアルを参照して、データベースにアクセスする他のアプリケーションを考慮に入れ、SMCで指定されたクライアント接続数を受け入れるようにデータベースが設定されていることを確認します。

MaxConnections

 
Top of section

最大および最小データベース接続数の設定

デフォルトの最大および最小データベース接続数だけでなく、特定のデータベースの接続数を設定することもできます。これは、SMCの[データベース]パネルで設定します。

デフォルト接続数の設定

デフォルトの最小および最大データベース接続数を設定できます。値は次のデータベースによって使用されます。

注記:   特定のデータベースのデフォルトを上書きするには、特定のデータベースの接続数の設定を参照してください。

Procedure デフォルトの最大および最小データベース接続数を設定するには

  1. SMCを開始します。

  2. ツールバーから[環境設定]アイコンを選択します。

  3. データベース]を選択します。

    databasesPanel

  4. 必要に応じて、パネル上部のフィールドを編集します。

    フィールド

    説明

    データベース接続の最小数(全データベースに適用)

    データベースのデフォルト最小接続数。アプリケーションサーバは、起動するとただちにこの数の接続を確立して、サーバが動作している限り、開いたままにします。

    注記:   データベースがクラッシュして再起動した場合、アプリケーションサーバは古い接続を破棄し、必要に応じて新しい接続を再確立します。最少接続数として指定された接続数はただちに確立されません。

    データベース接続の最大数(全データベースに適用)

    データベースのデフォルト最大接続数。アプリケーションサーバは、要求に応じて接続をこの数まで開きます。

    開いている接続の最大数が、データベースサーバによって許可されている合計数以下であることを確認します。それ以外の場合、接続を開こうとすると、データベースサーバからアプリケーションサーバにエラーが返されます。

    For more information    詳細については、データベース接続およびパフォーマンスについてを参照してください。

  5. 更新]をクリックします。

デフォルトの再設定

デフォルトの最小および最大データベース接続数を再設定できます。これは、サーバのすべてのデータベースに適用されます。

Procedure デフォルトを再設定する

特定のデータベースの接続数の設定

特定のデータベースのデフォルトデータベース接続数を上書きできます。

Procedure 特定のデータベースのデフォルト最小/最大接続を上書きする

  1. SMCを開始します。

  2. ツールバーから[環境設定]アイコンを選択します。

  3. データベース]を選択します。

  4. [データベース設定]の下にあるリストボックスから、設定するデータベースを選択します。

    DatabasesPanelNewValues

  5. データベース名の下にある次のフィールドを編集することにより、特定のデータベースの最小および最大データベース接続数を設定します。

    フィールド

    説明

    最小接続数

    アプリケーションサーバは、起動するとただちにこの数の接続を確立して、サーバを実行している限り、開いたままにします。ここで値を設定すると、デフォルト値が上書きされます。

    注記:   データベースがクラッシュして再起動した場合、アプリケーションサーバは古い接続を破棄し、必要に応じて新しい接続を再確立します。最少接続数として指定された接続数はただちに確立されません。

    最大接続数

    アプリケーションサーバは、必要に応じて追加接続をこの数まで開きます。ここで値を設定すると、デフォルト値が上書きされます。

    開いている接続の最大数が、データベースサーバによって許可されている合計数以下であることを確認します。それ以外の場合、接続を開こうとすると、データベースサーバからアプリケーションサーバにエラーが返されます。

    For more information    詳細については、データベース接続およびパフォーマンスについてを参照してください。

  6. 更新]をクリックします。

値のデフォルトへの復元

特定のデータベースの最小または最大接続数をデフォルト値にリセットできます。

Procedure 最小/最大接続をデフォルトに復元する

  1. リストボックスから設定するデータベースを選択します。

  2. 選択したデータベースの[最小接続数]または[最大接続数]の横にある[リセット]をクリックします。

    resetDBsingle

    最小または最大接続数がデフォルト値(パネル上部に表示)にリセットされます。



Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...