JP2012521042A - ウェブフロントエンドスロットリング - Google Patents

ウェブフロントエンドスロットリング Download PDF

Info

Publication number
JP2012521042A
JP2012521042A JP2012500831A JP2012500831A JP2012521042A JP 2012521042 A JP2012521042 A JP 2012521042A JP 2012500831 A JP2012500831 A JP 2012500831A JP 2012500831 A JP2012500831 A JP 2012500831A JP 2012521042 A JP2012521042 A JP 2012521042A
Authority
JP
Japan
Prior art keywords
throttling
server computer
request message
time
performance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2012500831A
Other languages
English (en)
Inventor
チャン ジエン
リー リダ
アンソニー クラーク ジュニア クリストファー
ドニッセ ガルバン コアフィエ イボンヌ
サクデオ ラフル
アダム ヘジピス ドン
エー.サヌシ セス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2012521042A publication Critical patent/JP2012521042A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Abstract

サーバーコンピュータは、パフォーマンスモニターモジュールと、スロットリング論理モジュールとを含む。パフォーマンスモニターモジュールは、サーバーコンピュータのシステムパラメーターを監視するパフォーマンスモニターを含む。スロットリング論理モジュールは、パフォーマンスモニターによって監視されるシステムパラメーターが所定のしきい値を超えるか否かを判定する。システムパラメーターが所定のしきい値を超えた場合、スロットリング論理モジュールはスロットリングフラグをセットする。スロットリング論理モジュールは、所定の数の時間スナップショットの各々について少なくとも1つのスロットリングフラグがセットされた場合、サーバーコンピュータにおいてスロットリングを活性化する。スロットリングの活性化は、サーバーコンピュータによって受信された要求メッセージの処理を制限する。

Description

