説明

接続キープ・アライブの自律的な調整のための装置及び方法

【課題】 接続キープ・アライブの自律的な調整のための装置と方法を提供する。
【解決手段】 サーバ・コンピュータ・システムは、現在の動作状態をモニタして、現在の動作状態に対してキープ・アライブを最適化するためにキープ・アライブ仕様を動的に調整するキープ・アライブ・オートノミック調整機構を含む。キープ・アライブ・オートノミック調整機構は、クライアントの総数、及び、1クライアント当りの要求の平均数をモニタする。接続をどれほど長く開いたままにするかを判断するキープ・アライブ仕様の値は、モニタされた現在の動作状態に従って、キープ・アライブ・オートノミック調整機構により動的及び自律的に調整することができる。キープ・アライブ・オートノミック調整機構はまた、キープ・アライブを自律的に有効化及び無効化する機能を含むことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、コンピュータ・システムに関し、より具体的には、コンピュータ・システム間で通信するための接続に関する。
【背景技術】
【0002】
今日、多くのコンピュータ・システムは、高度にネットワーク化されて種々の異なるコンピューティング・サービスを提供する。例えば、クライアント・コンピュータ・システムは、サーバ・コンピュータ・システムに接続して、サーバ・コンピュータ・システムによってホストされる特定のサービスを要求することができる。ユーザがウェブ・ページを要求するためにウェブ・ブラウザを使用する場合には、ユーザのコンピュータ・システムは、典型的には、ウェブ・ページに対する要求を送信し、この要求がそのウェブ・ページをホストするウェブ・サーバに、要求されたウェブ・ページをユーザのウェブ・ブラウザに配信させる。
【0003】
ハイパーテキスト転送プロトコル(HTTP)は、コンピュータ・システム間のデータの伝送を可能にするために開発された。元のHTTPバージョン1.0仕様においては、クライアント・コンピュータ・システムは、転送されるべき各々のオブジェクト又はコンポーネントに対して、サーバ・コンピュータ・システムとの、ソケットとして既知の、接続を確立しなければならない。例えば、3つのコンポーネントだけをもつ初期のウェブ・ページでは、この3つのコンポーネントの各々を転送するための異なる接続を開くオーバーヘッドはそれほど重要ではなかった。しかしながら、今日のウェブ・ページは多数の異なるコンポーネントを有することが多い。ウェブ・ページ上の各々のコンポーネントに対する接続の開始及び終了のオーバーヘッドは、ウェブ・サーバ・コンピュータ・システムのリソースに関する重要なドレーンとなる。
【0004】
この問題を緩和するために、HTTPキープ・アライブの概念が開発され、HTTPバージョン1.1仕様に取り入れられた。クライアント(ウェブ・ブラウザのような)は、サーバにウェブ・ページ要求と共にクライアントがキープ・アライブをサポートすることを通知することができる。それに応答して、サーバは、クライアントに接続がキープ・アライブされることを伝えることができ、その結果多数のコンポーネントを同じ接続を介して転送することができる。例えば、接続を開いたままにすることによって、その接続がキープ・アライブされるとき、ウェブ・ページ上の多数のイメージを同じ接続上で転送することができる。キープ・アライブ仕様は、時間単位で又は接続を横切って転送されるオブジェクトの数で、接続に対するタイムアウト時間を指定することができる。一旦、仕様が満たされると、接続はサーバによって閉じられる。
【発明の開示】
【発明が解決しようとする課題】
【0005】
HTTPキープ・アライブの一般的な概念は、多くの環境においてウェブ・サーバ・コンピュータ・システム上のオーバーヘッドを削減する上で非常に有用である。しかしながら、キープ・アライブの有用性は、サーバが実行している作業の量及び型、並びに、キープ・アライブ仕様に大きく依存する。キープ・アライブの有効化は、典型的には、ウェブ・サーバ上で、グローバル・レベルで行われるが、これはそれらが手動でオンにされるか、又は手動でオフにされるかを意味する。幾つかの場合においては、キープ・アライブは、実際には、サーバのパフォーマンスを低下させる可能性がある。接続キープ・アライブの設定を動的に有効化、無効化及び調整するための方法がなければ、コンピュータ産業は、接続キープ・アライブを用いるウェブ・サーバにおける最適化に至らないパフォーマンスを引き続いて経験することになる。
【課題を解決するための手段】
【0006】
好ましい実施形態によると、サーバ・コンピュータ・システムは、現在の動作状態をモニタし、現在の動作状態に対してキープ・アライブを最適化するためにキープ・アライブ仕様を動的に調整するキープ・アライブ調整機構を含む。キープ・アライブ調整機構は、クライアントの総数、及び1クライアント当りの要求の平均数をモニタする。キープ・アライブ仕様を動的に調整することが可能な非常に異なる動作環境を表す4つの異なる場合があるが、それらは、少数のクライアント及び1クライアント当り少数の要求、多数のクライアント及び1クライアント当り少数の要求、少数のクライアント及び1クライアント当り多数の要求、並びに、多数のクライアント及び1クライアント当り多数の要求である。サーバが、少数のクライアント及び1クライアント当り少数の要求を有するときは、キープ・アライブ調整機構は、キープ・アライブを無効化するか、又はキープ・アライブ仕様をある所定の値に設定することができる。サーバが、多数のクライアント及び1クライアント当り少数の要求を有するときには、キープ・アライブ調整機構はキープ・アライブ仕様を最小値に設定する。サーバが、少数のクライアントと、しかし1クライアント当り多数の要求とを有するときは、キープ・アライブ調整機構はキープ・アライブ仕様を最大値に設定する。サーバが、多数のクライアント及び1クライアント当り多数の要求を有するときには、キープ・アライブ調整機構はキープ・アライブ仕様を中間の値に設定する。キープ・アライブ調整機構はまた、キープ・アライブを自動的に有効化及び無効化する機能を含むことができる。この様にしてサーバのパフォーマンスは、現在の動作状態に従って、キープ・アライブを使用することの効果を最適にするように、調整することができる。
【発明を実施するための最良の形態】
【0007】
本発明の好ましい実施形態が、これから以下の図面を参照して実施例のみの目的で詳細に説明されることになる。
【0008】
接続キープ・アライブは当技術分野において既知である。図2を参照すると、1つの見本のシステム200が既知のキープ・アライブ機構を説明するために示される。ウェブ・ブラウザ・アプリケーション210が、インターネット220のようなネットワークを介して、ウェブ・サーバ・アプリケーション230に接続する。ウェブ・サーバ・アプリケーション230は、キープ・アライブ仕様234に従って、多数のオブジェクトに対する1つ又は複数の接続をキープ・アライブにするように機能するキープ・アライブ機構232を含む。ウェブ・ブラウザ・アプリケーション210がキープ・アライブをサポートする場合には、ウェブ・ブラウザ・アプリケーション210からウェブ・サーバ・アプリケーション230への要求はそのことを指示することになる。それに応答して、ウェブ・サーバ・アプリケーション230は、接続をキープ・アライブにして、1つの接続を通して多数のオブジェクトを伝送する選択肢を有する。ウェブ・サーバ・アプリケーション230が多数のオブジェクトに対して接続をキープ・アライブにすると決定する場合には、キープ・アライブ機構232は、その接続をモニタし、指定されたキープ・アライブ仕様234に従って接続を閉じる。キープ・アライブ仕様234の1つの簡単な例は時間である。従って、キープ・アライブ仕様234が50ミリ秒(ms)と指定される場合には、キープ・アライブ機構232は50ms間、接続をキープ・アライブにし、その後接続を終了する。好適なキープ・アライブ仕様234の別の例は、転送するオブジェクトの数である。従って、キープ・アライブ仕様234が20個のオブジェクトに指定される場合には、キープ・アライブ機構232は20個のオブジェクトが転送されるまで接続をキープ・アライブにし、その後接続を終了する。多数のオブジェクトを含む現在のウェブ・ページでは、接続をキープ・アライブにすることでシステムのパフォーマンスを劇的に改善することができる。しかしながら、キープ・アライブの存在はまた、幾つかの環境においてはシステムのパフォーマンスを低下させる可能性がある。
【0009】
キープ・アライブの使用がシステムのパフォーマンスに有害であり得ることの1つの具体的な事例が、IBM社によるWebSphere Application Server(WAS)バージョン5.1で見ることができる。WAS v5.1においては、HTTP接続を保持するソケットとサーバのランタイム内のスレッドとの間には1対1の相関がある。サーバが過度に長くキープ・アライブ状態を保持するように構成され、その接続への要求が十分に散発的である場合には、大部分のスレッドはそれらの開いた接続への新規の要求を待つアイドル状態にあり、他の要求が接続の取得を待っているという状況に容易に達する可能性がある。この状況は、スケジューリング実行、及びリソース競合開始が収穫逓減を示す以前には、非常に低い上限値を有するランタイムに対するスレッドの追加によってのみ改善することができる。
【0010】
好ましい実施形態は、モニタされた動作状態に従って自律的にキープ・アライブ仕様を調整する接続キープ・アライブ・オートノミック調整機構を提供することによって、当技術分野における問題に対処する。接続キープ・アライブ調整機構は、ユーザの介入なしにキープ・アライブ仕様を自動的に調整する機能により「オートノミック」である。モニタされた状態に従ってキープ・アライブのパフォーマンスを自律的に調整することによって、好ましい実施形態はキープ・アライブを最高のパフォーマンスに調整することを可能にする。キープ・アライブ・オートノミック調整機構はまた、キープ・アライブを動的に有効化及び無効化することができる。
【0011】
図1を参照すると、コンピュータ・システム100は本発明の好ましい実施形態による装置の1つの好適な実装である。コンピュータ・システム100は、ウェブ・サーバとして働くIBM eServer iSeriesのコンピュータ・システムである。しかしながら、当業者は、本発明の実施形態の機構及び装置は、コンピュータ・システムが複雑なマルチユーザのコンピューティング装置、単一ユーザのワークステーション、又は、組み込まれた制御システムであるかどうかには依らず、任意のコンピュータ・システムにも等しく適用できることを理解することになる。図1に示されるように、コンピュータ・システム100は、プロセッサ110、メインメモリ120、大容量ストレージ・インターフェース130、ディスプレイ・インターフェース140、及びネットワーク・インターフェース150を含む。これらのシステム・コンポーネントは、システム・バス160を使用して相互接続される。大容量ストレージ・インターフェース130は、直接アクセス記憶装置155のような、大容量記憶装置をコンピュータ・システム100に接続するために使用される。直接アクセス記憶装置155の1つの具体的の型は、読み取り可能及び書き込み可能CD RWドライブであり、これはCD RW195へデータをストアし、且つそこからデータを読み取ることができる。
【0012】
好ましい実施形態によるメインメモリ120は、データ121、オペレーティング・システム122、及びウェブ・サーバ・アプリケーション123を含む。データ121は、コンピュータ・システム100内の任意のプログラムへの入力又はそれからの出力として働く任意のデータを表す。オペレーティング・システム122は、OS/400として当業界では既知のマルチタスク・オペレーティング・システムであるが、当業者は、他の型のオペレーティング・システムも代替的に使用可能であることを認識することになる。ウェブ・サーバ・アプリケーション123は、ウェブ・サーバ・アプリケーション123が責任をもつクライアントからの要求に応える。ウェブ・サーバ・アプリケーション123は、好ましい実施形態のサーバ・アプリケーションの1つの好適な実施例として図1に示される。ウェブ・サーバ・アプリケーション123は、キープ・アライブ・オートノミック調整機構124及びキープ・アライブ機構126を含む。キープ・アライブ・オートノミック調整機構124は、コンピュータ・システム100に関する現在の動作状態を検出する使用モニタ125を含む。使用モニタ125は、ウェブ・サーバ・アプリケーション123にアクセス中のクライアントの数、及び規定された時間にわたる1クライアント当りの要求の平均数を検出することが好ましい。キープ・アライブ・オートノミック調整機構124は使用モニタ125を使用して現在の動作状態を検出し、それに応答して、キープ・アライブ仕様127を調整することができる。1つの具体的な実施形態においては、キープ・アライブ・オートノミック調整機構124はまた、現在の動作状態に基づいて自律的にキープ・アライブを有効化及び無効化することができる。
【0013】
キープ・アライブ機構126は、キープ・アライブ仕様127に従って接続を開いたままにする。図2を参照して上述したように、既知のキープ・アライブ仕様は、時間及び要求数を含む。好ましい実施形態のキープ・アライブ仕様127は、キープ・アライブ機構に対する継続時間及び/又はパフォーマンスを指定する、現在既知の又は将来開発される、任意の及び全ての方法に明白に拡張できる。例えば、1つの好適なキープ・アライブ仕様127は、接続を開いたままにするために維持されなければならない時間当りのビットの平均数を指定することができる。キープ・アライブ機構126に対する1つの好適な実装は、図2に示される従来技術のキープ・アライブ機構232であることに注意されたい。この特定の実装においては、キープ・アライブ仕様127は、図2に示される従来技術のキープ・アライブ仕様234と同じである。しかしながら、代替的にキープ・アライブ機構126及びキープ・アライブ仕様127は、それぞれ従来技術のキープ・アライブ機構232及びキープ・アライブ仕様234と比較して、異なる又は付加的な機能を有することができることに注目されたい。さらに、図1は、キープ・アライブ・オートノミック調整機構124を、接続をキープ・アライブにするキープ・アライブ機構126から分離しているように示す。しかしながら、当業者は、キープ・アライブ・オートノミック調整機構124及びキープ・アライブ機構126の機能を同じコンピュータ・プログラムに実装できることを認識することになる。
【0014】
コンピュータ・システム100は、コンピュータ・システム100のプログラムが、メインメモリ120及びDASD装置155のような多数のより小さなストレージ・エンティティにアクセスする代わりに、あたかも単一の大容量のストレージ・エンティティだけにアクセスするかのように振舞うことを可能にする周知の仮想アドレス指定機構を利用する。それゆえに、データ121、オペレーティング・システム122、及びウェブ・サーバ・アプリケーション123がメインメモリ120に常駐するように図示されているが、当業者はこれらの項目が、必ずしも全てが同時にメインメモリ120に完全に含まれる必要はないことを認識することになる。「メモリ」という用語は、本明細書においては、コンピュータ・システム100の仮想メモリ全体を総称して呼ぶために使用され、コンピュータ・システム100に結合した他のコンピュータ・システムの仮想メモリを含み得ることに留意されたい。
【0015】
プロセッサ110は、1つ又は複数のマイクロプロセッサ及び/又は集積回路から構成することができる。プロセッサ110はメインメモリ120にストアされたプログラム命令を実行する。メインメモリ120はプロセッサ110がアクセスできるプログラム及びデータをストアする。コンピュータ・システム100が開始するときは、初めにプロセッサ110がオペレーティング・システム122を構成するプログラム命令を実行する。オペレーティング・システム122は、コンピュータ・システム100のリソースを管理する高度なプログラムである。これらのリソースの幾つかは、プロセッサ110、メインメモリ120、大容量ストレージ・インターフェース130、ディスプレイ・インターフェース140、ネットワーク・インターフェース150及びシステム・バス160である。
【0016】
コンピュータ・システム100は単一のプロセッサ及び単一のシステム・バスのみを含むように図示されているが、当業者は、本発明の実施形態が多数のプロセッサ及び/又は多数のバスを有するコンピュータ・システムを使用して実施できることを理解することになる。さらに、好ましい実施形態で使用される各々のインターフェースは、プロセッサ110から数値計算処理の負担を軽減するために使用される別個の完全にプログラムされたマイクロプロセッサを含む。しかしながら、当業者は、本発明の実施形態は、類似の機能を実行するために単にI/Oアダプタを使用するコンピュータ・システムに対して等しく適用できることを理解することになる。
【0017】
ディスプレイ・インターフェース140は、1つ又は複数のディスプレイ165をコンピュータ・システム100に直接接続するために使用される。これらのディスプレイ165は、非インテリジェント(即ち、ダム)な端末又は完全にプログラム可能なワークステーションとすることができるが、システム管理者及びユーザが、コンピュータ・システム100と通信することを可能にするために使用される。しかしながら、ディスプレイ・インターフェース140は1つ又は複数のディスプレイ165との通信をサポートするために準備されているが、ユーザ及び他のプロセスとの全ての必要な交信はネットワーク・インターフェース150を介して行われ得るので、コンピュータ・システム100は必ずしもディスプレイ165を必要としないことに留意されたい。
【0018】
ネットワーク・インターフェース150は、他のコンピュータ・システム及び/又はワークステーション(例えば、図1中の175)をネットワーク170にわたってコンピュータ・システム100に接続するために使用される。本発明の実施形態は、ネットワーク接続170が現在のアナログ及び/又はデジタル技術を使用して、又は何か将来のネットワーキング機構を介して形成されるかには関係なく、コンピュータ・システム100が、どのように他のコンピュータ・システム及び/又はワークステーションに接続可能であっても、等しく適用可能である。さらに、多くの異なるネットワーク・プロトコルを、ネットワークを実装するために使用することができる。これらのプロトコルは、コンピュータがネットワーク170にわたって通信するのを可能にする特化されたコンピュータ・プログラムである。TCP/IP(伝送制御プロトコル/インターネット・プロトコル)は好適なネットワーク・プロトコルの一例である。
【0019】
ここで、本発明の実施形態は完全に機能するコンピュータ・システムの文脈において説明され、また引き続き説明されることに注意することが重要であるが、当業者は、それらは種々の形態のプログラム製品として配布することができること、及び、実際に配布を実施するのに使用される特定の型のコンピュータ可読信号保持媒体には関係なく、等しくアプローチできることを理解することになる。好適なコンピュータ可読信号保持媒体の例は、フロッピー(登録商標)・ディスク及びCD RW(例えば図1の195)のような書き込み可能型媒体、並びに、デジタル及びアナログ通信リンクのような伝送型媒体を含む。
【0020】
ここで図3を参照すると、好ましい実施形態によるシステム300は、図2に示される従来技術のシステム200との簡単な比較を可能にするように図1のソフトウェア要素の間の関係を示す。ウェブ・ブラウザ・アプリケーション210は、インターネット220のようなネットワークを介して、好ましい実施形態のウェブ・サーバ・アプリケーション123に接続する。キープ・アライブ・オートノミック調整機構124は使用モニタ125を使用してウェブ・サーバ・アプリケーション123に関する現在の動作状態を判断し、次に、キープ・アライブ仕様127を、現在の動作状態に最適に適応するように、動的に設定する。第1の実施形態においては、キープ・アライブは手動で有効化され、キープ・アライブ・オートノミック調整機構124は、使用モニタ125によって検出された現在の動作状態に従って、キープ・アライブ仕様を動的に調整する。第2の実施形態においては、キープ・アライブ・オートノミック調整機構124は、キープ・アライブ仕様127を自律的に調整することに加えて、キープ・アライブ機構126を自律的に有効化及び無効化することができる。このようにして、キープ・アライブは、現在の動作状態がそれを正当化する場合には無効化することができる。好ましい実施形態のキープ・アライブ・オートノミック調整機構124の機能は、図4−図7に例示される特定の実施例によって示される。
【0021】
好ましい実施形態の装置及び方法は、変化中の動作状態に従ってキープ・アライブ設定を調整する方法を提供する。これは、キープ・アライブをグローバルに有効化又は無効化し、有効化されたときには、サーバの現在の動作状態には無関係に、単一のキープ・アライブ仕様を使用する従来技術を超えた重要な進歩である。
【0022】
幾つかの実施例が、システムのパフォーマンスを最大にするためにキープ・アライブ設定を動的に調整する機能に対する必要性を説明する。
【0023】
図4を参照すると、表400は好ましい実施形態におけるキープ・アライブのオートノミック調整に影響を及ぼし得る異なる動作状態を表す。図4に示されるこの第1の特定の実施形態に関して、キープ・アライブは手動でグローバルにウェブ・サーバ上で有効化されていると仮定する。第1に、図4の行410における、少数のクライアント及び1クライアント当り少数の要求の場合を考える。この場合には、サーバ上の負荷は非常に軽いので、キープ・アライブを有効化することによってもたらされるいずれのパフォーマンス向上も最小となる。結果として、キープ・アライブ仕様は低い値に設定される。図4の行420における、多数のクライアント及び1クライアント当り少数の要求の場合は、典型的な小売のウェブサイトの例証となり、そこでは多数のクライアントが同時に接続できるが、ウェブ・ページを読んでブラウズするのに必要な時間のために、1クライアント当りの要求の数は相対的に低い。この場合、キープ・アライブ・オートノミック調整機構124は、キープ・アライブ仕様127が最小化されるべきであると認識し、接続当りの要求の数がその接続を開いたままにすることを正当化するのに十分でないときには、接続(及び対応するスレッド)は、あまり長い間キープ・アライブにはされない。結果として、図4におけるキープ・アライブ仕様は、行420に示されるように低い値に設定される。
【0024】
図4の行430における、少数のクライアント及び1クライアント当り多数の要求の場合は、少数のクライアントが各々多数の要求を行うことが多い、企業間(B2B)環境の例証となる。この場合、キープ・アライブの有用性が最も高くなるが、それは、キープ・アライブ時間が長くなればなるほど、単一の接続上で転送できるオブジェクトの数が多くなるからである。結果として、図4の行430に示されるように、キープ・アライブ仕様は相対的に高い値に設定される。
【0025】
多数のクライアント及び多数の要求の場合は、非常に混雑しているウェブ・サーバの状況を例示する。例えば、これはB2Bチャネルにサージがあるときに起る可能性がある。この場合には、オートノミック調整は最適のパフォーマンスを達成するためにさらに重要となる。この場合には、キープ・アライブ仕様は中程度とする。この値は動作状態が変化すると自律的に変化することになる。
【0026】
ここで、キープ・アライブ・オートノミック調整機構が、必要に応じてキープ・アライブを動的及び自律的に有効化及び無効化することを可能にする第2の特定の実施形態を考える。これは図5の表500に示される。図5の行510における、少数のクライアント及び1クライアント当り少数の要求の場合には、サーバ上の負荷は非常に軽いので、キープ・アライブを有効化することによってもたらされるいずれのパフォーマンス向上も最小となる。結果として、キープ・アライブ・オートノミック調整機構124は、図5の行510に示されるように、キープ・アライブを無効化することができる。キープ・アライブ機構が無効化される場合には、キープ・アライブ仕様はサーバ・アプリケーションのパフォーマンスに効果を及ぼさない。
【0027】
一旦、クライアントの数が第1の閾値を超えるか、又は1クライアント当りの要求の数が第2の閾値を超えると、図5の行520、530及び540に示されるように、キープ・アライブ・オートノミック調整機構がキープ・アライブ機構を有効化する。行520、530及び540における仕様は、それぞれ、図4における420、430及び440に類似した値に設定することができることに留意されたい。
【0028】
ここで、簡単な実施例が好ましい実施形態のサーバ・アプリケーションの的確さと能力を例示する。図6を参照すると、表600は図1及び図3の使用モニタ125によってモニタできる動作状態を例示する。例示のために、100の第1の閾値は、それ未満では少数のクライアントと判断され、且つ、それに等しいか又はそれ以上では多数のクライアントと判断される値に選択されていると仮定する。さらに、例示のために、第2の閾値である5は、それ未満では1クライアント当り少数の要求と判断され、且つ、それに等しいか又はそれ以上では1クライアント当り多数の要求と判断されるように選択されていると仮定する。さらに、4つの異なる計測値が取得され、その各々は図4及び図5に示される4つの場合のうちの1つを表すと仮定する。図6の行610に示される計測値1においては、5つのクライアント及び1クライアント当り平均1つの要求がある。これは、上述の第1及び第2の閾値に従って、少数のクライアント及び少数の要求に対応する。図6の行620に示される計測値2においては、10、000のクライアント及び1クライアント当り1つの要求がある。これは、多数のクライアント及び少数の要求に対応する。図6の行630に示される計測値3においては、2、000のクライアント及び1クライアント当り10の要求がある。これは、多数のクライアント及び多数の要求に対応する。図6の行640に示される計測値4においては、10のクラインと1クライアント当り1、500の要求がある。これは少数のクライアント及び多数の要求に対応する。
【0029】
図7は、図6に示される計測値が、キープ・アライブ仕様を自律的に調整するためにどのように使用できるかを例示する。例示のために、キープ・アライブ仕様は時間として指定されていると仮定する。キープ・アライブが手動でグローバルに有効化及び無効化される本明細書の第1の特定の実施形態の場合においては、キープ・アライブが手動でグローバルに有効化されていると仮定する。これは、キープ・アライブ・オートノミック調整機構がキープ・アライブを無効化しないが、単にキープ・アライブ仕様の値を調整することを意味する。これは図4に例示される。計測値1を取得した後、キープ・アライブ・オートノミック調整機構は、計測された(又はモニタされた)パフォーマンスは、少数のクラインと及び少数の要求に対応すると判断する。結果として、図7に示されるように、キープ・アライブ仕様の値はその最小値の10msに設定される。代替的に、図5に表される第2の特定の実施形態においては、キープ・アライブ・オートノミック調整機構は、計測1の後で、キープ・アライブ仕様をある中間の低い値に設定する代わりにキープ・アライブを無効化する。計測2の後では、キープ・アライブ・オートノミック調整機構は、計測されたパフォーマンスは多数のクライアント及び少数の要求に対応すると判断し、図7に示されるように、キープ・アライブ仕様をその最小値の10msに設定する。計測3の後では、キープ・アライブ・オートノミック調整機構は、計測されたパフォーマンスは多数のクライアント及び多数の要求に対応すると判断し、図7に示されるように、キープ・アライブ仕様を中間の値に設定する。計測4の後では、キープ・アライブ・オートノミック調整機構は、計測されたパフォーマンスは少数のクライアント及び1クライアント当り多数の要求に対応すると判断し、図7に示されるように、キープ・アライブ仕様を高い値に設定する。図5に例示される第2の特定の実施形態においては、キープ・アライブ・オートノミック調整機構はまた、計測2、3及び4の各々の後でキープ・アライブを有効化する。
【0030】
図6及び図7に示される実施例は、好ましい実施形態を説明するために非常に単純化されている。多数又は少数のクライアント若しくは1クライアント当りの要求を判断するための2つの固定閾値の仮定には、相対的な負荷を示す、スライドする又は相対的な閾値を用いることができる。さらに、図7は、キープ・アライブ仕様の調整が、スライドするスケールに沿って非常に細かい粒度を有することができることを示す。これは、サーバ・アプリケーションのパフォーマンスを最適化するためにキープ・アライブ仕様を微調整することを可能にする。図7の下部に示されるスケールは、キープ・アライブ仕様が、多数のクライアント及び少数の要求を表す低いレベルから、多数のクライアント及び多数の要求を表す中間のレベル、少数のクライアント及び多数の要求を表す高いレベルまで、どのように調整できるかを示す。図7の下部のスケールは、少数のクライアント及び少数の要求を明示的には含まないが、これはキープ・アライブがパフォーマンスに最小の影響を与える、軽く負荷されたサーバの場合である。この理由のために、キープ・アライブ仕様はある所定の値(第1の実施形態)に設定することができ、又は全く無効化することができる(第2の実施形態)。
【0031】
使用モニタ125によってモニタされる動作状態は、クライアントの数及び1クライアント当りの要求の平均数を含むことが好ましいことに注意されたい。この情報は、HTTPサービス自体のパフォーマンス・メトリックから入手可能である。例えば、使用モニタ125は、ある定められた時間内の同時の要求の最大数、及び、1クライアント当りの1秒当りの要求の平均数(即ち、平均的なクライアントが要求を送信する速度)を判断することができる。これらのパラメータは、計算を最適にすると同時に平均のウィンドウ・サイズの形態で学習アルゴリズムに平滑化因子を導入するために、指数移動平均を用いて追跡することができる。平滑化因子の値は、不十分に調整されたキープ・アライブに関するパフォーマンスの影響の重大度に関連して設定することができる。重大度が高いとき、例えば、キープ・アライブの設定が、ランタイム内の全てのスレッドを少数の非アクティブなクライアントに利用されるようにする場合に、クライアントがサービスを拒否される可能性があるような重大度が高い場合には、平滑化因子は、要求プロファイルの変化に対する反応が迅速になるように設定される。これは、例えば、移動平均に対して小さなウィンドウ・サイズを作ることによって行うことができる。不十分に調整されたキープ・アライブに関する影響があまり重大ではない場合には、より大きなウィンドウ・サイズを使用して、システム内部のスラッシングを避けるためによりゆっくり変化するキープ・アライブ仕様を与えることができる。好ましい実施形態は、現在の動作状態によってコンピュータ・システムのパフォーマンスを調整するキープ・アライブ仕様を自律的及び動的に調整する方法を提供する。接続キープ・アライブの動的な調整は、好ましい実施形態のサーバ・コンピュータ・システムがそのキープ・アライブ設定を最適化して、現在の動作状態に対して調整される可能な最良のパフォーマンスを達成することを可能にする。
【0032】
当業者は、多くの変形物が可能であることを認識するであろう。従って、本発明の実施形態が詳しく示され説明されたが、形態及び詳細におけるこれら及び他の変更を施すことができることが当業者によって理解されることになる。例えば、本明細書において説明された好ましい実施形態では、単一のキープ・アライブ仕様が仮定されているが、代替的に、多数のキープ・アライブ仕様を定めることができ、これら多数のキープ・アライブ仕様のいずれか又は全ては、現在の動作状態によって自動的に調整することができる。
【図面の簡単な説明】
【0033】
【図1】好ましい実施形態による装置のブロック図である。
【図2】インターネットを介するソフトウェア・コンポーネント間の交信を示す従来型システムのブロック図である。
【図3】好ましい実施形態による、接続キープ・アライブを動的に調整するシステムのブロック図である。
【図4】好ましい実施形態による、接続キープ・アライブを動的に調整する第1の特定の方法を示す表である。
【図5】好ましい実施形態による、接続キープ・アライブを動的に有効化、無効化及び調整するための第2の特定の方法を示す表である。
【図6】図1及び図3における使用モニタ125による4つの計測値であって、図7に示される値に設定されるキープ・アライブの継続時間をもたらす計測値を示す表である。
【図7】好ましい実施形態による、キープ・アライブ継続時間の動的な設定を図示する図である。
【符号の説明】
【0034】
100:コンピュータ・システム
110:プロセッサ
120:メインメモリ
121:データ
122:オペレーティング・システム
123,230:ウェブ・サーバ・アプリケーション
124:キープ・アライブ・オートノミック調整機構
125:使用モニタ
126,232:キープ・アライブ機構
127、234:キープ・アライブ仕様
130:大容量ストレージI/F
140:ディスプレイI/F
150:ネットワークI/F
155:直接アクセス記憶装置
160:システム・バス
165:ディスプレイ
170:ネットワーク
175:他のコンピュータ・システム又はワークステーション
195:CD RW
200、300:システム
210:ウェブ・ブラウザ・アプリケーション
220:インターネット
400、500、600:表

