第11章
この章では、SMCを使用して、システムのパフォーマンスおよび効率的な操作全体に影響するサーバパラメータを管理する方法について説明します。この章を構成する節は次のとおりです。
パフォーマンスを向上させるには、SMCを使用して、バッファサイズおよびサーバタイムアウトパラメータを設定できます。
フィールド |
説明 |
---|---|
返信のバッファサイズ |
大きな返信が収集、コピー、およびクライアントに返送されるパケットのサイズ(バイト単位)。 大きなサイズに設定するとパフォーマンスが向上する場合がありますが、使用できるサーバの物理メモリおよびクライアント接続数に応じて、8KBまたは16KBにサイズを制限することをお勧めします。 |
セッションタイムアウト |
クライアントがアイドルになった後、サーバがクライアントとのセッションを終了するまでの時間。デフォルト値は5分です。 セッションタイムアウト値は、セッションのオブジェクト変数が維持される長さに影響します。タイムアウトが長いほど、セッションに使用されるメモリがサーバによって消費される時間が長くなります。セッションオブジェクトを使用しない展開済みのアプリケーションでは、短いセッションタイムアウトを使用できますが、この値は4分以下に減らさないでください。 |
サーバ要求のタイムアウト |
要求を受け取った瞬間から応答を返すまでの、クライアント要求を処理するための最大合計サーバサイド時間。これにより、サーバは持続的問題が発生した場合にタイムアウトできます。 この値は、最大予測サーバ応答時間より大幅に長く設定する必要があります。 |
サーブレットのバックグランドスレッドプールサイズ |
この値は、exteNd Directorポートレットを含むアプリケーションが展開されている場合にのみ設定します。 0より大きい数字に設定した場合は、ポートレットコンテナがポートレットを表示するために同時に割り当てることのできるスレッドの数を指定することになります。 |
接続の維持が有効になっています |
オンにすると、クライアント接続をサーバへの追加クライアント要求に再使用できます。 サーバは、TCP/IPプロトコルを介してクライアント要求を受け付けるHTTPリスナを使用します。サーバは、クライアントTCP/IP接続を処理する特定数のスレッドを持つように設定されます(クライアント接続の管理を参照してください)。 |
この節では、サーバでクライアント接続を確立する方法、およびパフォーマンス向上のために接続パラメータを修正する方法について説明します。
注記: クライアント接続は、データベース接続とは異なります。データベース接続については、データベース接続の管理で説明します。
クライアントが最初にHTTP経由でサーバと接続すると、サーバは接続プールから「スレッド」(使用できる場合)を割り当てることにより、接続を確立します。
スレッドは、次の処理を行う軽量なバックグランドプロセスです。
スレッドは、クライアントまたはサーバがそのスレッドを閉じるまで、クライアント接続に関連付けられています。サーバは、設定可能な接続パラメータに従って接続を閉じます。接続が閉じられると、スレッドはクライアント接続プールに戻されます。
「セッション」は、次の処理を行うサーバ上のオブジェクトです。
クライアントのセッションオブジェクトにプログラム上含まれているアプリケーションデータを保存する(各クライアントの購入などの情報を途中で保存する必要があるショッピングカートアプリケーションなど)。
すべてのスレッドがプールに戻された後、指定された時間(セッションタイムアウト期間)は接続を維持する(複数のクライアントスレッドがセッションに関連付けられている場合もあります)。これにより、クライアントは指定した期間内にセッションに再接続できます。デフォルトタイムアウトは5分です。セッションオブジェクトがサーバによって削除されると、コンテンツは失われます。
サーバセッションとのクライアント接続および関連スレッドは、次の図のとおりです。
アプリケーションサーバは、合計許容クライアント接続数(スレッド)を制限しています。運用環境でサーバロードを管理するため、この割り当て内で接続パラメータを修正できます。サーバは、個々の接続状況と全体的なロードの観点から、クライアント接続を定義します。
各クライアント接続(スレッド)の状況は、次のいずれかです。
セッションタイムアウト期間中にスレッドがアイドルになっていると、アプリケーションサーバは接続を閉じて、接続プールにスレッドを戻します。タイムアウト期間はユーザが設定できます。パフォーマンスパラメータの設定を参照してください。
スレッドは通常、次のライフサイクルを持ちます。
サーバのロードレベルには、「軽負荷」および「高負荷」の2つがあります。新しい接続が要求されたとき、ロードレベルによって動作が異なります。
ロードレベルに基づくアプリケーションサーバの動作 サーバが新しい接続の要求を受け取ると、次の処理が実行されます。
アプリケーションサーバは、ロードレベルに基づいて次のように応答します。
ロードレベル |
アプリケーションサーバでの処理内容 |
---|---|
軽負荷 |
新しい要求は空きスレッドに割り当てられます。 アクティブな接続がアイドルになった場合は、その接続はタイムアウトになるまで開かれたままです。 |
高負荷 |
サーバは、古いアイドル接続(可能な場合は、サーバを「軽負荷」ロードレベルにするのに十分な数のアイドル接続)を閉じ、スレッドを接続プールに戻してから、空きスレッドを新しい要求に割り当てます。 アイドル接続がない場合(許容接続数のすべてがアクティブな場合)、ダイナミックに割り当てられるクライアント接続を許可するようサーバを設定しない限り、新しい要求は拒否されます(接続パラメータの設定を参照)。 |
ロードレベル決定方法の指定 SMCを使用して、ロードが「軽負荷」または「高負荷」のいずれであるかをサーバが判別する方法を指定できます。次の説明で、太字の用語はSMCのプロパティのラベルを指します。
SMCで接続パラメータを設定できます。
アプリケーションサーバは、リソースの命名および属性情報を含むさまざまな目的にサーバサードキャッシュを使用します。また、メモリ内またはディスク上のファイルリソースのコンテンツも保存(またはキャッシュ)します。ほとんどの場合、パフォーマンスに影響する点を除けば、ユーザがキャッシュを意識することはありません。
各アプリケーションサーバには、独立した次の2つのキャッシュがあります。
キャッシュ |
説明 |
---|---|
メモリキャッシュ |
このキャッシュは完全にメモリ内に保持されており、小さなファイルの格納が対象です。 |
ディスクキャッシュ |
このキャッシュはディスク上にあり、大きなファイルを対象とします。 |
各キャッシュでは、次の2つの設定が可能です。
設定 |
説明 |
---|---|
最大コンテンツサイズ |
キャッシュに格納できる個々のファイルの最大サイズ |
最大キャッシュサイズ |
キャッシュ自体の最大サイズ(キャッシュ内にあるすべてのファイルの合計サイズ) |
ディスクキャッシュに使用されるディレクトリも指定できます。
アプリケーションサーバは、ファイルサイズに基づいて、各ファイルに最適なキャッシュを使用します。小さなファイルはメモリキャッシュに保存され、大きなファイルはディスクキャッシュに保存されます。非常に大きなファイルはキャッシュされません。サーバは、各キャッシュ内のLRU(最近、最も使用されていないもの)アルゴリズムを使用して、キャッシュがいっぱいになると古い(最近使用されていない)ファイルを処分します。
フィールド |
説明 |
---|---|
有効なコンテンツキャッシュ |
コンテンツキャッシュを有効または無効にします。オフにすると、すべてのコンテンツキャッシュがオフになります。 頻繁に要求されるファイルリソースをキャッシュすると、リソースの応答時間が向上します。デバッギング目的でのみオフにします。 |
ディスクキャッシュの最大サイズ |
ディスクキャッシュの最大サイズ(バイト単位)。キャッシュ内にあるすべてのファイルの合計サイズは、常にこのサイズ以下になります。0に設定すると、ディスクキャッシュは無効になります。 一般的に、このキャッシュは、メモリ内キャッシュサイズを決定した後に、頻繁に使用されるファイルの残りを保存するのに十分な大きさにします(下のメモリ内キャッシュの 最大サイズの説明を参照)。 |
ディスクキャッシュにキャッシュされるファイルの最大サイズ |
ディスクキャッシュでキャッシュされるファイルの最大サイズ(バイト単位)。 このサイズ以下であってもメモリ内キャッシュには大きすぎるファイルは、ディスクキャッシュにキャッシュされます。このサイズより大きなファイルはキャッシュされません。 |
メモリ内キャッシュの最大サイズ |
メモリ内キャッシュの最大サイズ(バイト単位)。キャッシュ内にあるすべてのファイルの合計サイズは、常にこのサイズ以下になります。0に設定すると、メモリ内キャッシュは実質的に無効になります。 一般的には、システムで過剰なページアクティビティが発生しないできるだけ大きなサイズにします。 |
メモリ内キャッシュにキャッシュされるファイルの最大サイズ |
メモリ内キャッシュでキャッシュされるファイルの最大サイズ(バイト単位)。これ以下のサイズのファイルは、メモリ内キャッシュにキャッシュされます。 |
ディスクキャッシュエントリのディレクトリ |
ディスクキャッシュエントリが保存されるディレクトリ。デフォルトでは、アプリケーションサーバのインストールディレクトリのサブディレクトリです。 このディレクトリが存在しない場合は、サーバによって作成されます。また、起動時にこのディレクトリからキャッシュファイルをすべてクリアしようとします(キャッシュ専用ディレクトリを用意することをお勧めします)。 サーバがこのディレクトリを見つけられないか、または作成できない場合、ディスクキャッシュは無効になります。 |
この節では、次のトピックについて説明します。
アプリケーションサーバは、接続プールを使用して、J2EEアプリケーションとデータソース間のすべての接続を処理します。 通常、接続プールの接続は、JDBCまたはRAR(Resource Adapter Archive)を介してアプリケーションサーバとデータソースの間に確立されたTCP/IP接続です。
ほとんどのデータベースまたはEIS(Enterprise Information System)サーバでは、同時に開くことができる通信数が制限されています。SMCを使用して、アプリケーションサーバによって使用される最小(初期)および最大接続数を各データソースに設定できます。
最高のパフォーマンスを得るには、通常、開いているデータソース接続の最大数を、データソースに対して同時にクエリまたは更新を行う最大ユーザ数に等しい値に設定します。
設定した最大数が小さすぎると、パフォーマンスが低下します。すべての接続が使用中のときにクライアントがデータソースにアクセスしようとすると、実行中のクエリまたは更新が完了するまで、クライアントはブロックされます。異なる最大設定を試して、サーバパフォーマンスを最適化することができます。
他のアプリケーションがアプリケーションサーバとは別にデータソースサーバへの接続を確立する場合は、開いているアプリケーションサーバ接続の最大数を減らして、データソースへのアクセスが必要なすべてのプロセスがデータソースに接続できるようにする必要があります。
DBMSまたはEISのマニュアルを参照して、データソースにアクセスする他のアプリケーションを考慮に入れ、SMCで指定されたクライアント接続数を受け入れるようにデータソースが設定されていることを確認します。
SMCの[プール]タブを使用して、次のJDBCおよびコネクタ接続プールを管理できます。
各接続プールに値を指定します。
[次へ]を選択して、次に示す最小および最大接続値を表示するパネルまでウィザードを進めます。
この節では、次のトピックについて説明します。
アプリケーションサーバは、クライアントと展開データベース間のすべての接続を処理します。通常、各データベース接続は、JDBCを介してアプリケーションサーバとデータベースサーバの間で確立されるTCP/IP接続です。
ほとんどのデータベースサーバでは、同時に開くことのできるデータベース接続数が制限されています。SMCを使用して、アプリケーションサーバに使用される最小(初期)および最大接続数を各データベースに設定できます。
通常、開いている展開データベース接続の最大数は、データベースに対して同時にクエリまたは更新を実行するユーザの最大数に等しい数に設定します。
設定した最大数が小さすぎると、パフォーマンスが低下します。すべての接続が使用中のときに、クライアントがデータベースにアクセスしようとすると、実行中のクエリまたは更新が完了するまで、クライアントはブロックされます。異なる最大設定を試して、サーバパフォーマンスを最適化することができます。
他のデータベースユーザがアプリケーションサーバとは別にデータベースサーバへの接続を確立する場合は、開いている接続の最大数を減らす必要があります。 これにより、アプリケーションサーバ以外のユーザがデータベース接続を使用できます。
DBMSのマニュアルを参照して、データベースにアクセスする他のアプリケーションを考慮に入れ、SMCで指定されたクライアント接続数を受け入れるようにデータベースが設定されていることを確認します。
デフォルトの最大および最小データベース接続数だけでなく、特定のデータベースの接続数を設定することもできます。これは、SMCの[データベース]パネルで設定します。
デフォルトの最小および最大データベース接続数を設定できます。値は次のデータベースによって使用されます。
注記: 特定のデータベースのデフォルトを上書きするには、特定のデータベースの接続数の設定を参照してください。
フィールド |
説明 |
---|---|
データベース接続の最小数(全データベースに適用) |
データベースのデフォルト最小接続数。アプリケーションサーバは、起動するとただちにこの数の接続を確立して、サーバが動作している限り、開いたままにします。 注記: データベースがクラッシュして再起動した場合、アプリケーションサーバは古い接続を破棄し、必要に応じて新しい接続を再確立します。最少接続数として指定された接続数はただちに確立されません。 |
データベース接続の最大数(全データベースに適用) |
データベースのデフォルト最大接続数。アプリケーションサーバは、要求に応じて接続をこの数まで開きます。 開いている接続の最大数が、データベースサーバによって許可されている合計数以下であることを確認します。それ以外の場合、接続を開こうとすると、データベースサーバからアプリケーションサーバにエラーが返されます。
|
デフォルトの最小および最大データベース接続数を再設定できます。これは、サーバのすべてのデータベースに適用されます。
[データベース]パネル上部の[データベース接続の最大数]または[データベース接続の最小数]の横にある[リセット]をクリックします。
デフォルトの最小または最大接続数が再設定され、サーバの「すべて」のデータベースが新しいデフォルト値を使用するように再設定されます。
特定のデータベースのデフォルトデータベース接続数を上書きできます。
データベース名の下にある次のフィールドを編集することにより、特定のデータベースの最小および最大データベース接続数を設定します。
フィールド |
説明 |
---|---|
最小接続数 |
アプリケーションサーバは、起動するとただちにこの数の接続を確立して、サーバを実行している限り、開いたままにします。ここで値を設定すると、デフォルト値が上書きされます。 注記: データベースがクラッシュして再起動した場合、アプリケーションサーバは古い接続を破棄し、必要に応じて新しい接続を再確立します。最少接続数として指定された接続数はただちに確立されません。 |
最大接続数 |
アプリケーションサーバは、必要に応じて追加接続をこの数まで開きます。ここで値を設定すると、デフォルト値が上書きされます。 開いている接続の最大数が、データベースサーバによって許可されている合計数以下であることを確認します。それ以外の場合、接続を開こうとすると、データベースサーバからアプリケーションサーバにエラーが返されます。
|
特定のデータベースの最小または最大接続数をデフォルト値にリセットできます。
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...