本発明は、ウェブフロントエンドスロットリングに関する。
ウェブフロントエンドサーバーは、インターネット上のデータベースサーバーからの情報にアクセスしようと試みるクライアントシステムにインターフェイスを提供する。ウェブフロントエンドサーバーは、一般に、クライアント要求を処理し、その要求をデータベースサーバーに転送し、得られたデータをクライアントシステムに戻す。
オンラインのブラウザベースのドキュメントおよびコラボレーションシステムは、一般に、クライアント要求を扱うための複数のウェブフロントエンドサーバーを提供する。クライアントは、データベースサーバーへのアクセスのそれらの要求が適時に処理されることを期待する。しかしながら、システムがビジーになった場合、ウェブフロントエンドサーバーは、時々過負荷になり、クライアント要求に適時に応答することができない。
本発明の実施形態は、サーバーコンピュータにスロットリング機能を与えることを対象とする。サーバーコンピュータは、パフォーマンスモニターモジュールと、スロットリング論理モジュールと、スロットリング構成モジュールとを含む。パフォーマンスモニターモジュールは1つまたは複数のパフォーマンスモニターを備える。各パフォーマンスモニターはサーバーコンピュータのシステムパラメーターを監視する。スロットリング論理モジュールは、パフォーマンスモニターによって監視されるシステムパラメーターが所定のしきい値を超えるか否かを判定する。システムパラメーターが所定のしきい値を超えた場合、スロットリング論理モジュールはスロットリングフラグをセットする。
スロットリング構成モジュールは、1つまたは複数のパフォーマンスモニターによって監視される各システムパラメーターの所定のしきい値を記憶する。スロットリング構成モジュールはまた、1つまたは複数のスロットリング論理パラメーターを記憶する。スロットリング論理モジュールは、所定の数の時間スナップショットの各々について少なくとも1つのスロットリングフラグがセットされた場合、サーバーコンピュータにおいてスロットリングを活性化する。スロットリングの活性化は、サーバーコンピュータによって受信された要求メッセージの処理を制限する。
1つまたは複数の技法の詳細を添付の図面および以下の説明に記載する。本技法の他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになろう。
ウェブフロントエンドスロットリングのための例示的なシステムを示す図である。 ウェブフロントエンドサーバーの例示的なモジュールを示す図である。 ウェブフロントエンドスロットリングにおいて使用される例示的なスロットリング機構のための例示的な論理図である。 例示的なウェブフロントエンドサーバーにおいて実行される例示的な動作のフローチャートを示す図である。 図4に示す例示的な動作のうちの1つのフローチャートを示す図である。 図5に示す例示的な動作のうちの1つのフローチャートを示す図である。 図5に示す例示的な動作のうちの別の例示的な動作のフローチャートを示す図である。 ウェブフロントエンドスロットリングを実装するシステムのための動作環境を示す図である。
本開示は、ウェブフロントエンドサーバーにスロットリング機能を与えるためのシステムおよび方法を対象とする。本システムおよび方法は、パフォーマンスモニターを使用して、ウェブフロントエンドサーバーのシステムヘルスを監視する。システムリソースが規定された時間期間にわたって所定のしきい値外にあることを1つまたは複数のパフォーマンスモニターが示す場合、ウェブフロントエンドサーバー上でスロットリングが活性化される。ウェブフロントエンドサーバー上でスロットリングが活性化された場合、一般に低い優先度を有する要求メッセージである、いくつかのタイプのクライアント要求メッセージはウェブフロントエンドサーバーによって処理されない。代わりに、一般にシステムビジー状態を示すエラーメッセージが要求元クライアントシステムに戻される。
図1に、ウェブフロントエンド(WFE)スロットリングのための例示的なシステム100を示す。例示的なシステム100は、クライアント102および104と、ネットワーク106と、ロードバランサー108と、WFEサーバー110、112、114と、バックエンドサーバー116とを含む。より多いまたはより少ないクライアント、WFE、バックエンドサーバー、ロードバランサー、およびネットワークが使用される。本開示では、WFEおよびWFEサーバーという用語は互換的に使用される。
例示的な実施形態では、クライアント102および104は、デスクトップコンピュータ、ラップトップコンピュータ、端末コンピュータ、個人情報端末、またはセルラー電話デバイスなど、コンピューティングデバイスである。クライアント102および104は、入出力デバイスと、中央処理装置(「CPU」)と、データ記憶デバイスと、ネットワークデバイスとを含むことができる。本出願では、クライアントおよびクライアントコンピュータという用語は互換的に使用される。
WFE110、112および114は、クライアント102および104が、ネットワーク106を介してロードバランサー108によってアクセス可能である。バックエンドサーバー116は、WFE110、112および114がアクセス可能である。ロードバランサー108はサーバーコンピュータである。ロードバランサー108と、WFE110、112および114と、バックエンドサーバー116は、入出力デバイスと、中央処理装置(「CPU」)と、データ記憶デバイスと、ネットワークデバイスとを含むことができる。例示的な実施形態では、ネットワーク106はインターネットであり、クライアント102および104は、WFE110、112および114、ならびにWFE110、112および114に接続されたリソースにリモートでアクセスすることができる。本出願では、サーバーおよびサーバーコンピュータという用語は互換的に使用される。
例示的な一実施形態では、例示的なシステム100は、オンラインのブラウザベースのドキュメントコラボレーションシステムである。オンラインのブラウザベースのドキュメントコラボレーションシステムの例は、マイクロソフト社(ワシントン州レドモンド)のMicrosoft SharePointである。例示的なシステム100では、バックエンドサーバー116は、SQLサーバー、たとえばマイクロソフト社(ワシントン州レドモンド)のSQL Server2008である。
例示的なシステム100において、WFE110、112および114は、クライアント102および104とバックエンドサーバー116との間のインターフェイスを提供する。ロードバランサー108は、クライアント102および104からの要求をWFE110、112および114にダイレクトするサーバーコンピュータである。ロードバランサー108は、どのWFEサーバーがクライアント要求を受信したかを判定するために、WFE利用率、WFEへの接続数、および全体的なWFEパフォーマンスなどのファクターを使用する。
例示的なシステム100において、クライアント要求の例は、バックエンドサーバー116に記憶されたドキュメントにアクセスするか、バックエンドサーバー116に記憶されたドキュメントを編集するか、またはドキュメントをバックエンドサーバー116に記憶することである。ロードバランサー108がネットワーク106を介してクライアント要求を受信した場合、ロードバランサー108は、WFEサーバー110、112および114のうちのいずれがクライアント要求を受信したかを判定する。WFEサーバー110、112、および114の間で要求を分散させる試みにもかかわらず、WFEサーバー110、112および114のうちの1つまたは複数のシステムリソースは、WFEがクライアント要求を受け付けることができない程度まで枯渇することがある。
例示的なシステム100中の各WFEはスロットリング機構を含む。スロットリング機構は、WFEがスロットリングをいつ活性化するかを判定する。WFE上でスロットリングが活性化された場合、低い優先度のクライアント要求メッセージはWFEにおいて拒否され、WFEビジー状態を示すエラー応答メッセージが、WFEから、要求を行うクライアント102、104に送信される。
図2に、例示的なWFE110をより詳細に示す。図2に示すように、例示的なWFE110は、例示的なパフォーマンスモニターモジュール202と、例示的なスロットリング構成モジュール204と、例示的なスロットリング論理モジュール206と、例示的な分類器モジュール208と、例示的なパフォーマンス分析モジュール210と、例示的なインターフェイスモジュール212とを含む。
例示的なパフォーマンスモニターモジュール202は、サーバーヘルスを示すWFE110上のシステムパラメーターを追跡する1つまたは複数のパフォーマンスモニターを含む。一般に、WFE110は、監視されるシステムパラメーターごとに1つのパフォーマンスモニターを含む。パフォーマンスモニターは、一般に、監視している、システムパラメーターの値のカウントを記憶するカウンターである。本開示では、パフォーマンスモニターおよびパフォーマンスカウンターという用語は互換的に使用される。
パフォーマンスカウンターが監視するシステムパラメーターの例には、CPU使用の割合やメガバイト単位の利用可能なWFEメモリなどのリソース使用状況パラメーター、およびWFEによってキューイングされた要求の数やミリ秒単位のキュー中での要求待ち時間などのパフォーマンスパラメーターがある。例示的なシステム100では、キューイングされた例示的な要求はASP.NET要求であり、要求待ち時間はASP.NET要求待ち時間である。ASP.NETは、プログラマが動的ウェブサイト、ウェブアプリケーションおよびウェブサービスを構築することが可能な、マイクロソフトによって開発され、発売されたウェブアプリケーションフレームワークである。ASP.NETは、Microsoft SharePointアプリケーションを構築するために頻繁に使用される。
例示的なスロットリング構成モジュール204は各パフォーマンスカウンターのしきい値を記憶する。各しきい値は設定可能な所定のしきい値である。各しきい値は、システム管理者によって手動で設定されるか、またはWFEのパフォーマンス分析に基づいてプログラム的に設定される。各しきい値は、パフォーマンスカウンターによって監視されるシステムパラメーターの限界を表す。監視されるシステムパラメーターに応じて、しきい値はシステムパラメーターの上限または下限を表す。上限を上回るかまたは下限を下回るパフォーマンスカウントは、パフォーマンスに関係する問題を示す。
例示的なスロットリング構成モジュール204はまた、1つまたは複数のスロットリング論理パラメーターを記憶する。スロットリング論理パラメーターはスロットリング機構のアスペクトを規定する。例示的なスロットリング論理パラメーターは、スロットリングを活性化すべきか否かを判定するために必要な時間スナップショットの数と、時間スナップショット間の時間間隔とを含む。他のスロットリング論理パラメーターが可能である。各スロットリング論理パラメーターは設定可能である。
例示的なスロットリング論理モジュール206は、1つまたは複数のパフォーマンスカウンターを監視し、WFEのためにスロットリングをいつ活性化すべきかを判定する。一般に、例示的なWFE110のためにスロットリングをいつ活性化すべきかの判定は、nステッププロセスである。例示的なnステッププロセスにおいて、1つまたは複数のパフォーマンスカウンターはn個の時点において監視される。第1の時点は時間スナップショット1と呼ばれ、第nの時点は時間スナップショットnと呼ばれる。
例示的なnステッププロセスにおいて、例示的なスロットリング論理モジュール206は、パフォーマンスカウンターによって監視されるシステムパラメーターが所定のしきい値を超えるか否かを判定する。例示的な実施形態では、システムパラメーターが所定のしきい値を超える場合、システムパラメーターの値は、監視されるシステムパラメーターに応じて、上限を上回るかまたは下限を下回るかのいずれかである。たとえば、CPU使用率が所定のしきい値を超える場合、CPU使用率の値は上限を上回る。しかしながら、利用可能なメモリが所定のしきい値を超える場合、利用可能なメモリの値は下限を下回る。
例示的なnステッププロセス中の第1のステップは、時間スナップショット1において1つまたは複数のパフォーマンスカウンターを監視することである。時間スナップショット1において1つまたは複数のパフォーマンスカウンターが監視される場合、パフォーマンスカウンターによって監視されるシステムパラメーターが上限しきい値を上回るかまたは下限しきい値を下回ると、パフォーマンスカウンターに関連するパフォーマンスモニターは、そのパフォーマンスモニターについてのスロットリングフラグをセットする。
nステッププロセス中の次のステップは、時間スナップショット2において1つまたは複数のパフォーマンスカウンターを監視することである。時間スナップショット2は時間スナップショット1からの所定の時間間隔である。一般に使用される例示的な時間間隔は5秒である。時間間隔は設定可能な値であり、他の時間間隔が使用される。
時間スナップショット2において1つまたは複数のパフォーマンスカウンターが監視される場合、パフォーマンスカウンターによって監視されるシステムパラメーターが上限しきい値を上回るかまたは下限しきい値を下回ると、パフォーマンスカウンターに関連するパフォーマンスモニターについてのスロットリングフラグがまだセットされていなければ、パフォーマンスカウンターに関連するパフォーマンスモニターは、そのパフォーマンスモニターについてのスロットリングフラグをセットする。
nステッププロセス中の残りのステップの各々に対して、この同じプロセスが実行される。たとえば、nが5に等しい場合、1つまたは複数のパフォーマンスカウンターは、時間スナップショット3、4および5の各々においてさらに監視される。時間スナップショット3、4および5の各々において1つまたは複数のパフォーマンスカウンターが監視される場合、パフォーマンスカウンターによって監視されるシステムパラメーターが上限しきい値を上回るかまたは下限しきい値を下回ると、パフォーマンスカウンターに関連するパフォーマンスモニターについてのスロットリングフラグがまだセットされていなければ、パフォーマンスカウンターに関連するパフォーマンスモニターは、そのパフォーマンスモニターについてのスロットリングフラグをセットする。
時間スナップショットnにおいて、例示的なスロットリング論理モジュール206は、時間スナップショット1において少なくとも1つのスロットリングフラグがセットされたか否か、および(時間スナップショット2から時間スナップショットnを意味する)時間スナップショット2〜nの各々において少なくとも1つのスロットリングフラグがセットされたか否かを判定する。nが2に等しい例示的な実施形態では、2つの時間スナップショットのみが使用される。例示的なスロットリング論理モジュール206が、時間スナップショット1において少なくとも1つのスロットリングフラグがセットされ、時間スナップショット2〜nの各々において少なくとも1つのスロットリングフラグがセットされたと判定した場合、例示的なスロットリング論理モジュール206は例示的なWFE110のためにスロットリングを活性化する。WFE110においてスロットリング状態が活性化された場合、低い優先度を有する、WFE110において受信されたすべての要求メッセージがWFE110によって処理されない。代わりに、WFE110は、一般にビジーエラーであるエラーメッセージを、要求を開始したクライアントに送信する。
1つまたは複数のパフォーマンスモニターは、対応するパフォーマンスカウンターに関連するシステムパラメーターを断続的に監視する。パフォーマンスカウンターのスロットリングフラグがセットされた場合、パフォーマンスカウンターによって監視されるシステムパラメーターが上限を上回り続けるかまたは上限を下回ったままであり続ければ、スロットリングフラグはセットされたままである。しかしながら、パフォーマンスカウンターによって監視されるシステムパラメーターが、上限にあるかまたは上限を下回るあるいは下限にあるかまたは下限を上回る許容値に戻った場合、パフォーマンスカウンターのスロットリングフラグはリセットされる。
例示的なWFE110のためにスロットリングを活性化すべきか否かの判定を行う場合、例示的なスロットリング論理モジュール206は、どのパフォーマンスカウンターがスロットリングフラグをセットしたかを考慮しない。判定ファクターは、時間スナップショット1において少なくとも1つのスロットリングフラグがセットされたこと、および時間スナップショット2〜nの各々において少なくとも1つのスロットリングフラグがセットされたことである。例示的な実施形態では、時間スナップショット1および時間スナップショット2〜nの各々において異なるパフォーマンスカウンターがスロットリングフラグをセットするか、または時間スナップショット1および時間スナップショット2〜nの各々において同じパフォーマンスカウンターのスロットリングフラグがセットされると、スロットリング状態が活性化される。
時間スナップショットの数nは設定可能である。いくつかの例示的な実施形態では、例示的なスロットリング論理モジュール206は、2つの時間スナップショットを使用して、例示的なWFE110においてスロットリング状態を活性化すべきか否かに関する判定を行う。例示的なスロットリング論理モジュール206は、フォールスアラームスロットリング状態をセットする、パフォーマンス中のスパイクの可能性を最小限に抑えるために、2つの時間スナップショットを使用する。たとえば、CPUアクティビティを監視するパフォーマンスカウンターがしきい値を超えることを引き起こすCPUアクティビティのバーストがある。CPUアクティビティのこのバーストは、短い時間期間の間のみ続くスパイクである。アクティビティ中の短いスパイクのために、WFEのためにスロットリング状態を活性化することは望ましくないので、この例示的な実施形態では、2つの時間スナップショットが使用される。他の例示的な実施形態では、3つ以上の時間スナップショットが使用される。
例示的な分類器モジュール208は、メッセージ型に優先度を割り当て、スロットリングが活性化された場合、どのメッセージを処理することができるかを判定すると共に、スロットリングが活性化された場合、どのメッセージを拒否できるかを判定する。一般に、書込み動作は完了され、スロットリングされないことが望ましいが、読取り動作、たとえばウェブページの要求はスロットリングされる可能性が高い。たとえば、クライアント102上のユーザーが編集のためにドキュメントを開く場合、ユーザーにドキュメントの編集を完了させ、WFEがビジーであるためにドキュメントの編集を遅延させないようにすることが望ましい。同様に、クライアント104上のユーザーが閲覧のためにウェブページにアクセスしようと試み、ビジーエラーを受信した場合、ユーザーは単に後で再び試行する。
例示的な実施形態では、分類器モジュール208は、HTTPメッセージ型によっていくつかのメッセージを分類する。たとえば、HTTP PostおよびHTTP Putメッセージ型には一般に高い優先度が割り当てられ、HTTP Getメッセージ型には一般に低い優先度が割り当てられる。例示的な一実施形態では、例示的なWFE110上でスロットリングが活性化され、WFE110がHTTP PostまたはHTTP Putメッセージ要求を受信した場合、WFE110はHTTP PostまたはHTTP Putメッセージを処理する。同様に、WFE110上でスロットリングが活性化され、WFE110がHTTP Getメッセージ要求を受信した場合、WFE110は、一般にビジーエラーを戻すことによってHTTP Getメッセージを拒否する。
メッセージ型によってメッセージを分類することに加えて、例示的な分類器モジュール208はまた、メッセージ機能によってメッセージを分類する。たとえば、例示的なWFE110においてスロットリングが活性化された場合、検索エンジンクローラー(crawler)が、ユーザーによってトリガーされたHTTP Post要求を中断することを防ぐために、検索エンジンクローラーからのメッセージをスロットリングすることが望ましいことがある。
例示的なWFE110は2つ以上の分類器モジュールを含むことができる。たとえば、1つの分類器モジュールはHTTP機能型によって要求を分類する。別の分類器モジュールは機能によって要求を分類する。たとえば、WFE110は、Microsoft SharePointメッセージのための固有の分類器モジュールを含む。1つの分類器モジュールが要求メッセージを高い優先度に指定し、別の分類器モジュールが要求メッセージを低い優先度に指定した場合、要求メッセージは低い優先度を与えられる。ただ1つの分類器モジュールが要求メッセージに適合した場合、要求メッセージは、その分類器に関連する優先度を与えられる。
例示的なパフォーマンス分析モジュール210は、パフォーマンスカウンターのしきい値レベルおよび他のスロットリングパラメーターをより正確に設定することができるように、WFEが1つまたは複数のパフォーマンスモニターを経時的に分析することを可能にする。たとえば、パフォーマンス分析モジュール210は、同じパフォーマンスカウンターがしきい値を超えることによって、過剰な数のスロットリング状態が引き起こされていると判定する。この例では、フォールスアラームを最小限に抑えるために、パフォーマンス分析モジュール210は、パフォーマンスカウンターのしきい値限界が増加されるべきであると判定する。他の例では、パフォーマンス分析モジュール210は、スナップショット間の時間間隔、またはスロットリングを活性化するために必要なスナップショットの数が変更されるべきであると判定する。
例示的なインターフェイスモジュール212は、システム管理者がシステムパラメーターを手動で設定することを可能にする。たとえば、システム管理者は、1つまたは複数のパフォーマンスカウンターのシステムパラメーターしきい値を手動で設定可能である。システム管理者は、nの値を手動で設定し、それによって、スロットリングを活性化すべきか否かに関する判定を行うために使用される時間スナップショットの数を設定することができる。システム管理者はまた、スナップショット間の時間間隔を手動で設定することができる。他のシステムパラメーターも設定可能とすることができる。
例示的なインターフェイスモジュール212は、一般に、システム管理者がシステムパラメーターを設定することを可能にするためのコマンドラインインターフェイスを提供する。いくつかの実施形態では、グラフィカルユーザーインターフェイスが使用される。他のユーザーインターフェイスも使用可能である。
図3に、例示的なスロットリング論理モジュール206中で使用される例示的な論理300を示す。図2に示す例示的なスロットリング論理モジュール206の実施形態では、nの値は、2ステップスロットリング機構を示す2に等しい。したがって、2つのORゲートおよび2つのスロットリングフラグが示されている。他の例示的な実施形態では、ORゲートの数およびスロットリングフラグの数はnに等しい。たとえば、3ステップスロットリング機構は、3つの時間スナップショットに対応する3つのORゲートを使用する。ORゲートは一例として示されているにすぎない。例示的な実施形態では、ORゲートおよびANDゲートによって使用される論理は、他の手段によって、たとえばソフトウェアで実装可能である。
例示的なORゲート302は、時間tにおいて1つまたは複数のパフォーマンスモニターからの入力を受信する。時間tは時間スナップショット1を定める。時間tにおいて、1つまたは複数のパフォーマンスモニターのうちのいずれかが、監視されるシステムパラメーターが上限を上回るかまたは下限を下回ると判定した場合、例示的なフラグtがセットされる。例示的なフラグtは例示的なANDゲート306への1つの入力である。
例示的なORゲート304は、時間t+1において1つまたは複数のパフォーマンスモニターからの入力を受信する。時間t+1は時間スナップショット2を定める。時間t+1において、1つまたは複数のパフォーマンスモニターのうちのいずれかが、監視されるシステムパラメーターが上限を上回るかまたは下限を下回ると判定した場合、例示的なフラグt+1がセットされる。例示的なフラグt+1は例示的なANDゲート306への第2の入力である。
時間t+1において、フラグtおよびフラグt+1が両方ともセットされた場合、ANDゲート306は例示的なスロットルオン/オフフラグをセットする。例示的なスロットルオン/オフフラグがセットされた場合、例示的なWFE110においてスロットリングが活性化される。
図4は、例示的なWFE110において実行される例示的な動作400を示すフローチャートである。動作402において、例示的なWFE110は例示的なクライアント102からの要求メッセージを受信する。動作404において、例示的なWFE110は、追加の処理のための要求メッセージを受け付けるべきか否かを判定する。要求メッセージを受け付けるべきか否かの判定を行う場合、例示的なWFE110は、WFE110においてスロットリングを活性化するか否かと、要求メッセージが、スロットリングする型および機能であるか否かとを判定する。例示的なWFE110が、動作406において、要求メッセージを受け付けるという判定を行った場合、動作408において要求メッセージを処理する。例示的なWFE110が、動作406において、要求メッセージを拒否するという判定を行った場合、例示的なWFE110は応答メッセージを例示的なクライアント102に送信する。応答メッセージは、一般にビジーメッセージであるエラーメッセージであり、例示的なWFE110において要求メッセージが拒否されたことを例示的なクライアント102に示す。
図5は、例示的なWFE110において実行される例示的な動作404をより詳細に示すフローチャートである。例示的な動作404において、例示的なWFE110は、例示的なクライアント102からの要求メッセージを受け付けるべきか否かを判定する。
動作502において、例示的なWFE110上でスロットリングを活性化するか否かを判定するための確認を行う。動作504において、例示的な要求メッセージをスロットリングするか否かの判定を行う。動作506において、例示的なWFE110上でスロットリングを活性化しないという判定が行われた場合、動作508において、例示的なWFE110において要求メッセージを受け付ける。動作506において、例示的なWFE110上でスロットリングを活性化するという判定が行われ、動作510において、要求メッセージをスロットリングしないという判定が行われた場合、動作512において、例示的なWFE110は例示的な要求メッセージを受け付ける。一般にスロットリングされない例示的な要求メッセージは、HTTP PostまたはHTTP Putメッセージ型を有する要求メッセージである。
動作506において、例示的なWFE110上でスロットリングを活性化するという判定が行われ、動作510において、要求メッセージをスロットリングするという判定が行われた場合、動作514において、WFE110は例示的な要求メッセージを拒否する。一般にスロットリングされる例示的な要求メッセージは、HTTP Getメッセージ型を有する要求メッセージである。
図6は、例示的なWFE110において実行される例示的な動作600をより詳細に示すフローチャートである。例示的な動作600において、例示的なWFE110は、例示的なWFE110においてスロットリングを活性化するか否かを判定する。例示的なWFE110においてスロットリングを活性化するか否かに関する判定は一定の時間間隔で行われる。例示的なWFE110においてスロットリングを活性化するか否かに関する判定は、パフォーマンスの理由で、受信された要求メッセージごとには行われない。
動作602において、例示的なWFE110は、時間スナップショット1においてWFE110上のパフォーマンスモニターを監視する。時間スナップショット1においてパフォーマンスモニターによって監視される少なくとも1つのシステムパラメーターが、システムパラメーターにセットされた所定のしきい値を超えた場合、動作604において、例示的なWFE110は第1のスロットリングフラグをセットする。
動作606において、例示的なWFE110は、時間スナップショット2〜nにおいてWFE110上のパフォーマンスモニターを監視し、時間スナップショット2〜nは、時間スナップショット2から時間スナップショットnを意味する。時間スナップショット2〜nの各々においてパフォーマンスモニターによって監視される少なくとも1つのシステムパラメーターが、システムパラメーターにセットされた所定のしきい値を超えた場合、動作608において、例示的なWFE110はスロットリングフラグをセットする。各時間スナップショット2〜nにおいて、パフォーマンスモニターによって監視される少なくとも1つのシステムパラメーターがシステムパラメーターにセットされた所定のしきい値を超える各時間スナップショット2〜nについて、別々のスロットリングフラグがセットされる。動作606および動作608はそれぞれ複数の動作であり、時間スナップショット2〜nの各々において1つの動作が実行されることを理解されたい。
動作610において、両方のスロットリングフラグがセットされたという判定が行われた場合、動作612において、WFE110は、WFE110においてスロットリングを活性化する。動作610において、両方のスロットリングフラグがセットされていないという判定が行われた場合、動作614において、WFE110は、スロットリングが活性化されていれば、WFE110においてスロットリングを非活性化する。
図7は、例示的なWFE110において実行される例示的な動作504をより詳細に示すフローチャートである。例示的な動作504において、例示的なWFE110は、例示的なWFE110において例示的なクライアント102からの要求メッセージをスロットリングするか否かを判定する。
動作702において、例示的なWFE110は例示的なクライアント102からの要求メッセージのHTTPメッセージ型を識別する。HTTPメッセージ型のいくつかの例は、HTTP Post、HTTP PutおよびHTTP Getである。動作704において、例示的なWFE110は要求メッセージの機能を識別する。たとえば、要求メッセージはクローラー検索要求の部分である。
動作706において、例示的なWFE110は、識別されたHTTPメッセージ型を有する要求メッセージをスロットリングするか否かを判定する。一般に低い優先度のHTTPメッセージ型、たとえばHTTP Getはスロットリングし、高い優先度のHTTPメッセージ型、たとえばHTTP PostおよびHTTP Putはスロットリングしない。
動作708において、例示的なWFE110は、識別された機能を有する要求メッセージをスロットリングしないか否かを判定する。メッセージが高い優先度であることを示す機能型を有するメッセージについてはスロットリングしない。対照的に、高い優先度を有する機能型として識別されていない機能型を有するメッセージについては、一般にスロットリングする。たとえば、クローラー検索はリソース集約的であり、これらの検索が高い優先度の要求メッセージ、たとえばHTTP PostまたはHTTP Put要求を中断することは望ましくないので、クローラー機能を示すメッセージ型については一般にスロットリングする。したがって、クローラー検索は、一般に、スロットリングなしに完了することができない。
動作710において、識別されたメッセージ型をスロットリングしないと判定された場合、動作712において、要求メッセージをスロットリングしないという判定が行われる。動作710において、識別されたメッセージ型をスロットリングすると判定され、動作714において、要求メッセージの機能は、要求メッセージをスロットリングしないような機能であると判定された場合、動作716において、要求メッセージをスロットリングしないという判定が行われる。動作710において、識別されたメッセージ型をスロットリングすると判定され、動作714において、要求メッセージの機能は、要求メッセージをスロットリングすることを妨げないと判定された場合、動作718において、要求メッセージをスロットリングするという判定が行われる。
いくつかの例示的な実施形態では、メッセージ型とメッセージ機能は同じであると考えられ、別々に考えられない。これらの例示的な実施形態では、動作702と動作704は結合することができ、動作706と動作708は結合することができ、動作710〜動作716は結合することができる。
図8は、電子コンピューティングデバイス800上の例示的な物理構成要素を示すブロック図である。クライアントシステム102および104ならびにサーバーシステム108、110、112、114および116、ならびに/あるいはクライアントシステム102および104ならびに/あるいはサーバーシステム108、110、112、114および116内の電子コンピューティングデバイスは、電子コンピューティングデバイス800の様式で実装される。図8の例に示すように、電子コンピューティングデバイス800はメモリユニット801を備える。メモリユニット801は、データおよび命令を記憶することが可能なコンピュータ可読データ記憶媒体である。メモリユニット801は、限定はしないが、DRAM(ダイナミックランダムアクセスメモリ)、DDR SDRAM(ダブルデータレートシンクロナスダイナミックランダムアクセスメモリ)、reduced latency DRAM、DDR SDRAM、DDR3 SDRAM、Rambus RAM、または他のタイプのコンピュータ可読データ記憶媒体を含む、様々な異なるタイプのコンピュータ可読データ記憶媒体とすることができる。
さらに、電子コンピューティングデバイス800は処理ユニット802を備える。第1の例では、処理ユニット802は、特定の機能を与えることを処理ユニット802に行わせるソフトウェア命令を実行する。この第1の例では、処理ユニット802は、1つまたは複数の処理コアとして、および/または1つまたは複数の個別のマイクロプロセッサとして実装される。たとえば、この第1の例では、処理ユニット802は1つまたは複数のIntel Core2マイクロプロセッサとして実装される。処理ユニット802は、x86命令セット、POWER命令セット、RISC命令セット、SPARC命令セット、IA−64命令セット、MIPS命令セット、または別の命令セットなど、命令セット中の命令を実行する。第2の例では、処理ユニット802は、特定の機能を与えるASIC(特定用途向け集積回路)として実装される。第3の例では、処理ユニット1002は、ASICを使用し、ソフトウェア命令を実行することによって、特定の機能を与える。
電子コンピューティングデバイス800はまた、クライアントシステム(102および104)またはサーバーシステム(108、110、112、114、116および118)がビデオ情報をディスプレイデバイス806に出力することを可能にするビデオインターフェイス804を備える。ディスプレイデバイス806は様々な異なるタイプのディスプレイデバイスとすることができる。たとえば、ディスプレイデバイス806は、陰極線管ディスプレイ、LCDディスプレイパネル、プラズマスクリーンディスプレイパネル、タッチセンシティブディスプレイパネル、LEDアレイ、または別のタイプのディスプレイデバイスとすることができる。
さらに、電子デバイス802は非揮発性記憶デバイス808を含む。不揮発性記憶デバイス808は、データおよび/または命令を記憶することが可能なコンピュータ可読データ記憶媒体である。不揮発性記憶デバイス808は、様々な異なるタイプの異なる不揮発性記憶デバイスとすることができる。たとえば、不揮発性記憶デバイス808は、1つまたは複数のハードディスクドライブ、磁気テープドライブ、CD−ROMドライブ、DVD−ROMドライブ、ブルーレイディスクドライブ、または不揮発性記憶デバイス上の他のタイプとすることができる。
電子コンピューティングデバイス800はまた、クライアントシステム102および104ならびにサーバーシステム108、110、112、114および116が外部構成要素と通信することを可能にする外部構成要素インターフェイス810を含む。図8の例に示すように、外部構成要素インターフェイス810は入力デバイス812および外部記憶デバイス814と通信する。電子コンピューティングデバイス800の一実装形態では、外部構成要素インターフェイス810はUSB(ユニバーサルシリアルバス)インターフェイスである。電子コンピューティングデバイス800の他の実装形態では、電子コンピューティングデバイス800は、電子コンピューティングデバイス800が入力デバイスおよび/または出力デバイスと通信することを可能にする別のタイプのインターフェイスを含む。たとえば、電子コンピューティングデバイス800はPS/2インターフェイスを含む。入力デバイス812は、限定はしないが、キーボード、マウス、トラックボール、スタイラス入力デバイス、タッチパッド、タッチセンシティブディスプレイデバイス、タッチセンシティブディスプレイスクリーン、または他のタイプの入力デバイスを含む、様々な異なるタイプのデバイスとすることができる。外部記憶デバイス814は、磁気テープ、フラッシュメモリモジュール、磁気ディスクドライブ、光ディスクドライブ、および他のコンピュータ可読データ記憶媒体を含む、様々な異なるタイプのコンピュータ可読データ記憶媒体とすることができる。
さらに、電子コンピューティングデバイス800は、電子コンピューティングデバイス800が、データをネットワーク106に送信し、ネットワーク106からデータを受信することを可能にするネットワークインターフェイス816を含む。ネットワークインターフェイス816は様々な異なるタイプのネットワークインターフェイスとすることができる。たとえば、ネットワークインターフェイス816は、イーサネットインターフェイス、トークンリングインターフェイス、光ファイバーインターフェイス、ワイヤレスネットワークインターフェイス(たとえば、WiFi、WiMaxなど)、または別のタイプのネットワークインターフェイスとすることができる。
電子コンピューティングデバイス800はまた、電子コンピューティングデバイス800の様々な構成要素の間の通信を実行する通信媒体818を含む。通信媒体818は、限定はしないが、PCIバス、PCI Expressバス、AGP(アクセラレーテッドグラフィックスポート)バス、Infiniband相互接続、シリアルATA(Advanced Attachment)相互接続、パラレルATA相互接続、ファイバーチャネル相互接続、USBバス、SCSI(小型コンピュータシステムインターフェイス)インターフェイス、または別のタイプの通信媒体を含む、1つまたは複数の異なるタイプの通信媒体を備える。
図8の例には、いくつかのコンピュータ可読データ記憶媒体(すなわち、メモリユニット801、不揮発性記憶デバイス808、および外部記憶デバイス814)が示されている。全体として、これらのコンピュータ可読データ記憶媒体は単一の論理コンピュータ可読データ記憶媒体を構成する。この単一の論理コンピュータ可読データ記憶媒体は、処理ユニット802によって実行可能な命令を記憶する。上記の説明において説明した行為は、この単一の論理コンピュータ可読データ記憶媒体に記憶された命令の実行によって起こる。したがって、この説明において、特定の論理モジュールが特定の行為を実行すると言う場合、そのような記述は、ソフトウェアモジュールの命令が処理ユニット802などの処理ユニットにその行為を実行させることを意味すると解釈される。
上述の様々な実施形態は、説明のためにのみ与えられ、限定的なものと解釈されるべきではない。様々な改変および変更が、本開示の真の趣旨および範囲から逸脱することなく、上述の実施形態に対して行うことが可能である。