【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに結合するメモリと、
前記メモリ内に常駐し、前記少なくとも1つのプロセッサによって実行されるサーバ・アプリケーションであって、
定められたキープ・アライブ仕様によってクライアントへの接続を開いたままにするキープ・アライブ機構と、
前記サーバ・アプリケーションに関する現在の動作状態をモニタして、前記現在の動作状態に従って前記キープ・アライブ仕様を自動的に調整するキープ・アライブ調整機構と
を含むサーバ・アプリケーションと
を備える装置。
【請求項2】
前記キープ・アライブ調整機構は、前記キープ・アライブ機構を有効化及び無効化する、請求項1に記載の装置。
【請求項3】
前記キープ・アライブ調整機構は、前記現在の動作状態が第1の所定の閾値より低いクライアントの数、及び、第2の所定の閾値より低い1クライアント当りの要求の平均数を示すとき、前記キープ・アライブ機構を無効化する、請求項2に記載の装置。
【請求項4】
前記キープ・アライブ調整機構は、前記現在の動作状態が第1の所定の閾値を超えるクライアントの数を示すとき、前記キープ・アライブ機構を有効化する、請求項2に記載の装置。
【請求項5】
前記キープ・アライブ調整機構は、前記現在の動作状態が第2の所定の閾値を超える1クライアント当りの要求の数を示すとき、前記キープ・アライブ機構を有効化する、請求項2に記載の装置。
【請求項6】
前記現在の動作状態は、クライアントの数及び1クライアント当りの接続の平均数を含む、請求項1に記載の装置。
【請求項7】
接続キープ・アライブを管理するサーバ・アプリケーションに関するコンピュータに実装された方法であって、
(A)定められたキープ・アライブ仕様によってクライアントへの接続を開いたままにするキープ・アライブ機構を有効化するステップと、
(B)前記サーバ・アプリケーションに関する現在の動作状態をモニタするステップと、
(C)ステップ(B)においてモニタされた前記現在の動作状態に従ってキープ・アライブ仕様を自動的に調整するステップと
を含む方法。
【請求項8】
前記キープ・アライブ機構を自動的に有効化及び無効化するステップをさらに含む、請求項7に記載の方法。
【請求項9】
前記現在の動作状態が第1の所定の閾値より低いクライアントの数、及び第2の所定の閾値より低い1クライアント当りの要求の平均数を示すとき、前記キープ・アライブ機構を無効化するステップをさらに含む、請求項8に記載の方法。
【請求項10】
前記現在の動作状態が第1の所定の閾値を超えるクライアントの数を示すとき、前記キープ・アライブ機構を有効化するステップをさらに含む、請求項8に記載の方法。
【請求項11】
前記現在の動作状態が第2の所定の閾値を超える1クライアント当りの要求の数を示すとき、前記キープ・アライブ機構を有効化するステップをさらに含む、請求項8に記載の方法。
【請求項12】
前記現在の動作状態は、クライアントの数及び1クライアント当りの接続の平均数を含む、請求項7に記載の方法。
【請求項13】
(A)サーバ・アプリケーションであって、定めされたキープ・アライブ仕様によってクライアントへの接続を開いたままにするキープ・アライブ機構と、前記サーバ・アプリケーションに関する現在の動作状態をモニタし、前記現在の動作状態に従って前記キープ・アライブ仕様を自動的に調整するキープ・アライブ調整機構とを含む、サーバ・アプリケーションと、
(B)前記サーバ・アプリケーションを保持するコンピュータ可読信号保持媒体と
を含むプログラム製品。
【請求項14】
前記コンピュータ可読信号保持媒体は記録可能媒体を含む、請求項13に記載のプログラム製品。
【請求項15】
前記コンピュータ可読信号保持媒体は伝送媒体を含む、請求項13に記載のプログラム製品。
【請求項16】
前記キープ・アライブ調整機構は、前記キープ・アライブ機構を有効化及び無効化する、請求項13に記載のプログラム製品。
【請求項17】
前記キープライブ調整機構は、前記現在の動作状態が第1の所定の閾値より低いクライアントの数、及び第2の所定の閾値より低い1クライアント当りの要求の平均数を示すとき、前記キープ・アライブ機構を無効化する、請求項16に記載のプログラム製品。
【請求項18】
前記キープ・アライブ調整機構は、前記現在の動作状態が第1の所定の閾値を超えるクライアントの数を示すとき、前記キープ・アライブ機構を有効化する、請求項16に記載のプログラム製品。
【請求項19】
前記キープ・アライブ調整機構は、前記現在の動作状態が第2の所定の閾値を超える1クライアント当りの要求の平均数を示すとき、前記キープ・アライブ機構を有効化する、請求項16に記載のプログラム製品。
【請求項20】
前記現在の動作状態は、クライアントの数及び1クライアント当りの接続の数を含む、請求項13に記載のプログラム製品。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2008−532117(P2008−532117A)
【公表日】平成20年8月14日(2008.8.14)
【国際特許分類】
【出願番号】特願2007−555567(P2007−555567)
【出願日】平成18年1月25日(2006.1.25)
【国際出願番号】PCT/EP2006/050435
【国際公開番号】WO2006/087258
【国際公開日】平成18年8月24日(2006.8.24)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】