(57)【要約】【課題】エンド・ユーザのトランザクションの応答時間を測定することにより作業負荷の応答時間特性を学習し、応答時間をバケットに分類し、作業負荷の応答時間特性が変化するのに伴って応答時間分布を動的に調整する適合型の機構を提供すること。【解決手段】適合型の機構は、変更間の実際の分布を維持し、したがって、エンド・ユーザがより長い期間に生じる作業負荷の挙動の変化を理解することを助ける。この機構は、急激な上昇を抑制するのに十分に安定しており、長期間にわたる性能の分析と容量計画に必要とされる作業負荷の挙動の一定したビューを返す。この機構は、分布を設定する初期学習段階と、１つまたは複数の反応期間とを区別する。反応期間は、例えば、作業負荷の挙動が大きく変動している場合の迅速な反応期間、および偏差が小さい場合の緩慢な反応期間であってよい。【選択図】図１
2015501020.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システムにおける、トランザクション作業負荷の適合型応答時間分布のための方法であって、
初期中点に基づいて応答時間分布を生成するステップであって、前記応答時間分布は複数のバケットを含み、前記複数のバケット中の各バケットは前記初期中点を基準とする時間範囲を定義し、対応するバケット・カウンタを有する、ステップと、
前記データ処理システム内のトランザクションのトランザクション応答時間を少なくとも１つの時間間隔にわたり記録するステップと、
前記収集されたトランザクション応答時間を前記応答時間分布の前記複数のバケットに割り当てるステップと、
前記初期中点からの応答時間の変動を検出するのに応答して、前記収集されたトランザクション応答時間に基づいて新しい中点を決定するステップと、
前記応答時間分布の各バケットが前記新しい中点を基準とする時間範囲を定義するように、前記新しい中点に基づいて前記応答時間分布を更新するステップと
を含む方法。
【請求項２】
応答時間の変動を検出するステップは、
所与の時間間隔について、少なくとも１つの検査を行うステップであって、前記少なくとも１つの検査の各検査は、トランザクション応答時間のうち所定の割合が、前記複数のバケットのうち所定のバケットの組に割り当てられているかどうかを判定する、ステップと、
前記応答時間分布が前記少なくとも１つの検査中の所与の検査に不合格であると判定するのに応じて、間隔外カウンタを増分するステップと、
前記間隔外カウンタが所定の閾値を超えているかどうかを判定するステップと
を含む、請求項１に記載の方法。
【請求項３】
前記間隔外カウンタを増分するステップは、
前記所与の時間間隔に収集されたトランザクション時間の数と、前記所与の検査の識別とに基づいて増分係数を求めるステップと、
前記間隔外カウンタを前記増分係数だけ増分するステップと
を含む、請求項２に記載の方法。
【請求項４】
応答時間の変動を検出するステップはさらに、
前記応答時間分布が前記少なくとも１つの検査に合格すると判定するのに応じて、前記間隔外カウンタの絶対値を減分するステップを含む、請求項２に記載の方法。
【請求項５】
前記間隔外カウンタの前記絶対値を減分するステップは、前記所与の時間間隔に収集されたトランザクション時間の数に基づいて決定される増分係数だけ前記間隔外カウンタの前記絶対値を減分するステップを含む、請求項４に記載の方法。
【請求項６】
応答時間の変動を検出するステップはさらに、
前記間隔外カウンタが所定の閾値を超えないと判定するのに応じて、前記応答時間分布を応答時間分布履歴に蓄積するステップを含む、請求項２に記載の方法。
【請求項７】
前記新しい中点を決定するステップは、前記収集されたトランザクション応答時間の平均に等しくなるように前記新しい中点を設定するステップを含む、請求項１に記載の方法。
【請求項８】
前記少なくとも１つの時間間隔は初期学習段階を含み、前記初期中点に基づいて前記応答時間分布を生成するステップは、
前記複数のバケット中の各バケットに対応するカウンタをゼロに設定するステップと、
前記初期中点をゼロに設定するステップと
を含む、請求項１に記載の方法。
【請求項９】
前記収集されたトランザクション応答時間を前記応答時間分布の前記複数のバケットに割り当てるステップは、
前記収集されたトランザクション応答時間の各トランザクション応答時間について、前記トランザクション応答時間を含む時間範囲を定義する前記複数のバケット中の１つのバケットに関連付けられたカウントを増分するステップ
を含む請求項１に記載の方法。
【請求項１０】
前記収集されたトランザクション応答時間を前記応答時間分布の前記複数のバケットに割り当てるステップはさらに、
所定数の時間間隔についてのトランザクション応答時間を蓄積トランザクション履歴に蓄積するステップを含む、請求項１に記載の方法。
【請求項１１】
コンピュータ可読プログラムが記憶されたコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ可読プログラムは、コンピューティング機器で実行されると、前記コンピューティング機器に、
初期中点に基づいて応答時間分布を生成する動作であって、前記応答時間分布は複数のバケットを含み、前記複数のバケット中の各バケットは前記初期中点を基準とする時間範囲を定義し、対応するバケット・カウンタを有する、動作と、
前記データ処理システム内のトランザクションのトランザクション応答時間を少なくとも１つの時間間隔にわたり記録する動作と、
前記収集されたトランザクション応答時間を前記応答時間分布の前記複数のバケットに割り当てる動作と、
前記初期中点からの応答時間の変動を検出するのに応答して、前記収集されたトランザクション応答時間に基づいて新しい中点を決定する動作と、
前記応答時間分布の各バケットが前記新しい中点を基準とする時間範囲を定義するように、前記新しい中点に基づいて前記応答時間分布を更新する動作とを実行させる、コンピュータ・プログラム製品。
【請求項１２】
応答時間の変動を検出する動作は、
所与の時間間隔について、少なくとも１つの検査を行う動作であって、前記少なくとも１つの検査中の各検査は、トランザクション応答時間のうち所定の割合が、前記複数のバケットのうち所定のバケットの組に割り当てられているかどうかを判定する、動作と、
前記応答時間分布が前記少なくとも１つの検査中の所与の検査に不合格であると判定するのに応じて、間隔外カウンタを増分する動作と、
前記間隔外カウンタが所定の閾値を超えているかどうかを判定する動作と
を含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１３】
前記間隔外カウンタを増分する動作は、
前記所与の時間間隔に収集されたトランザクション時間の数と、前記所与の検査の識別とに基づいて増分係数を求める動作と、
前記間隔外カウンタを前記増分係数だけ増分する動作と
を含む、請求項１２に記載のコンピュータ・プログラム製品。
【請求項１４】
応答時間の変動を検出する動作はさらに、
前記応答時間分布が前記少なくとも１つの検査に合格すると判定するのに応じて、前記間隔外カウンタの絶対値を減分する動作を含む、請求項１２に記載のコンピュータ・プログラム製品。
【請求項１５】
応答時間の変動を検出する動作はさらに、
前記間隔外カウンタが所定の閾値を超えないと判定するのに応じて、前記応答時間分布を応答時間分布履歴に蓄積する動作を含む、請求項１２に記載のコンピュータ・プログラム製品。
【請求項１６】
前記少なくとも１つの時間間隔は初期学習段階を含み、前記初期中点に基づいて前記応答時間分布を生成する動作は、
前記複数のバケット中の各バケットに対応するカウンタをゼロに設定する動作と、
前記初期中点をゼロに設定する動作と
を含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１７】
前記コンピュータ可読プログラムは、データ処理システム中のコンピュータ可読記憶媒体に記憶され、前記コンピュータ可読プログラムは、遠隔のデータ処理システムからネットワークを介してダウンロードされたものである、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１８】
前記コンピュータ可読プログラムは、サーバ・データ処理システム中のコンピュータ可読記憶媒体に記憶され、前記コンピュータ可読プログラムは、遠隔のデータ処理システムでコンピュータ可読記憶媒体内で使用するために、ネットワークを介して前記遠隔のデータ処理システムにダウンロードされる、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１９】
プロセッサと、
前記プロセッサに結合されたメモリと
を備える装置であって、前記メモリは、前記プロセッサによって実行されると前記プロセッサに、
初期中点に基づいて応答時間分布を生成する動作であって、前記応答時間分布は複数のバケットを含み、前記複数のバケット中の各バケットは前記初期中点を基準とする時間範囲を定義し、かつ対応するバケット・カウンタを有する、動作と、
前記データ処理システム内のトランザクションのトランザクション応答時間を少なくとも１つの時間間隔にわたり記録する動作と、
前記収集されたトランザクション応答時間を前記応答時間分布の前記複数のバケットに割り当てる動作と、
前記初期中点からの応答時間の変動を検出するのに応答して、前記収集されたトランザクション応答時間に基づいて新しい中点を決定する動作と、
前記応答時間分布の各バケットが前記新しい中点を基準とする時間範囲を定義するように、前記新しい中点に基づいて前記応答時間分布を更新する動作とを実行させる、命令を含む、装置。
【請求項２０】
応答時間の変動を検出する動作は、
所与の時間間隔について、少なくとも１つの検査を行う動作であって、前記少なくとも１つの検査中の各検査は、トランザクション応答時間のうち所定の割合が、前記複数のバケットのうち所定のバケットの組に割り当てられているかどうかを判定する、動作と、
前記応答時間分布が前記少なくとも１つの検査中の所与の検査に不合格であると判定するのに応じて、間隔外カウンタを増分する動作と、
前記間隔外カウンタが所定の閾値を超えているかどうかを判定する動作と
を含む、請求項１９に記載の装置。
【請求項２１】
前記間隔外カウンタを増分する動作は、
前記所与の時間間隔に収集されたトランザクション時間の数と、前記所与の検査の識別とに基づいて増分係数を求める動作と、
前記間隔外カウンタを前記増分係数だけ増分する動作と
を含む、請求項２０に記載の装置。
【請求項２２】
応答時間の変動を検出する動作はさらに、
前記応答時間分布が前記少なくとも１つの検査に合格すると判定するのに応じて、前記間隔外カウンタの絶対値を減分する動作を含む、請求項２０に記載の装置。
【請求項２３】
応答時間の変動を検出する動作はさらに、
前記間隔外カウンタが所定の閾値を超えないと判定するのに応じて、前記応答時間分布を応答時間分布履歴に蓄積する動作を含む、請求項２０に記載の装置。
【請求項２４】
前記少なくとも１つの時間間隔は初期学習段階を含み、前記初期中点に基づいて前記応答時間分布を生成する動作は、
前記複数のバケット中の各バケットに対応するカウンタをゼロに設定する動作と、
前記初期中点をゼロに設定する動作と
を含む、請求項１９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、一般には改良されたデータ処理装置および方法に関し、より詳細には、トランザクション作業負荷の応答時間分布を適合的に決定する機構に関する。
【背景技術】
【０００２】
企業資源計画（ＥＲＰ）システムやデータベース処理システムなど、今日のコンピュータ環境の多くは、いわゆるトランザクションの作業負荷に基づいて動作する。トランザクションは、システム内で行われる作業の単位であり、他のトランザクションからは切り離して、一貫性があり、信頼できる形で扱われる。定義上、トランザクションは、アトミックで、一貫性があり、他から独立し、永続的でなければならない。専門家は、しばしば、これらのトランザクションの特性を頭字語「ＡＣＩＤ」を用いて表現する。トランザクションは「すべてか無か」の命題を提供し、これは、実行される各作業単位は完全に完了しているか、または全く実施されないかのどちらかでなければならないことを意味する。
【０００３】
コンピュータ・システムは、事前に設定された規則のセットに従ってトランザクションをサービス・クラスに分類することができる。サービス・クラスは、同様の属性を共有し、例えば応答時間の目標などのインストール先定義の（ｉｎｓｔａｌｌａｔｉｏｎ  ｄｅｆｉｎｅｄ）目標と、インストール先定義の重要度に向かってシステムによって管理される作業の群である。応答時間の目標は、システムおよびその構成要素である作業負荷マネジャが満たそうとする目標である。システムは、最も重要な作業にシステム・リソースを割り当てて目標を達成することにより、その作業の目標を最初に満たすことを試みる。
【０００４】
サービス・クラスごとに、コンピュータ・システムは、管理機能または報告機能あるいはその両方を提供する。コンピュータ・システムは、事前に設定された規則のセットに基づいて、１つのトランザクションを１つまたは数個のリポート・クラスに報告することができる。リポート・クラスは、報告の目的でのみ機能する。リポート・クラスは、作業を管理する機構ではなく、システムのユーザが作業の遂行状況を観察するために使用される。システムは、各作業単位を１つのサービス・クラス（必須）および１つまたは複数のリポート・クラス（任意）に関連付けることができる。
【０００５】
１つのサービスまたはリポート・クラスに関連付けられたすべてのトランザクションの個々の応答時間を保存するには大量の記憶空間を要するため、システムは、複数の期間にわたるトランザクションの応答時間の集約された報告を提供することができる。この集約された報告は、応答時間分布（ＲＴＤ）と呼ばれる。
【０００６】
応答時間分布（ＲＴＤ）は、ヒストグラムの一形態である。統計学では、ヒストグラムは、データの分布の視覚的印象を示すグラフ表現である。ヒストグラムは、「バケット（bucket）」または「ビン」と呼ばれる個別の区間の上に直立する平面状の度数からなる。矩形の高さは、その区間の度数の密度、すなわち度数を区間の幅で割った値にも等しい。ヒストグラムの合計面積はデータ数に等しい。ヒストグラムは、正規化して相対的な度数を表示することもできる。その場合は、いくつかのカテゴリ各々に該当する事例の比率が示され、合計面積は１に等しくなる。カテゴリは、通常は、１つの変数の連続した重複のない区間として指定される。
【０００７】
応答時間分布（ＲＴＤ）は、完了した各トランザクションを応答時間に基づいてバケットに割り当てることにより、トランザクションに基づくシステムの挙動を記述する。各バケットは、中点（midpoint）に基づく応答時間の範囲を表す。バケットで表される範囲および中点は事前に決められるため、応答時間分布は静的である。中点は、例えば応答時間の目標や予想される応答時間に基づいて求めることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
トランザクション作業負荷の応答時間分布の適合的な決定方法、装置、プログラムを提供することである。
【課題を解決するための手段】
【０００９】
一例示的実施形態では、データ処理システムにおける、トランザクション作業負荷の適合型応答時間分布のための方法が提供される。この方法は、初期中点に基づいて応答時間分布を生成するステップを含み、応答時間分布は複数のバケットを含む。複数のバケットの各バケットは初期中点を基準とする時間範囲を定義し、対応するバケット・カウンタを有する。方法はさらに、データ処理システム内のトランザクションのトランザクション応答時間を少なくとも１つの時間間隔にわたり記録し、収集されたトランザクション応答時間を応答時間分布の複数のバケットに割り当てるステップを含む。方法はさらに、初期中点からの応答時間の変動を検出するのに応答して、収集されたトランザクション応答時間に基づいて新しい中点を決定するステップを含む。方法はさらに、応答時間分布の各バケットが新しい中点を基準とする時間範囲を定義するように、新しい中点に基づいて応答時間分布を更新するステップを含む。
【００１０】
他の例示的実施形態では、コンピュータ可読プログラムを有するコンピュータ使用可能またはコンピュータ可読媒体を含むコンピュータ・プログラム製品が提供される。コンピュータ可読プログラムは、コンピューティング機器で実行されると、コンピューティング機器に、上記で方法の例示的実施形態に関して概説した動作の中の各種動作およびそれらの組み合わせを行わせる。
【００１１】
さらに別の例示的実施形態では、システム／装置が提供される。このシステム／装置は、１つまたは複数のプロセッサと、その１つまたは複数のプロセッサに結合されたメモリとを備えることができる。メモリは、１つまたは複数のプロセッサによって実行されると、１つまたは複数のプロセッサに、上記で方法の例示的実施形態に関して概説した動作の中の各種動作およびそれらの組み合わせを行わせる命令を備えることができる。
【００１２】
本発明の上記および他の特徴および利点は、以下の本発明の例示的実施形態の詳細な説明に記載され、またはその説明に照らして当業者に明らかになろう。
【図面の簡単な説明】
【００１３】
本発明ならびにその好ましい使用の形態およびさらなる目的および利点は、添付図面と合わせて以下の例示的実施形態の詳細な説明を参照することにより最もよく理解されよう。
【００１４】
【図１】例示的実施形態の態様を実施することが可能な分散データ処理システム例の図式表現である。
【図２】例示的実施形態の態様を実施することが可能なデータ処理システム例のブロック図である。
【図３】一実施形態により生成された応答時間分布の例を示す図である。
【図４】例示的実施形態によりトランザクション作業負荷の応答時間分布を動的に決定する応答時間分布機構のブロック図である。
【図５】例示的実施形態により生成された適合型応答時間分布の例を示す図である。
【図６】例示的実施形態によりトランザクションの作業負荷の応答時間分布を適合的に決定する機構の動作を説明するフローチャートである。
【図７】例示的実施形態により初期化を行う際の機構の動作を説明するフローチャートである。
【図８】例示的実施形態により応答時間分布を構築する際の機構の動作を説明するフローチャートである。
【図９】例示的実施形態に係る、分布を調べ、カウンタを更新する際の機構の動作を説明するフローチャートである。
【図１０】例示的実施形態に係る、中点を変更し、結果を反映させる際の機構の動作を説明するフローチャートである。
【図１１】例示的実施形態に係る、終了したトランザクションを処理する際の機構の動作を説明するフローチャートである。
【図１２】一例示的実施形態による２８個のバケットを有する応答時間分布を示す図である。
【図１３】一例示的実施形態による１４個のバケットを有する応答時間分布を示す図である。
【図１４】例示的実施形態に係る中点の変更率を説明する表である。
【図１５】例示的実施形態に係る、中点を大きく下回る応答時間分布の例を示す図である。
【図１６】例示的実施形態に係る、中点を大きく下回る応答時間分布の例を示す図である。
【図１７】例示的実施形態に係る、中点を大きく上回る応答時間分布の例を示す図である。
【図１８】例示的実施形態に係る、中点を大きく上回る応答時間分布の例を示す図である。
【図１９】例示的実施形態に係る、中点を中程度に下回る応答時間分布の例を示す図である。
【図２０】例示的実施形態に係る、中点を中程度に下回る応答時間分布の例を示す図である。
【図２１】例示的実施形態に係る、中点を中程度に上回る応答時間分布の例を示す図である。
【図２２】例示的実施形態に係る、中点を中程度に上回る応答時間分布の例を示す図である。
【発明を実施するための形態】
【００１５】
例示的実施形態は、エンド・ユーザのトランザクションの応答時間を測定することにより作業負荷の応答時間特性を学習し、応答時間をバケットに分類し、作業負荷の応答時間特性が変化するのに伴って応答時間分布を動的に調整する適合型の機構を提供する。適合型の機構は、変更間の実際の分布を維持し、したがって、エンド・ユーザがより長い期間に生じる作業負荷の挙動の変化を理解することを助ける。この機構は、急激な上昇を抑制するのに十分に安定しており、長期間にわたる性能の分析と容量計画に必要とされる作業負荷の挙動の一定したビューを返す。この機構は、分布を設定する初期学習段階と、１つまたは複数の反応期間とを区別する。反応期間は、例えば、作業負荷の挙動が大きく変動している場合の迅速な反応期間、および偏差が小さい場合の緩慢な反応期間とすることができる。あるいは、機構は、必要に応じてそれより少ない、または多い反応期間（例えば、迅速、中程度、緩慢等）を実装してもよい。
【００１６】
例示的実施形態は、種々のデータ処理環境で利用することができる。例示的実施形態の具体的な要素および機能を説明するための背景を提供するために、以下に、例示的実施形態の態様を実施することが可能な環境の例として図１および図２を提供する。図１および図２は例に過ぎず、本発明の態様または実施形態を実装することが可能な環境に関する制限を主張または示唆するものではないことを理解されたい。本発明の主旨および範囲から逸脱することなく、図示の環境に多くの変更を加えることができる。
【００１７】
図１は、例示的実施形態の態様が実施されることが可能な分散データ処理システム例の図式表現である。分散データ処理システム１００はコンピュータのネットワークを含むことができ、その中で例示的実施形態の態様を実施することができる。分散データ処理システム１００は少なくとも１つのネットワーク１０２を含み、ネットワーク１０２は、分散データ処理システム１００内で相互に接続された各種機器およびコンピュータ間の通信リンクを提供するために使用される媒体である。ネットワーク１０２は、有線、ワイヤレスの通信リンク、または光ファイバ・ケーブルなどの接続を含むことができる。
【００１８】
図の例では、サーバ１０４およびサーバ１０６は、ネットワーク１０２、そしてストレージ１０８に接続されている。また、クライアント１１０、１１２、および１１４もネットワーク１０２に接続されている。これらのクライアント１１０、１１２、および１１４は、例えばパーソナル・コンピュータやネットワーク・コンピュータ等である。図の例では、サーバ１０４は、ブート・ファイルなどのデータ、オペレーティング・システム・イメージ、およびアプリケーションをクライアント１１０、１１２、および１１４に提供する。クライアント１１０、１１２、および１１４は、図の例ではサーバ１０４のクライアントである。分散データ処理システム１００は、図示しないサーバ、クライアント、および他の機器をさらに含むことができる。
【００１９】
図の例では、分散データ処理システム１００はインターネットであり、ネットワーク１０２は伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）のプロトコル・スイートを使用して相互に通信するネットワークおよびゲートウェイの世界規模の集まりに相当する。インターネットの核となるのは、データおよびメッセージを伝送する何千もの商用、行政機関、教育機関、および他のコンピュータ・システムからなる主要ノードまたはホスト・コンピュータ間を結ぶ高速データ通信回線の基幹通信網である。言うまでもなく、分散データ処理システム１００は、例えばイントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）などの複数の種々のネットワークを含むように実装することもできる。上記のように、図１は本発明の各種実施形態のアーキテクチャ上の制限ではなく、一例として意図されており、したがって図１に示す特定の要素は、本発明の例示的実施形態を実施することが可能な環境に関して制限的なものと見なすべきではない。
【００２０】
図２は、例示的実施形態の態様を実施することが可能なデータ処理システム例のブロック図である。データ処理システム２００は、図１のサーバ１０４やクライアント１１０などのコンピュータの一例であり、その中に本発明の例示的実施形態の各処理を実施するコンピュータ使用可能コードまたは命令を置くことができる。
【００２１】
図の例では、データ処理システム２００は、ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）２０２と、サウス・ブリッジおよび入出力（Ｉ／Ｏ）コントローラ・ハブ（ＳＢ／ＩＣＨ）２０４とを含むハブ・アーキテクチャを用いる。処理装置２０６、主メモリ２０８、およびグラフィクス・プロセッサ２１０がＮＢ／ＭＣＨ２０２に接続される。グラフィクス・プロセッサ２１０は、アクセラレーテッド・グラフィクス・ポート（ＡＧＰ）を通じてＮＢ／ＭＣＨ２０２に接続することができる。
【００２２】
図の例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１２がＳＢ／ＩＣＨ２０４に接続する。オーディオ・アダプタ２１６、キーボードおよびマウス・アダプタ２２０、モデム２２２、読み出し専用メモリ（ＲＯＭ）２２４、ハード・ディスク・ドライブ（ＨＤＤ）２２６、ＣＤ−ＲＯＭドライブ２３０、ユニバーサル・シリアル・バス（ＵＳＢ）ポートおよび他の通信ポート２３２、ならびにＰＣＩ／ＰＣＩｅ機器２３４が、バス２３８およびバス２４０を通じてＳＢ／ＩＣＨ２０４に接続する。ＰＣＩ／ＰＣＩｅ機器は、例えば、イーサネット・アダプタ、アドイン・カード、およびノートブック・コンピュータ用のＰＣカードを含むことができる。ＰＣＩはカード・バス・コントローラを使用するのに対し、ＰＣＩｅはカード・バス・コントローラを使用しない。ＲＯＭ２２４は、例えば、フラッシュ基本入出力システム（ＢＩＯＳ）である。
【００２３】
ＨＤＤ２２６およびＣＤ−ＲＯＭドライブ２３０は、バス２４０を通じてＳＢ／ＩＣＨ２０４に接続する。ＨＤＤ２２６およびＣＤ−ＲＯＭドライブ２３０は、例えば、インテグレーテッド・ドライブ・エレクトロニクス（ＩＤＥ）またはシリアル・アドバンスト・テクノロジー・アタッチメント（ＳＡＴＡ）インターフェースを使用することができる。Ｓｕｐｅｒ  Ｉ／Ｏ（ＳＩＯ）機器２３６をＳＢ／ＩＣＨ２０４に接続することができる。
【００２４】
オペレーティング・システムが処理装置２０６で実行される。オペレーティング・システムは、図２のデータ処理システム２００内の各種構成要素の動作を調整し、それらの制御を提供する。クライアントとしてのオペレーティング・システムには、Ｍｉｃｒｏｓｏｆｔ（Ｒ）Ｗｉｎｄｏｗｓ７（Ｒ）などの市販のオペレーティング・システムを用いることができる。Ｊａｖａ（商標）プログラミング・システムなどのオブジェクト指向のプログラミング・システムがオペレーティング・システムと併せて実行されてよく、データ処理システム２００で実行されるＪａｖａ（商標）プログラムまたはアプリケーションからオペレーティング・システムへの呼び出しを提供する。
【００２５】
サーバとしてのデータ処理システム２００には、例えば、Ａｄｖａｎｃｅｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｅｘｅｃｕｔｉｖｅ（ＡＩＸ（Ｒ））オペレーティング・システムまたはＬＩＮＵＸ（Ｒ）オペレーティング・システムを実行するＩＢＭ（Ｒ）のｅＳｅｒｖｅｒ（商標）Ｓｙｓｔｅｍ  ｐ（Ｒ）コンピュータ・システムを使用することができる。データ処理システム２００は、処理装置２０６内に複数のプロセッサを含む対称型マルチプロセッサ（ＳＭＰ）システムであってよい。あるいは、シングル・プロセッサ・システムを用いてもよい。
【００２６】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムに対する命令は、ＨＤＤ２２６などの記憶装置に置かれ、処理装置２０６で実行するために主メモリ２０８にロードすることができる。本発明の例示的実施形態の処理は、コンピュータ使用可能プログラム・コードを使用して処理装置２０６によって行うことができ、プログラム・コードは、例えば主メモリ２０８、ＲＯＭ２２４などのメモリ、または１つまたは複数の周辺機器２２６および２３０に例えば置くことができる。
【００２７】
図２に示すバス２３８やバス２４０などのバス・システムは、１つまたは複数のバスからなることができる。言うまでもなく、バス・システムは、当該通信ファブリックまたはアーキテクチャに接続された種々の構成要素または機器間のデータ伝送を実現する任意種の通信ファブリックまたはアーキテクチャを使用して実装することができる。図２のモデム２２２やネットワーク・アダプタ２１２などの通信装置は、データの送受信に使用される１つまたは複数の機器を含むことができる。メモリは、例えば、主メモリ２０８、ＲＯＭ２２４、または図２のＮＢ／ＭＣＨ２０２などにあるキャッシュとすることができる。
【００２８】
当業者は、図１および図２のハードウェアは、実装によって異なりうることを理解されよう。図１および図２に示すハードウェアに加えて、またはそれに代えて、フラッシュ・メモリ、それに相当する不揮発性メモリ、または光ディスク・ドライブなどの他の内部ハードウェアまたは周辺機器を使用してよい。また、例示的実施形態の処理は、本発明の主旨および範囲から逸脱することなく、上記のＳＭＰシステム以外のマルチプロセッサ・データ処理システムにも適用することができる。
【００２９】
さらに、データ処理システム２００は、クライアント・コンピューティング機器、サーバ・コンピューティング機器、タブレット・コンピュータ、ラップトップ・コンピュータ、電話機または他の通信機器、携帯情報端末（ＰＤＡ）等を含む複数の種々のデータ処理システムのいずれかの形態をとることもできる。いくつかの例では、データ処理システム２００は、例えばオペレーティング・システム・ファイルまたはユーザが生成したデータあるいはその両方を記憶する不揮発性メモリを提供するフラッシュ・メモリを備えて構成された携帯型のコンピューティング機器とすることができる。基本的に、データ処理システム２００は、公知のまたは今後開発されるデータ処理システムであってよく、アーキテクチャに関して制限されない。
【００３０】
従来技術の応答時間測定機構では、終了したトランザクションの数の平均応答時間を、定義された間隔と、非対称、偏差、および中央値等のいくつかの標準的な統計指標について測定することしかできない。応答時間分布は、初期中点が分かっている場合、または、例えば応答時間の目標や予想応答時間など、初期中点を決定することができる場合にのみ記述することができる。従来技術の解決法では、トランザクションの作業負荷がその作業負荷の応答時間特性に関して管理されない場合でもエンド・ユーザによる評価のための持続的な情報源として使用できる応答時間分布を提供することはできない。
【００３１】
例示的実施形態は、トランザクションの挙動を記述するのに十分に正確で、トランザクションの挙動の著しい偏差のみに反応するのに十分に安定した応答時間分布を提供する。例示的実施形態の機構は、作業負荷の実行特性を評価し、計画し、管理する際の顧客インストール（ｃｕｓｔｏｍｅｒ  ｉｎｓｔａｌｌａｔｉｏｎ）の有用な支援を提供する。
【００３２】
図３に、一実施形態により生成された応答時間分布の例を示す。図の例では、システムは、ＲＴＤの中点を１秒に定義している。バケットは中点を基準に定義される。例えば、１番目のバケットは範囲［０ｓ，０．５ｓ］を含み、この範囲は、中点の５０％未満のトランザクションを含む。２番目のバケットは範囲［０．５ｓ，０．６ｓ］を含み、この範囲は、中点の５０％〜６０％のトランザクションを含む。３〜１１番目のバケットは、中点の１５０％まで中点を基準として１０％ずつの増分を定義する。１２番目のバケットは、範囲［１．５ｓ，２．０ｓ］を含み、この範囲は中点の１５０％〜２００％のトランザクションを含む。１３番目のバケットは範囲［２．０ｓ，４．０ｓ］を含み、この範囲は中点の２００％〜４００％のトランザクションを含む。最後に、１４番目のバケットは
範囲［４．０ｓ，∞］を含み、この範囲は、中点の４倍を超えるトランザクションを含む。
【００３３】
図３に示すＲＴＤは典型的な分布を表すが、中点は予想される応答時間に応じて異なり、実装に応じてバケットの分布に変更を加えてよい。ＲＴＤは、全応答時間の合計などの他の統計データも含み、例えば、全応答時間の合計をトランザクションの総数で割って平均応答時間を得ることができる。
【００３４】
ＲＴＤは、すべてのトランザクションが終了した後に静的な分析に使用しても、または作業負荷の実行中にシステムがＲＴＤを表示する場合は動的に使用してもよい。いずれの場合も、中点は、ＲＴＤを構築する前に例えばユーザまたはシステムによる定義を通じて指定しなければならない。従来技術では、ユーザが予想応答時間や特定の目標に基づいて、前もって中点およびしたがって分布を定義する。中点が低過ぎるかまたは高過ぎると、大半のトランザクションが最初または最後のバケットに蓄積し、ＲＴＤから有用な情報が得られない。
【００３５】
図４は、例示的実施形態に係るトランザクション作業負荷の応答時間分布を適合的に決定する応答時間分布機構のブロック図である。例示的実施形態の応答時間分布（ＲＴＤ）機構４１０は、静的な中点の定義が可能でないか、または望ましくない場合のあるサービス・クラスに対処する。ＲＴＤ機構４１０は、不安定になることなくトランザクションに適合する。
【００３６】
ＲＴＤ機構４１０は、専用ハードウェア、汎用コンピュータで実行されるソフトウェア、またはソフトウェアと専用ハードウェアの組み合わせとして実施することができる。一例示的実施形態では、ＲＴＤ機構４１０は、図１のサーバ１０４やクライアント１１０などのコンピュータで実行されるソフトウェアとして実施することができる。機構４１０はトランザクション応答時間を監視し、そのトランザクション応答時間を蓄積トランザクション履歴４０２に記録する。機構４１０は初期値４１４を受け取り、ＲＴＤの定義４１２を生成する。所与の期間について、ＲＴＤ機構４１０はＲＴＤの表示４１６を生成する。
【００３７】
例示的実施形態によると、ＲＴＤ機構４１０は、蓄積トランザクション履歴４０２のトランザクション応答時間に基づいて動的にＲＴＤの定義４１２を調整する。ＲＴＤ機構４１０は、固定された間隔で自身の適合的なＲＴＤの定義４１２を周期的に調べて、現在のトランザクションが確実にＲＴＤの定義４１２に適合するようにする。ＲＴＤ機構４１０は、所定数の時間間隔にわたって大半のトランザクションが中点から離れ過ぎていると判定した場合、中点およびしたがってＲＴＤの定義４１２バケット分布を調整する。そして、ＲＴＤ機構４１０は、古いＲＴＤ定義を破棄することができ、トランザクションの応答時間を新しいＲＴＤの定義４１２に入れる。
【００３８】
ＲＴＤ機構４１０は、その内部で、「中点から離れ過ぎている」と見なす条件、および間隔の所定数を初期値４１４に従って定義する。すなわち、初期値４１４は、低い閾値、高い閾値、および、低い閾値未満または高い閾値を超える応答時間の数を計数するカウンタを含むことができる。低い閾値および高い閾値は、中点に対する割合、または所定のバケットの組に設定することができる。例えば、低い閾値を最初のバケットに設定し、高い閾値を最後のバケットに設定することができる。あるいは、低い閾値は最初の３バケットに設定し、高い閾値を最後の３バケットに設定してもよい。
【００３９】
一実施形態によると、ＲＴＤ機構４１０は、中点をゼロの初期値に設定する。この実施形態では、ＲＴＤの定義４１２は所定数ｎのバケットを有し、最初のｎ−１個のバケットは［０ｓ，０ｓ］の範囲を含み、ｎ番目のバケットは［０ｓ，∞］の範囲を含む。ＲＴＤ機構４１０は、所定の初期リード時間にわたってトランザクション応答時間を収集し、ＲＴＤの定義４１２に従ってバケットにトランザクションを割り当て、蓄積トランザクション履歴４０２にトランザクション応答時間を蓄積する。
【００４０】
一例示的実施形態では、バケットにトランザクションを割り当てることは、そのバケットに関連付けられたカウンタを増分することを含むことができる。別の例示的実施形態では、ＲＴＤ機構４１０は、蓄積トランザクション履歴４０２にバケット識別子を記憶し、トランザクションを蓄積することができる。この実施形態では、ＲＴＤ機構４１０は、バケットごとに対応するバケット識別子を有する蓄積トランザクション履歴４０２中のトランザクションの数を数え、ＲＴＤの表示４１６のためのＲＴＤヒストグラムを構築することによってＲＴＤの表示４１６を生成することができる。
【００４１】
この初期リード時間の後に、ＲＴＤ機構４１０はすべてのトランザクションを最後のバケットに割り当てることを決定する。すなわち、ＲＴＤ機構４１０は、すべてのトランザクション応答時間が高い閾値より大きいと判断する。そして、ＲＴＤ機構４１０は、初期リード時間の間に収集されたトランザクション応答時間に基づいて新しい中点を決定する。一例示的実施形態では、ＲＴＤ機構４１０は、初期リード時間の間に収集された応答時間の値の平均に等しくなるように中点を設定することができるが、他の手法を使用してＲＴＤ定義の中点を定義してよい。そして、ＲＴＤ機構４１０は、その新しい中点に基づいてＲＴＤの定義４１２を設定する。すなわち、ＲＴＤ機構４１０は、中点を基準としてバケット範囲を決定する。次いで、ＲＴＤ機構４１０は、新しいＲＴＤの定義４１２のバケットにトランザクションを割り当てる。
【００４２】
初期リード時間後、ＲＴＤ機構４１０は、トランザクション応答時間を収集し、それらのトランザクションを蓄積トランザクション履歴４０２に蓄積する。ＲＴＤ機構４１０は、ＲＴＤの定義４１２に従ってバケットにトランザクションを割り当てる。固定された時間間隔の終了時に、ＲＴＤ機構４１０は、所定数のトランザクションが低い閾値未満であるか、または高い閾値よりも大きいかどうかを判断する。中点を正確に決定すると、大半のトランザクションが中点近傍のバケットに割り当てられるが、トランザクションの作業負荷が変化すると、応答時間は増減する可能性がある。例えば、軽いトランザクション作業負荷時には応答時間は短くなる可能性があり、重いトランザクション作業負荷時には応答時間は増大する可能性がある。
【００４３】
ＲＴＤ機構４１０は、所定数または所定の割合のトランザクションが事前に設定された時間にわたり低い閾値未満であるか、または高い閾値より大きいと判断した場合は、初期リード時間中に収集されたトランザクション応答時間に基づいて新しい中点を決定する。そしてＲＴＤ機構４１０は、その新しい中点に基づいてＲＴＤの定義４１２を設定する。すなわち、ＲＴＤ機構４１０は中点を基準としてバケット範囲を決定する。そして、ＲＴＤ機構４１０は、新しいＲＴＤの定義４１２のバケットにトランザクションを割り当てる。
【００４４】
一実施形態によると、ＲＴＤ機構４１０は、トランザクション履歴４０２にある古いトランザクションがウィンドウから「消えて（age out）」行くトランザクションのスライド・ウィンドウに基づいてＲＴＤの表示４１６を生成する。そして、ＲＴＤ機構４１０は、所定のウィンドウ以前にトランザクション履歴４０２に記録されたトランザクション時間を削除する。ウィンドウの大きさは、例えば初期値４１４に定義することができる。これにより、ＲＴＤ機構４１０は、最も関連性の高いデータに基づいて、実時間のＲＴＤの表示４１６を生成することができる。
【００４５】
一実施形態によると、蓄積トランザクション履歴４０２は、バケット・カウント値の複数の行を記録する。例えば、ＲＴＤ機構４１０は、１０秒の時間にわたって、蓄積トランザクション履歴４０２の最初の行にトランザクション時間を蓄積することができる。ＲＴＤ機構４１０が、統計的に有意な分布を得るのに十分な終了トランザクションを直近の１０秒間に蓄積できなかったということがあり得る。そのため、ＲＴＤ機構４１０は先行するいくつかの１０秒区間のデータを記録するが、ＲＴＤ機構４１０は各間隔を個々に保持することはしない。実際には、ＲＴＤ機構４１０は、例えば、直近の１０秒について１行分の分布を記録し、直近の２０秒について別の１行、直近の４０秒について１行、直近の１６０秒について１行、直近の６４０秒について１行の分布を記録する。２０秒、４０秒、１６０秒、および６４０秒ごとに、ＲＴＤ機構４１０はデータを次の行に送る。つまり、例えばタイマ値が１６の場合、４番目の行のバケットのカウント値を５番目の行のカウント値に足し、３番目の行のバケットのカウント値を４番目の行にコピーし、２番目の行のバケットのカウント値を３番目の行にコピーし、１番目の行のバケットのカウント値を２番目の行にコピーし、１番目の行をクリアすることにより、ＲＴＤ機構４１０は、１６０秒に相当する４番目の行を５番目の行に送る。ＲＴＤ機構４１０は、送られない６番目の行を記憶してもよいが、単に５番目の行のバケット・カウント値のコピーを６４０秒ごとに記憶する。当業者は、間隔および蓄積トランザクション履歴４０２の行の時間値は例として示したものであり、それらの値および行数は実装に応じて異なってよいことを認識されよう。
【００４６】
図５は、例示的実施形態により生成された適合型応答時間分布の例を示す。図５は、バケットを棒グラフではなく積み重ねグラフとして示しており、各所与の時点における分布を合計すると１００％になる。各時点の断面が１つのＲＴＤを表す。図５は、時間の経過に伴うＲＴＤの進展を示している。
【００４７】
図５で分かるように、時刻０８：３４より前にはトランザクションはない。適合型ＲＴＤは、中点を０秒の初期値に設定しており、そのためすべてのトランザクションは０８：４５までは最後のバケットに蓄積する。０８：４５から０８：４６の間に、ＲＴＤ機構は新しい中点を計算する。ＲＴＤ機構は新しい中点を０．０７０秒に設定する。そして、ＲＴＤ機構はそれまでに収集されたトランザクション応答時間および新たに収集されたトランザクション応答時間をバケットに割り当てる。図５に示すように、時刻０８：４６を除いて、大半のトランザクションは中点の前後のバケットに蓄積する。
【００４８】
当業者には理解されるように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として実施することが可能である。したがって、本発明の態様は、完全にハードウェアによる実施形態、完全にソフトウェアによる実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、またはソフトウェアの態様とハードウェアの態様を組み合わせた実施形態の形態をとることができ、それらすべてを本明細書では広義に「回路」、「モジュール」、または「システム」と呼ぶことがある。さらに、本発明の態様は、コンピュータにより使用可能なプログラム・コードが具現化された任意の１つまたは複数のコンピュータ可読媒体として実施されたコンピュータ・プログラム製品の形態をとることができる。
【００４９】
１つまたは複数のコンピュータ可読媒体の任意の組み合わせを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってよい。コンピュータ可読記憶媒体は、例えば、これらに限定されないが、電子、磁気、光学、電磁気、赤外線、もしくは半導体のシステム、装置、機器、またはそれらの適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な例（完全な網羅ではないリスト）は、１つまたは複数の配線を有する電気接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、携帯型コンパクト・ディスク読み出し専用メモリ（ＣＤＲＯＭ）、光学記憶装置、磁気記憶装置、またはそれらの任意の適切な組み合わせ、を含む。本文献の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置、または機器により使用されるプログラム、またはそれらと関連して使用されるプログラムを保持または記憶することが可能な任意の有形媒体であってよい。
【００５０】
コンピュータ可読信号媒体は、コンピュータ可読プログラム・コードが例えばベースバンドにおいてまたは搬送波の一部として具現化された伝搬データ信号を含むことができる。そのような伝搬信号は、これらに限定されないが、電磁気、光学、またはそれらの任意の適切な組み合わせを含む任意の各種形態をとることができる。コンピュータ可読信号媒体としては、コンピュータ可読記憶媒体ではなく命令実行システム、装置、または機器により使用されるプログラム、またはそれらと関連して使用されるプログラムを通信、伝搬、または移送することができる任意のコンピュータ可読媒体を使用することができる。
【００５１】
コンピュータ可読媒体に具現化されたコンピュータ・コードは、これらに限定されないが、ワイヤレス、有線、光ファイバ・ケーブル、無線周波（ＲＦ）等、またはそれらの任意の適切な組み合わせを含む任意の適切な媒体を使用して伝送することができる。
【００５２】
本発明の態様の動作を実行するコンピュータ・プログラム・コードは、１つまたは複数のプログラミング言語の任意の組み合わせで書くことができ、それらの言語には、Ｊａｖａ（商標）、Ｓｍａｌｌｔａｌｋ（商標）、Ｃ＋＋等のオブジェクト指向のプログラミング言語、および「Ｃ」プログラミング言語や類似のプログラミング言語などの従来の手続き型プログラミング言語が含まれる。プログラム・コードはそのすべてをユーザのコンピュータで実行しても、一部を独立したソフトウェア・パッケージとしてユーザのコンピュータで実行しても、一部をユーザのコンピュータで実行し、一部をリモート・コンピュータで実行しても、またはすべてをリモート・コンピュータもしくはサーバで実行してもよい。後者の事例では、リモート・コンピュータを、ローカル・エリア・ネットワーク（ＬＡＮ）もしくはワイド・エリア・ネットワーク（ＷＡＮ）を含む任意種のネットワークを通じてユーザのコンピュータに接続しても、または（例えば、インターネット・サービス・プロバイダを使用してインターネットにより）外部のコンピュータへの接続を行ってもよい。
【００５３】
以下では、本発明の例示的実施形態に係る方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本発明の態様を説明する。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方のブロックの組み合わせは、コンピュータ・プログラム命令により実施できることが理解されよう。そのようなコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供して、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指示される機能／動作を実施する手段を作成するようにマシンを生成することができる。
【００５４】
そのようなコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶された命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指示された機能／動作を実施する命令を含む製造品を生成するように、コンピュータ、他のプログラム可能なデータ処理装置、または他の機器に特定の方式で機能するように命令することが可能なコンピュータ可読媒体に記憶することもできる。
【００５５】
コンピュータ・プログラム命令は、コンピュータ、他のプログラム可能なデータ処理装置、または他の機器にロードして、コンピュータまたは他のプログラム可能な装置で実行される命令がフローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックに指示された機能／動作を実施する処理を提供するように、コンピュータ、他のプログラム可能な装置、または他の機器上で一連の動作ステップを行わせてコンピュータで実施される処理を生成することもできる。
【００５６】
図６は、例示的実施形態によりトランザクションの作業負荷の応答時間分布を適合的に決定する機構の動作を説明するフローチャートである。ブロック６００で動作が開始し、機構が初期化を行う（ブロック７００）。初期化を行う処理については、下記で図７を参照してさらに詳しく説明する。機構は、時間間隔ＴＩごとに繰り返すループを開始する（ブロック６０１）。次いで機構は、サービス・クラスごとに繰り返すループを開始する（ブロック６０２）。サービス・クラスは、類似する属性を共有し、目標に向かってシステムにより管理される作業の群である。
【００５７】
機構は応答時間分布（ＲＴＤ）を構築する（ブロック８００）。応答時間分布を構築する処理については、下記で図８を参照してさらに詳しく説明する。次いで、機構は分布を調べ、カウンタ、すなわち間隔外（out of interval）カウンタ（ＯＩＣ）を更新する（ブロック９００）。分布を調べ、カウンタを更新する処理については、下記で図９を参照してさらに詳しく説明する。
【００５８】
機構は、ＯＩＣの絶対値が所定の閾値以上であるかどうかを判定する（ブロック６０３）。下記でさらに詳しく説明するように、機構は、応答時間の傾向に基づいてＯＩＣを増分または減分する。第１の傾向に対しては、機構は、ＯＩＣが負になるようにＯＩＣを減分する。第２の傾向に対しては、機構はＯＩＣが正になるようにＯＩＣを増分する。第３の傾向に対しては、応答時間が中点に近い場合は、機構は、ＯＩＣがどちらかの方向からゼロに近づくようにＯＩＣの絶対値を減分する。ＯＩＣの絶対値が所定の閾値以上であると判定されることは、ＲＴＤがある期間にわたって中点から著しく逸脱しており、ＲＴＤの中点の変更が必要であることを意味する。
【００５９】
機構がブロック６０３でＯＩＣの絶対値が閾値未満であると判定した場合、機構は、その時間間隔のＲＴＤをＲＴＤ履歴に記憶し、記録を行う（ブロック６０４）。ブロック６０３でＯＩＣの絶対値が閾値以上と判定した場合、機構は中点を変更し、結果を新しい分布に反映させる（ブロック１０００）。中点を変更し、結果を反映させる処理については、下記で図１０を参照してさらに詳しく説明する。次いで、機構は、その時間間隔のＲＴＤをＲＴＤの履歴に記憶し、記録を行う（ブロック６０４）。
【００６０】
このように、機構は、各時間間隔の終了時にＲＴＤを記憶して、ＲＴＤ履歴を提供することができる。機構は、所定の時刻より前に記録または蓄積されたトランザクション時間を削除することにより、トランザクションを「消し（age out）」てもよい。一例示的実施形態では、機構は、所定数の時間間隔にわたりＲＴＤごとにトランザクションを検討してもよい。
【００６１】
その後、機構は、そのサービス・クラスが最後のサービス・クラスであるかどうかを判定する（ブロック６０５）。そのサービス・クラスが最後のサービス・クラスでない場合、動作はブロック６０２に戻って次のサービス・クラスについてループを繰り返す。ブロック６０５でサービス・クラスが最後のサービス・クラスである場合は、機構は次の時間間隔まで待機し（ブロック６０６）、動作はブロック６０１に戻って次の時間間隔についてループを繰り返す。
【００６２】
図７は、例示的実施形態により初期化を行う際の機構の動作を説明するフローチャートである。ブロック７００で動作が開始し、機構はサービス・クラスごとにループを開始する（ブロック７０１）。機構は、そのサービス・クラスのＲＴＤに関連する変数を初期化する（ブロック７０２）。ブロック７０２で、機構は、その時間間隔のＲＴＤバケットを０に初期化し、すべての履歴ＲＴＤバケットを０に初期化し、ＯＩＣカウンタを０に初期化し、ＲＴＤに関連する他の値を初期化する。ＲＴＤに関連する値には、中点が前回変更された時を示すタイム・スタンプ、統計値（例えば応答時間の合計、応答時間の二乗の合計等）、中点が変更された回数のカウント値等が含まれる。次いで、機構は、そのサービス・クラスが可変の中点を有するかどうかを判定する（ブロック７０３）。サービス・クラスが可変の中点を持たない場合は、機構は、他の定義からそのサービス・クラスの中点ＭＰを設定する（ブロック７０４）。ブロック７０３でサービス・クラスが可変の中点を有する場合、機構は、そのサービス・クラスの中点ＭＰをデフォルトの初期値に設定する（ブロック７０５）。
【００６３】
その後、機構は、そのサービス・クラスが最後のサービス・クラスであるかどうかを判定する（ブロック７０６）。サービス・クラスが最後のサービス・クラスでない場合、動作はブロック７０１に戻って、次のサービス・クラスについてループを繰り返す。ブロック７０６でサービス・クラスが最後のサービス・クラスである場合は、ブロック７０７で動作が終了する。
【００６４】
図８は、例示的実施形態により応答時間分布を構築する際の機構の動作を説明するフローチャートである。ブロック８００で動作が開始し、機構は、応答時間分布履歴から充分な判断データを得るための過去の時間間隔の数を決定する（ブロック８０１）。機構は、履歴分布を合計して蓄積ＲＴＤを得る（ブロック８０２）。機構は、蓄積ＲＴＤ中の終了トランザクションの数（ＮＥＴＡ）を算出する（ブロック８０３）。ＮＥＴＡは、蓄積されている終了トランザクションの数である。次いで、機構は、蓄積ＲＴＤの平均応答時間を算出し（ブロック８０４）、他の統計データを算出する（ブロック８０５）。ブロック８０４で、機構は、応答時間の合計をＮＥＴＡの値で割ることによって平均応答時間を算出することができる。ブロック８０５で、他の統計データは、応答時間の平方根の和、分散、標準偏差等を含むことができる。その後動作はブロック８０６で終了する。
【００６５】
図９は、例示的実施形態に係る、分布を調べ、カウンタを更新する際の機構の動作を説明するフローチャートである。ブロック９００で動作が開始し、機構は、そのサービス・クラスが可変の中点を有するかどうかを判定する（ブロック９０１）。サービス・クラスが可変の中点を有さない場合、動作はブロック９０９で終了する。ブロック９０１でサービス・クラスが可変の中点を有する場合、機構は、トランザクション数（ＮＥＴＡ）から増分係数ｉｎｃ＿ｆａｃｔｏｒを算出する（ブロック９０２）。
【００６６】
機構は、実施されるＲＴＤ検査の種類ごとにループを開始する（ブロック９０３）。機構は、ＲＴＤが検査に不合格であるかどうかを判定する（ブロック９０４）。この実施は、分布を設定する初期学習段階、作業負荷の挙動が大きく変動する場合の迅速な反応期間、および偏差が小さい場合の緩慢な反応期間を有する。これらは、ブロック９０３および９０４のＲＴＤの検査の種類に含められ、高い柔軟性を提供する。
【００６７】
機構は、中点がゼロであることに応答して、現在が初期学習段階であると判断する。その後大きな変動の検査が行われる。大きな変動の検査の一例は、１番目のバケットのトランザクション数が全トランザクション数の９０％以上であるかどうかを判断するものである。次いで、機構は小さな偏差の検査を行うことができる。小さな偏差の検査の一例は、最初の３つのバケットが全トランザクション数の８０％を含むかどうかを判定するものである。要求される挙動に応じて検査を追加または削除してよい。検査の順序は重要である。１番目の検査が２番目の検査に完全に包含される場合は、最初の検査は２番目の検査の前に行わなければならない。上記の例では、機構は、大きな変動の検査を小さな偏差の検査より前に行わなければならない。
【００６８】
不合格となった最初の検査から、対策とＲＴＤがどの傾向に従うか（中点より上か下か）とが決まる。ＲＴＤがブロック９０４の検査に不合格である場合、機構は、不合格となったその最初の検査に増分係数を適合させる（ブロック９０５）。傾向に応じて、機構は、増分係数ｉｎｃ＿ｆａｃｔｏｒを正または負に設定する。ある傾向に対しては、ＯＩＣは正の閾値に近づき、場合によっては正の閾値より大きくなり、一方別の傾向に対しては、ＯＩＣは負の閾値に近づき、場合によっては負の閾値より小さくなる。さらに、機構は、検査の種類に応じて増分係数を増減することができる。例えば、大きな変動がある場合はより迅速な中点の変更が必要となる可能性があり、したがって、機構は、増分係数の絶対値を増し、一方小さな偏差に対しては増分係数の絶対値を下げることができる。機構は次いで増分係数をカウンタＯＩＣに加算する（ブロック９０６）。その後ブロック９０９で動作が終了する。
【００６９】
ブロック９０４に戻り、ＲＴＤが検査に不合格でない場合、機構は、ＲＴＤがすべての検査に合格するかどうかを判定する（ブロック９０７）。ＲＴＤがブロック９０４で検査に不合格でなく、ブロック９０７ですべての検査には合格していない場合、動作はブロック９０３に戻って次の検査種類についてループを繰り返す。ブロック９０７でＲＴＤがすべての検査に合格すると判定した場合、機構は、増分係数だけＯＩＣの絶対値を減分して、ＯＩＣがゼロに近づくようにする（ブロック９０８）。その後動作はブロック９０９で終了する。
【００７０】
図１０は、例示的実施形態に係る、中点を変更し、結果を反映させる際の機構の動作を説明するフローチャートである。ブロック１０００で動作が開始し、機構はカウンタＯＩＣを０にリセットする（ブロック１００１）。機構は、現在のＲＴＤ統計値から中点ＭＰに新しい値を設定する（ブロック１００２）。次いで機構はＲＴＤに関連する変数を変更する（ブロック１００３）。例えば、機構は、間隔バケットを０にリセットし、すべての履歴ＲＴＤバケットを０にリセットし、タイム・スタンプなどＲＴＤに関連する他の値を設定する。すなわち、機構は、前の間隔からＲＴＤにあったバケットをクリアする。
【００７１】
次いで、機構は、新しい分布に従って、古い中点およびＲＴＤを利用して他の要素を更新する（ブロック１００４）。機構が中点を変更した場合、システムはその中点に依存する要素も変更しなければならない。その後ブロック１００５で動作が終了する。
【００７２】
図１１は、例示的実施形態に係る、終了したトランザクションを処理する際の機構の動作を説明するフローチャートである。動作はブロック１１００でトランザクションが終了した時に開始し、機構は、そのトランザクションが属するサービスおよびすべてのリポート・クラスについてループを開始する（ブロック１１０１）。機構は、トランザクション応答時間をサービス・クラスまたはリポート・クラスの中点ＭＰと比較する（ブロック１１０２）。機構は、比較に基づいて適切なＲＴＤバケット番号を算出する（ブロック１１０３）。次いで、機構は、そのバケット内の値を１増分し（ブロック１１０４）、トランザクション応答時間をＲＴＤの合計時間に加算する（ブロック１１０５）。機構は、ブロック１１０５で、応答時間の二乗の合計など、他の統計データを更新してもよい。機構は、そのサービス・クラスまたはリポート・クラスが当該トランザクションが属する最後のサービス・クラスまたはリポート・クラスであるかどうかを判定する（ブロック１１０６）。そのサービス・クラスまたはリポート・クラスが最後のサービス・クラスまたはリポート・クラスでない場合は、動作がブロック１１０１に戻って、次のサービス・クラスまたはリポート・クラスについてループを繰り返す。そのサービス・クラスまたはリポート・クラスが当該トランザクションが属する最後のサービス・クラスまたはリポート・クラスである場合は、ブロック１１０７で動作が終了する。
【００７３】
図のフローチャートおよびブロック図は、本発明の各種実施形態に係るシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を示す。この点で、フローチャートまたはブロック図の各ブロックは、指定された論理機能（複数可）を実施する１つまたは複数の実行可能命令を含む、モジュール、セグメント、またはコード部分を表すことができる。また、いくつかの代替の実施では、ブロックに示される機能は、図に記載される順序とは異なる順序で行ってもよいことに留意されたい。例えば、続けて示された２つのブロックが実際には実質的に同時に実行されてよく、または関与する機能によってはそれらのブロックが逆の順序で行われることがある。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方のブロックの組み合わせは、指定された機能または動作を行うハードウェア・ベースの専用システム、または専用ハードウェアとコンピュータ命令の組み合わせにより実施することができることも認識されよう。
【００７４】
実施の一例では、応答時間分布機構は、ｚ／ＯＳ（Ｒ）オペレーティング・システムの作業負荷マネジャ（ＷＬＭ）コンポーネントに対して実施することができる。「ｚ／ＯＳ」は、米国または他の国におけるインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。ＷＬＭでは、各トランザクションは、最高で３つの応答時間分布で報告することができる。図１２に、一例示的実施形態による２８個のバケットを有する応答時間分布を示す。図１３に、一例示的実施形態による１４個のバケットを有する応答時間分布を示す。図１２および図１３は、平均値が１秒で、標準偏差が１／３秒の応答時間の理論的なガウス分布を示し、２つのＲＴＤタイプに変換され、棒グラフとして表示されている。図１２に示すＲＴＤでは、バケット＃１は、中点に対して範囲［０％，５０％］のトランザクションを含み、バケット＃２は範囲［５０％，５７．５％］、・・・、そしてバケット＃２８は範囲［５００％，∞］のトランザクションを含んでいる。図１３に示すＲＴＤの場合は、バケット＃１は中点に対して範囲［０％，５０％］のトランザクションを含み、バケット＃２は範囲［５０％，６０％］、・・・、そしてバケット＃１４は範囲［４００％，∞］のトランザクションを含んでいる。
【００７５】
上記の例では、ＲＴＤ検査の時間間隔は１０秒に設定することができる。閾値パラメータは２０４８に設定することができる。初期中点について、蓄積ＲＴＤにある１６０個のトランザクションに対してｉｎｃ＿ｆａｃｔｏｒの最大値は３２であり、６４回の時間間隔、すなわち約１０分４０秒後に最初の中点の設定が可能になる。ＲＴＤが大きく変動する場合、ｉｎｃ＿ｆａｃｔｏｒの最大値は、蓄積ＲＴＤの１６０個のトランザクションに対して±１６であり、１２８回の時間間隔、すなわち約２１分２０秒後に中点の変更が可能になる。ＲＴＤの変動が中程度の場合は、ｉｎｃ＿ｆａｃｔｏｒの最大値は、蓄積ＲＴＤの１６０個のトランザクションに対して±５であり、４１０回の時間間隔、すなわち約６８分４０秒後に中点の変更が可能になる。図１４は、例示的実施形態に係る中点の変更率を説明する表である。
【００７６】
図１５および図１６は、例示的実施形態に係る、中点を大きく下回る応答時間分布の例を示す。この例では、ＲＴＤ機構は、最初のバケット［０％，５０％］が全トランザクションの９０％より多くを含むかどうか、および平均応答時間が中点の１／３未満であるかどうかを判定する検査を行う。
【００７７】
図１７および図１８は、例示的実施形態に係る、中点を大きく上回る応答時間分布の例を示す。この例では、機構は、３００％〜無限のバケットが全トランザクションの８０％より多くを含んでいるかどうかを判定する検査を行う。
【００７８】
図１９および図２０は、例示的実施形態に係る、中点を中程度に下回る応答時間分布の例を示す。この例では、ＲＴＤ機構は、０％〜７２．５％の範囲のバケットが全トランザクションの８０％より多くを含んでいるかどうか、および平均応答時間が中点の３／４未満であるかどうかを判定する検査を行う。
【００７９】
図２１および図２２は、例示的実施形態に係る、中点を中程度に上回る応答時間分布の例を示す。この例では、ＲＴＤ機構は、２００％から無限のバケットが全トランザクションの８０％より多くを含むかどうかを判定する検査を行う。
【００８０】
このように、例示的実施形態は、エンド・ユーザのトランザクションの応答時間を測定することにより作業負荷の応答時間特性を学習し、応答時間をバケットに分類し、作業負荷の応答時間特性の変化に従って応答時間分布を動的に調整する適合型の機構を提供する。この適合型の機構は、変化にまたがって実際の分布を維持し、したがって、エンド・ユーザが長期間に発生する作業負荷の挙動の変化を理解するのを助ける。この機構は、急激な上昇を抑制するのに十分に安定しており、長期間にわたる性能の分析と容量計画に必要とされる作業負荷の挙動の一定したビューを返す。この機構は、分布を設定する初期学習段階と、作業負荷の挙動が大きく変動している場合の迅速な反応期間と、偏差が小さい場合の緩慢な反応期間とを区別する。
【００８１】
上記のように、例示的実施形態は、完全にハードウェアによる実施形態、完全にソフトウェアによる実施形態、またはハードウェア要素とソフトウェア要素の両方を含む実施形態の形態をとることが可能であることを理解されたい。一例示的実施形態では、例示的実施形態の機構は、これらに限定されないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含む、ソフトウェアまたはプログラム・コードとして実施される。
【００８２】
プログラム・コードを記憶または実行あるいはその両方を行うのに適したデータ処理システムは、システム・バスを通じてメモリ要素に直接または間接的に結合された少なくとも１つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行時に使用されるローカル・メモリ、大容量記憶域、および実行時にコードを大容量記憶域から取り出す回数を減らすために少なくとも一部のプログラム・コードの一時的な記憶を提供するキャッシュ・メモリを含むことができる。
【００８３】
入出力装置すなわちＩ／Ｏ装置（これらに限定されないが、キーボード、ディスプレイ、ポインティング・デバイス等を含む）を、直接、または仲介のＩ／Ｏコントローラを通じてシステムに結合することができる。ネットワーク・アダプタもシステムに結合して、データ処理システムを、介在する私設または公衆ネットワークを通じて他のデータ処理システムまたはリモート・プリンタまたは記憶装置に結合できるようにすることもできる。モデム、ケーブル・モデム、およびイーサネット・カードは、現在利用可能なネットワーク・アダプタの種類のほんの数例である。
【００８４】
本発明の説明を例示および説明の目的で提示したが、これは網羅的なものでも、開示される形態の発明に限定されるものでもない。当業者には多くの変更および変形例が明らかであろう。実施形態は、本発明の原理と実際的な応用を最もよく説明するために、また当業者が、企図される特定の使用に適する各種の変更と共に本発明の各種実施形態を理解できるように選択し、記載したものである。
【図１】
2015501020.tif 000003
【図２】
2015501020.tif 000004
【図３】
2015501020.tif 000005
【図４】
2015501020.tif 000006
【図５】
2015501020.tif 000007
【図６】
2015501020.tif 000008
【図７】
2015501020.tif 000009
【図８】
2015501020.tif 000010
【図９】
2015501020.tif 000011
【図１０】
2015501020.tif 000012
【図１１】
2015501020.tif 000013
【図１２】
2015501020.tif 000014
【図１３】
2015501020.tif 000015
【図１４】
2015501020.tif 000016
【図１５】
2015501020.tif 000017
【図１６】
2015501020.tif 000018
【図１７】
2015501020.tif 000019
【図１８】
2015501020.tif 000020
【図１９】
2015501020.tif 000021
【図２０】
2015501020.tif 000022
【図２１】
2015501020.tif 000023
【図２２】
2015501020.tif 000024
【手続補正書】
【提出日】平成26年4月28日(2014.4.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ処理システムにおける、トランザクション作業負荷の適合型応答時間分布のための方法であって、
初期中点に基づいて応答時間分布を生成するステップであって、前記応答時間分布は複数のバケットを含み、前記複数のバケット中の各バケットは前記初期中点を基準とする時間範囲を定義し、対応するバケット・カウンタを有する、ステップと、
前記データ処理システム内のトランザクションのトランザクション応答時間を少なくとも１つの時間間隔にわたり記録するステップと、
収集された前記トランザクション応答時間を前記応答時間分布の前記複数のバケットに割り当てるステップと、
前記初期中点からの応答時間の変動を検出するのに応答して、前記収集されたトランザクション応答時間に基づいて新しい中点を決定するステップと、
前記応答時間分布の各バケットが前記新しい中点を基準とする時間範囲を定義するように、前記新しい中点に基づいて前記応答時間分布を更新するステップと
を含む方法。
【請求項２】
応答時間の変動を検出するステップは、
所与の時間間隔について、少なくとも１つの検査を行うステップであって、前記少なくとも１つの検査の各検査は、トランザクション応答時間のうち所定の割合が、前記複数のバケットのうち所定のバケットの組に割り当てられているかどうかを判定する、ステップと、
前記応答時間分布が前記少なくとも１つの検査中の所与の検査に不合格であると判定するのに応じて、間隔外カウンタを増分するステップと、
前記間隔外カウンタが所定の閾値を超えているかどうかを判定するステップと
を含む、請求項１に記載の方法。
【請求項３】
前記間隔外カウンタを増分するステップは、
前記所与の時間間隔に収集されたトランザクション時間の数と、前記所与の検査の識別とに基づいて増分係数を求めるステップと、
前記間隔外カウンタを前記増分係数だけ増分するステップと
を含む、請求項２に記載の方法。
【請求項４】
応答時間の変動を検出するステップはさらに、
前記応答時間分布が前記少なくとも１つの検査に合格すると判定するのに応じて、前記間隔外カウンタの絶対値を減分するステップを含む、請求項２に記載の方法。
【請求項５】
前記間隔外カウンタの前記絶対値を減分するステップは、前記所与の時間間隔に収集されたトランザクション時間の数に基づいて決定される増分係数だけ前記間隔外カウンタの前記絶対値を減分するステップを含む、請求項４に記載の方法。
【請求項６】
応答時間の変動を検出するステップはさらに、
前記間隔外カウンタが所定の閾値を超えないと判定するのに応じて、前記応答時間分布を応答時間分布履歴に蓄積するステップを含む、請求項２に記載の方法。
【請求項７】
前記新しい中点を決定するステップは、前記収集されたトランザクション応答時間の平均に等しくなるように前記新しい中点を設定するステップを含む、請求項１に記載の方法。
【請求項８】
前記少なくとも１つの時間間隔は初期学習段階を含み、前記初期中点に基づいて前記応答時間分布を生成するステップは、
前記複数のバケット中の各バケットに対応するカウンタをゼロに設定するステップと、
前記初期中点をゼロに設定するステップと
を含む、請求項１に記載の方法。
【請求項９】
前記収集されたトランザクション応答時間を前記応答時間分布の前記複数のバケットに割り当てるステップは、
前記収集されたトランザクション応答時間の各トランザクション応答時間について、前記トランザクション応答時間を含む時間範囲を定義する前記複数のバケット中の１つのバケットに関連付けられたカウントを増分するステップ
を含む請求項１に記載の方法。
【請求項１０】
前記収集されたトランザクション応答時間を前記応答時間分布の前記複数のバケットに割り当てるステップはさらに、
所定数の時間間隔についてのトランザクション応答時間を蓄積トランザクション履歴に蓄積するステップを含む、請求項１に記載の方法。
【請求項１１】
請求項１〜１０の何れか１項に記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム
【請求項１２】
請求項１１記載のコンピュータ・プログラムを、コンピュータ可読記録媒体に記録した、記録媒体。  
【請求項１３】
プロセッサと、
前記プロセッサに結合されたメモリと
を備える装置であって、
請求項１〜１０の何れか１項に記載の方法の各ステップを、ハードウェアによる手段として構成した、
装置。
【国際調査報告】
2015501020.tif 000025
2015501020.tif 000026