Claims (15)

  1. 1つまたは複数のパフォーマンスモニターを備えるパフォーマンスモニターモジュール(202)であって、前記1つまたは複数のパフォーマンスモニターのうちの前記1つまたは複数の各々はサーバーコンピュータ(110)のシステムパラメーターを監視する、パフォーマンスモニターモジュール(202)と、
    パフォーマンスモニターによって監視されるシステムパラメーターが所定のしきい値を超えるか否かを判定し、当該システムパラメーターが所定のしきい値を超えた場合、スロットリングフラグをセットする、スロットリング論理モジュール(206)と、
    前記1つまたは複数のパフォーマンスモニターによって監視される各システムパラメーターの前記所定のしきい値を記憶し、1つまたは複数のスロットリング論理パラメーターをも記憶する、スロットリング構成モジュール(204)と
    を備え、
    所定の数の時間スナップショットの各々について少なくとも1つのスロットリングフラグがセットされた場合、前記スロットリング論理モジュール(206)は前記サーバーコンピュータ(110)においてスロットリングを活性化し、前記スロットリングの活性化により、前記サーバーコンピュータ(110)によって受信された要求メッセージの処理を制限することを特徴とするサーバーコンピュータ(110)。
  2. 前記サーバーコンピュータ(110)によって受信された要求メッセージの処理を制限することは、要求メッセージを拒否することを含むことを特徴とする請求項1に記載のサーバーコンピュータ(110)。
  3. 前記スロットリングフラグに関連するシステムパラメーターが所定のしきい値を下回った場合、前記スロットリング論理モジュール(206)は前記スロットリングフラグを非活性化することを特徴とする請求項1に記載のサーバーコンピュータ(110)。
  4. 前記所定の数の時間スナップショットの各々について少なくとも1つのスロットリングフラグがセットされていない場合、前記スロットリング論理モジュール(206)はスロットリングを非活性化することを特徴とする請求項1に記載のサーバーコンピュータ(110)。
  5. 1つまたは複数の分類器を含む分類器モジュール(208)をさらに備え、前記1つまたは複数の分類器の各々は、1つまたは複数の種類の要求メッセージをスロットリングするかスロットリングしないかを識別することを特徴とする請求項1に記載のサーバーコンピュータ(110)。
  6. 前記パフォーマンスモニターの前記所定のしきい値を判定するために前記サーバーコンピュータにおいてパフォーマンスデータを分析するパフォーマンス分析モジュール(210)をさらに備えることを特徴とする請求項1に記載のサーバーコンピュータ(110)。
  7. インターフェイスモジュール(212)をさらに有し、該インターフェイスモジュール(212)は前記サーバーコンピュータ上のインターフェイスを使用して前記所定のしきい値と前記スロットリング論理パラメーターとを設定することを特徴とする請求項1に記載のサーバーコンピュータ(110)。
  8. サーバーコンピュータ(110)においてメッセージをスロットリングするための方法であって、
    前記サーバーコンピュータ(110)においてクライアントコンピュータ(102)からのHTTP要求メッセージを受信するステップと、
    前記サーバーコンピュータ(110)において前記HTTP要求メッセージを受信するステップに応答して、前記サーバーコンピュータ(110)において前記要求メッセージを受け付けるべきか否かを判定するステップであって、
    前記サーバーコンピュータ(110)においてスロットリングを活性化するか否かを判定するステップと、
    前記要求メッセージをスロットリングするか否かを判定するステップと、
    前記サーバーコンピュータ(110)においてスロットリングがを活性化しない場合、前記サーバーコンピュータ(110)において前記要求メッセージを受け付けるステップと、
    前記サーバーコンピュータ(110)においてスロットリングが活性化され、前記要求メッセージがをスロットリングしない場合、前記サーバーコンピュータ(110)において前記要求メッセージを受け付けるステップと、
    前記サーバーコンピュータ(110)においてスロットリングが活性化され、前記要求メッセージをスロットリングする場合、前記サーバーコンピュータ(110)において前記要求メッセージを拒否するステップと
    を含む、判定するステップと、
    前記サーバーコンピュータ(110)において前記要求メッセージを拒否するという判定が行われた場合、応答メッセージを前記クライアントコンピュータ(102)に送信するステップであって、前記応答メッセージは、前記サーバーコンピュータ(110)において前記要求メッセージが拒否されたことを前記クライアントコンピュータ(102、104)に通知する、送信するステップと
    を含むことを特徴とする方法。
  9. 前記サーバーコンピュータ(110)上でスロットリングを活性化するか否かを判定するステップは、
    第1の時間スナップショットに対応する時間において、前記サーバーコンピュータ(110)上の1つまたは複数のパフォーマンスモニターの状態を監視するステップと、
    前記第1の時間スナップショットの前記時間において、前記サーバーコンピュータ(110)上の前記1つまたは複数のパフォーマンスモニターの前記状態を監視するステップに応答して、前記1つまたは複数のパフォーマンスモニターのうちの少なくとも1つによって監視されるシステムパラメーターが所定のしきい値を超えたと判定された場合、第1のスロットリングフラグをセットするステップと、
    1つまたは複数の追加の時間スナップショットに対応する時間を判定するステップであって、前記1つまたは複数の追加の時間スナップショットの各々は前記第1の時間スナップショットからの1つまたは複数の所定の時間間隔において発生する、判定するステップと、
    前記1つまたは複数の追加の時間スナップショットの各々に対応する時間において、前記サーバーコンピュータ(110)上の1つまたは複数のパフォーマンスモニターの状態を監視するステップと、
    前記1つまたは複数の追加の時間スナップショットの各々の前記時間において、前記サーバーコンピュータ(110)上の1つまたは複数のパフォーマンスモニターの前記状態を監視するステップに応答して、前記1つまたは複数の追加の時間スナップショットの各々において、前記1つまたは複数のパフォーマンスモニターのうちの少なくとも1つによって監視されるシステムパラメーターが所定のしきい値を超えたと前記1つまたは複数のパフォーマンスモニターのうちの少なくとも1つが判定したか否かを判定するステップと、
    前記1つまたは複数の追加の時間スナップショットの各々の前記時間において、前記サーバーコンピュータ(110)上の前記1つまたは複数のパフォーマンスモニターの状態を監視するステップに応答して、前記1つまたは複数の追加の時間スナップショットの各々において、前記1つまたは複数のパフォーマンスモニターのうちの少なくとも1つによって監視されるシステムパラメーターが所定のしきい値を超えたと判定された場合、追加のスロットリングフラグをセットするステップと、
    前記1つまたは複数の追加の時間スナップショットの最後の時間スナップショットの時間において、前記1つまたは複数のパフォーマンスモニターのうちの少なくとも1つによって監視されるシステムパラメーターが所定のしきい値を超えたと判定された場合、前記第1のスロットリングフラグがセットされたか否かと、前記1つまたは複数の追加の時間スナップショットの各々についてスロットリングフラグがセットされたか否かとを判定するステップと、
    前記1つまたは複数の追加の時間スナップショットの前記最後の時間スナップショットの前記時間において、前記1つまたは複数のパフォーマンスモニターのうちの少なくとも1つによって監視されるシステムパラメーターが所定のしきい値を超えたと判定され、前記第1のスロットリングフラグがセットされ、前記1つまたは複数の追加の時間スナップショットの各々についてスロットリングフラグがセットされたと判定された場合、前記サーバーコンピュータ(110)上のスロットリングを活性化するステップと
    を含むことを特徴とする請求項8に記載の方法。
  10. 前記要求メッセージをスロットリングするか否かを判定するステップは、
    前記要求メッセージのHTTPメッセージ型を識別するステップと、
    前記要求メッセージの機能を識別するステップと、
    前記要求メッセージの識別されたHTTPメッセージ型が、スロットリングするHTTPメッセージ型であるか否かを判定するステップと、
    前記要求メッセージの識別された機能が、スロットリングしない機能であるか否かを判定するステップと、
    前記要求メッセージの識別されたHTTPメッセージ型が、スロットリングしないHTTPメッセージ型であるか、または前記要求メッセージの前記識別された機能が、スロットリングしない機能である場合、前記要求メッセージをスロットリングしないと判定するステップと、
    前記要求メッセージの前記識別されたHTTPメッセージ型が、スロットリングしないHTTPメッセージ型であり、前記要求メッセージの前記識別された機能が、スロットリングしない機能として識別されていない機能である場合、前記要求メッセージをスロットリングすると判定するステップと
    を含むことを特徴とする請求項8に記載の方法。
  11. 前記要求メッセージをスロットリングするか否かを判定するステップは、スロットリング用に指定されたHTTPメッセージ型を識別するために1つまたは複数の分類器を使用するステップをさらに含むことを特徴とする請求項8に記載の方法。
  12. 時間スナップショットの数は設定可能であることを特徴とする請求項8に記載の方法。
  13. 前記1つまたは複数のパフォーマンスモニターの各々の前記所定のしきい値は設定可能であることを特徴とする請求項8に記載の方法。
  14. 前記第1の時間スナップショットと第2の時間スナップショットとの間の前記所定の時間間隔は設定可能であることを特徴とする請求項8に記載の方法。
  15. サーバーコンピュータ(110)の処理ユニットによって実行された場合、サーバーコンピュータ(110)に、
    クライアントコンピュータ(102)からのHTTP要求メッセージを受信することと、
    前記HTTP要求メッセージを受信することに応答して、前記要求メッセージを受け付けるべきか否かを判定することであって、
    第1の時間スナップショットに対応する時間において、前記サーバーコンピュータ(110)上の1つまたは複数のパフォーマンスモニターの状態を監視することと、
    前記第1の時間スナップショットの前記時間において、前記サーバーコンピュータ(110)上の前記1つまたは複数のパフォーマンスモニターの前記状態を監視することに応答して、前記1つまたは複数のパフォーマンスモニターのうちの少なくとも1つによって監視されるシステムパラメーターが所定のしきい値を超えたと判定された場合、第1のスロットリングフラグをセットすることと、
    1つまたは複数の追加の時間スナップショットに対応する時間を判定することであって、前記1つまたは複数の追加の時間スナップショットの各々は前記第1の時間スナップショットからの1つまたは複数の所定の時間間隔において発生する、判定することと、
    前記1つまたは複数の追加の時間スナップショットの各々に対応する時間において、前記サーバーコンピュータ(110)上の1つまたは複数のパフォーマンスモニターの状態を監視することと、
    前記1つまたは複数の追加の時間スナップショットの各々の前記時間において、前記サーバーコンピュータ(110)上の1つまたは複数のパフォーマンスモニターの前記状態を監視することに応答して、前記1つまたは複数の追加の時間スナップショットの各々において、前記1つまたは複数のパフォーマンスモニターのうちの少なくとも1つによって監視されるシステムパラメーターが所定のしきい値を超えたと前記1つまたは複数のパフォーマンスモニターのうちの少なくとも1つが判定したか否かを判定することと、
    前記1つまたは複数の追加の時間スナップショットの各々の前記時間において、前記サーバーコンピュータ(110)上の前記1つまたは複数のパフォーマンスモニターの前記状態を監視することに応答して、前記1つまたは複数の追加の時間スナップショットの各々において、前記1つまたは複数のパフォーマンスモニターのうちの少なくとも1つによって監視されるシステムパラメーターが所定のしきい値を超えたと判定された場合、追加のスロットリングフラグをセットすることと、
    前記1つまたは複数の追加の時間スナップショットの最後の時間スナップショットの時間において、前記1つまたは複数のパフォーマンスモニターのうちの少なくとも1つによって監視されるシステムパラメーターが所定のしきい値を超えたと判定された場合、前記第1のスロットリングフラグがセットされたか否かと、前記1つまたは複数の追加の時間スナップショットの各々についてスロットリングフラグがセットされたか否かとを判定することと、
    前記1つまたは複数の追加の時間スナップショットの前記最後の時間スナップショットの前記時間において、前記1つまたは複数のパフォーマンスモニターのうちの少なくとも1つによって監視されるシステムパラメーターが所定のしきい値を超えたと判定され、前記第1のスロットリングフラグがセットされ、前記1つまたは複数の追加の時間スナップショットの各々についてスロットリングフラグがセットされたと判定された場合、前記サーバーコンピュータ(110)上のスロットリングを活性化することと、
    前記要求メッセージのHTTPメッセージ型を識別することと、
    前記要求メッセージの機能を識別することと、
    前記要求メッセージの識別されたHTTPメッセージ型が、スロットリングするHTTPメッセージ型であるか否かを判定することと、
    前記要求メッセージの識別された機能が、スロットリングしない機能であるか否かを判定することと、
    前記要求メッセージの識別されたHTTPメッセージ型が、スロットリングしないHTTPメッセージ型であるか、または前記要求メッセージの識別された機能が、スロットリングしない機能である場合、前記要求メッセージはスロットリングしないと判定することと、
    前記要求メッセージの前記識別されたHTTPメッセージ型が、スロットリングしないHTTPメッセージ型であり、前記要求メッセージの識別された機能が、スロットリングしない機能として識別されていない機能である場合、前記要求メッセージをスロットリングすると判定することと、
    前記サーバーコンピュータ(110)においてスロットリングを活性化しない場合、前記サーバーコンピュータ(110)において前記要求メッセージを受け付けることと、
    前記サーバーコンピュータ(110)においてスロットリングが活性化され、前記要求メッセージをスロットリングしない場合、前記サーバーコンピュータ(110)において前記要求メッセージを受け付けることと、
    前記サーバーコンピュータ(110)においてスロットリングが活性化され、前記要求メッセージをスロットリングする場合、前記サーバーコンピュータ(110)において前記要求メッセージを拒否することと
    を含む、前記要求メッセージを受け付けるべき否かを判定することと、
    前記サーバーコンピュータ(110)において前記要求メッセージを拒否するという判定が行われた場合、応答メッセージを前記クライアントコンピュータ(102、104)に送信することであって、前記応答メッセージは、前記サーバーコンピュータ(110)において前記要求メッセージが拒否されたことを前記クライアントコンピュータ(102)に通知する、送信することと
    を行わせる命令を備えることを特徴とするコンピュータ可読データ記憶媒体。
JP2012500831A 2009-03-18 2010-03-09 ウェブフロントエンドスロットリング Withdrawn JP2012521042A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/406,699 2009-03-18
US12/406,699 US20100241760A1 (en) 2009-03-18 2009-03-18 Web Front-End Throttling
PCT/US2010/026713 WO2010107628A2 (en) 2009-03-18 2010-03-09 Web front-end throttling

Publications (1)

Publication Number Publication Date
JP2012521042A true JP2012521042A (ja) 2012-09-10

Family

ID=42738587

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012500831A Withdrawn JP2012521042A (ja) 2009-03-18 2010-03-09 ウェブフロントエンドスロットリング

Country Status (9)

Country Link
US (1) US20100241760A1 (ja)
EP (1) EP2409238A2 (ja)
JP (1) JP2012521042A (ja)
KR (1) KR20110128870A (ja)
CN (1) CN102356388B (ja)
BR (1) BRPI1007888A2 (ja)
RU (1) RU2011138226A (ja)
SG (1) SG173560A1 (ja)
WO (1) WO2010107628A2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631109B2 (en) * 2009-05-12 2014-01-14 Hewlett-Packard Development Company, L.P. System and method for dynamic control of network management traffic loads
US20110208854A1 (en) * 2010-02-19 2011-08-25 Microsoft Corporation Dynamic traffic control using feedback loop
US8892632B2 (en) * 2010-06-04 2014-11-18 Microsoft Corporation Client-server interaction frequency control
US8539080B1 (en) * 2012-12-18 2013-09-17 Microsoft Corporation Application intelligent request management based on server health and client information
US9699625B2 (en) 2013-07-18 2017-07-04 International Business Machines Corporation Push notification middleware
US9706002B2 (en) 2013-07-18 2017-07-11 International Business Machines Corporation Push notification via file sharing service synchronization
US9780994B2 (en) 2013-07-18 2017-10-03 International Business Machines Corporation Notification normalization
CN105589783A (zh) * 2014-11-18 2016-05-18 广州市动景计算机科技有限公司 应用程序卡顿问题数据获取方法及装置
US11727997B2 (en) * 2017-07-07 2023-08-15 Micron Technology, Inc. RPMB improvements to managed NAND
US11294678B2 (en) 2018-05-29 2022-04-05 Advanced Micro Devices, Inc. Scheduler queue assignment
US11334384B2 (en) * 2019-12-10 2022-05-17 Advanced Micro Devices, Inc. Scheduler queue assignment burst mode
US11770436B2 (en) * 2020-07-29 2023-09-26 Citrix Systems, Inc. Web client with response latency awareness
US11948000B2 (en) 2020-10-27 2024-04-02 Advanced Micro Devices, Inc. Gang scheduling for low-latency task synchronization
US11842219B2 (en) * 2021-03-05 2023-12-12 EMC IP Holding Company LLC Automatic identification of computer agents for throttling

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US6473793B1 (en) * 1994-06-08 2002-10-29 Hughes Electronics Corporation Method and apparatus for selectively allocating and enforcing bandwidth usage requirements on network users
US6961341B1 (en) * 1996-07-02 2005-11-01 Microsoft Corporation Adaptive bandwidth throttling for network services
US6799276B1 (en) * 2000-06-26 2004-09-28 Sun Microsystems, Inc. Method and apparatus for restraining connection request stream associated with high volume burst client in a distributed network
US7231445B1 (en) * 2000-11-16 2007-06-12 Nortel Networks Limited Technique for adaptively distributing web server requests
US20020078382A1 (en) * 2000-11-29 2002-06-20 Ali Sheikh Scalable system for monitoring network system and components and methodology therefore
US6886041B2 (en) * 2001-10-05 2005-04-26 Bea Systems, Inc. System for application server messaging with multiple dispatch pools
US7231455B2 (en) * 2002-01-14 2007-06-12 Sun Microsystems, Inc. System monitoring service using throttle mechanisms to manage data loads and timing
US7076672B2 (en) * 2002-10-14 2006-07-11 Intel Corporation Method and apparatus for performance effective power throttling
US7353538B2 (en) * 2002-11-08 2008-04-01 Federal Network Systems Llc Server resource management, analysis, and intrusion negation
US20060200450A1 (en) * 2005-03-04 2006-09-07 Microsoft Corporation Monitoring health of actively executing computer applications
US7664841B2 (en) * 2005-12-07 2010-02-16 International Business Machines Corporation Selective activation of TCP/IP link and traffic
US7590149B1 (en) * 2006-11-10 2009-09-15 Juniper Networks, Inc. Load balancing with unequal routing metrics in a meshed overlay network
US7877644B2 (en) * 2007-04-19 2011-01-25 International Business Machines Corporation Computer application performance optimization system
JP5173388B2 (ja) * 2007-12-11 2013-04-03 キヤノン株式会社 情報処理装置および情報処理方法
US7840720B2 (en) * 2008-03-31 2010-11-23 International Business Machines Corporation Using priority to determine whether to queue an input/output (I/O) request directed to storage
US20090319440A1 (en) * 2008-04-07 2009-12-24 John Hancock Life Insurance Company (U.S.A.) System and method for providing retirement plan health reports
US8510469B2 (en) * 2009-08-31 2013-08-13 Cisco Technology, Inc. Measuring attributes of client-server applications
US8478451B2 (en) * 2009-12-14 2013-07-02 Intel Corporation Method and apparatus for dynamically allocating power in a data center
US8112062B2 (en) * 2009-12-22 2012-02-07 Cellco Partnership System and method for sending threshold notification in real time
US8200812B2 (en) * 2009-12-31 2012-06-12 International Business Machines Corporation Reducing workload on a backend system using client side request throttling
US9021046B2 (en) * 2010-01-15 2015-04-28 Joyent, Inc Provisioning server resources in a cloud resource
US20110208854A1 (en) * 2010-02-19 2011-08-25 Microsoft Corporation Dynamic traffic control using feedback loop

Also Published As

Publication number Publication date
CN102356388B (zh) 2013-05-01
WO2010107628A2 (en) 2010-09-23
RU2011138226A (ru) 2013-03-27
WO2010107628A3 (en) 2011-01-13
SG173560A1 (en) 2011-09-29
CN102356388A (zh) 2012-02-15
BRPI1007888A2 (pt) 2018-03-06
US20100241760A1 (en) 2010-09-23
EP2409238A2 (en) 2012-01-25
KR20110128870A (ko) 2011-11-30

Similar Documents

Publication Publication Date Title
JP2012521042A (ja) ウェブフロントエンドスロットリング
US8893146B2 (en) Method and system of an I/O stack for controlling flows of workload specific I/O requests
US10042583B2 (en) Device management method, device, and device management controller
US8954811B2 (en) Administering incident pools for incident analysis
US7788435B2 (en) Interrupt redirection with coalescing
JP2018532172A (ja) リソーススケジューリングのための方法およびシステム
US10078543B2 (en) Correctable error filtering for input/output subsystem
US11231987B1 (en) Debugging of memory operations
US10614004B2 (en) Memory transaction prioritization
KR102563165B1 (ko) 메모리 액세스 요청 스케줄링 방법, 장치, 기기 및 저장 매체
US11163630B2 (en) Using real-time analytics to manage application features
CN114817110B (zh) 一种数据传输方法及装置
CN106603256B (zh) 一种流量控制方法及装置
US20180239686A1 (en) Input and output recording device and method, cpu and data read and write operation method thereof
US10768853B2 (en) Information handling system with memory flush during shut down
US10339462B2 (en) System and method for executing a high bandwidth network activity as a background activity in a virtual desktop environment
US20180131756A1 (en) Method and system for affinity load balancing
JP2014232382A (ja) 制御装置、制御方法及び制御プログラム
US9239792B2 (en) Sharing cache in a computing system
US20120233375A1 (en) Adjustment of post and non-post packet transmissions in a communication interconnect
US11847089B2 (en) Electronic device and method for sharing data lanes of a network interface device between two or more computing devices
US20240012743A1 (en) Automation test accelerator
JP6896035B2 (ja) 監視システム、監視SaaS提供装置、管理装置、及びプログラム
KR102019173B1 (ko) 웹 응용 서버의 클라이언트 세션 차단 방법 및 장치
CN112256208A (zh) 一种离线数据包存储分析方法及装置

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20121005