(57)【要約】【課題】分散処理システムにおけるボトルネック要因の特定を行いやすくする。【解決手段】分散処理システムを構成するサーバのボトルネック分析装置は、サーバリソース情報を用いて、サーバごとに、当該サーバの分散処理システムにおける処理の偏りの度合いを示す偏り要因スコアを計算する。また、故障情報を用いて、サーバごとに、サーバで発生している故障の度合いを示す故障要因スコアを計算する。そして、サーバごとに、｛（サーバへのリクエスト数÷分散処理システム全体へのリクエスト数）+（サーバでリクエストを受け付けたクライアント数÷全クライアント数）｝であるサーバ影響度を計算し、｛サーバのサーバ影響度×（サーバの偏り要因スコア＋サーバの故障要因スコア）｝であるボトルネックスコアを計算する。【選択図】図３
2014178865.tif 000002
【特許請求の範囲】
【請求項１】
分散処理システムを構成するサーバのサーバリソース情報、前記サーバへのリクエスト数、および、前記サーバでリクエストを受け付けたクライアント数を、前記サーバごとに対応付けて示したサーバ情報を記憶するサーバ情報記憶部と、
前記サーバリソース情報もしくは前記サーバリソース情報と前記サーバの故障情報を用いて、前記サーバごとに、当該サーバの前記分散処理システムにおける処理のボトルネックの各要因スコアを計算する要因スコア計算部と、
前記サーバ情報に示される、前記サーバへのリクエスト数、および、前記サーバでリクエストを受け付けたクライアント数の少なくとも一方を用いて、前記サーバごとに、前記分散処理システムにおける当該サーバのリクエストの集中の度合いを示すサーバ影響度を計算する影響度計算部と、
前記サーバごとに、前記各要因スコアの合計値を、前記サーバ影響度で重み付けをした値であるボトルネックスコアを計算するスコア統合部とを備え、
前記要因スコア計算部は、
前記サーバリソース情報を用いて、前記サーバごとに、当該サーバの前記分散処理システムにおける処理の偏りの度合いを示す偏りの要因スコアを計算する偏り要因スコア計算部と、
前記故障情報を用いて、前記サーバごとに、前記サーバで発生している故障の度合いを示す故障の要因スコアの計算を行う故障要因スコア計算部、および、前記サーバリソース情報を用いて、前記サーバごとに、所定の閾値を用いた条件判定式により条件判定を行い、その判定結果により閾値の要因スコアの計算する閾値要因スコア計算部の少なくとも一方と、
を備えることを特徴とするボトルネック分析装置。
【請求項２】
前記サーバ影響度は、
前記サーバごとに、
｛（前記サーバへのリクエスト数÷前記分散処理システム全体へのリクエスト数）+（前記サーバでリクエストを受け付けたクライアント数÷全クライアント数）｝
を示した値であること
を特徴とする請求項１に記載のボトルネック分析装置。
【請求項３】
前記ボトルネックスコアは、
前記サーバごとに、
｛前記サーバのサーバ影響度×（前記各要因スコアの合計値）｝
を示した値であること
を特徴とする請求項１または請求項２に記載のボトルネック分析装置。
【請求項４】
前記サーバ情報記憶部は、
前記サーバリソース情報の種別ごとに、前記種別のサーバリソース情報の分析方法として、前記処理の偏りを用いるか、閾値を用いた条件判定を用いるか、または、その両方を用いるのかを示す識別情報を示したラベル情報をさらに格納し、
前記偏り要因スコア計算部は、
前記サーバリソース情報のうち、前記ラベル情報において、前記分析方法として、少なくとも前記処理の偏りを用いると指定されているサーバリソース情報については、前記偏りの要因スコアを計算し、
前記閾値要因スコア計算部は、
前記サーバリソース情報のうち、前記ラベル情報において、前記分析方法として、少なくとも前記閾値を用いた条件判定を用いると指定されているサーバリソース情報については、前記閾値の要因スコアを計算すること
を特徴とする請求項１ないし請求項３のいずれか１項に記載のボトルネック分析装置。
【請求項５】
前記ボトルネック分析装置は、さらに、
前記サーバそれぞれの前記偏りの要因スコア、前記閾値の要因スコア、前記故障の要因スコア、前記サーバ影響度、および、前記ボトルネックスコアを記憶するスコア記憶部と、
入力部からの指示入力に基づき、前記サーバそれぞれの、前記偏りの要因スコア、前記閾値の要因スコア、前記故障の要因スコア、前記サーバ影響度、および、前記ボトルネックスコアのうち少なくともいずれかを表示する表示処理部と
をさらに備えることを特徴とする請求項４に記載のボトルネック分析装置。
【請求項６】
前記表示処理部は、さらに、
前記入力部からの指示入力に基づき、前記偏りの要因スコア、前記閾値の要因スコア、前記故障の要因スコア、前記サーバ影響度、および、前記ボトルネックスコアの計算の元となったサーバ情報を表示すること
を特徴とする請求項５に記載のボトルネック分析装置。
【請求項７】
ボトルネック分析装置が、
分散処理システムを構成するサーバのサーバリソース情報もしくは前記サーバリソース情報と前記サーバの故障情報を用いて、前記サーバごとに、当該サーバの前記分散処理システムにおける処理のボトルネックの各要因スコアを計算する要因スコア計算ステップと、
前記サーバへのリクエスト数、および、前記サーバでリクエストを受け付けたクライアント数の少なくとも一方を用いて、前記サーバごとに、前記分散処理システムにおける当該サーバのリクエストの集中の度合いを示すサーバ影響度を計算する影響度計算ステップと、
前記サーバごとに、前記各要因スコアの合計値を、前記サーバ影響度で重み付けをした値であるボトルネックスコアを計算するスコア統合ステップとを実行し、
前記要因スコア計算ステップは、
前記サーバリソース情報を用いて、前記サーバごとに、当該サーバの前記分散処理システムにおける処理の偏りの度合いを示す偏りの要因スコアを計算する偏り要因スコア計算ステップと、
前記故障情報を用いて、前記サーバごとに、前記サーバで発生している故障の度合いを示す故障の要因スコアの計算を行う故障要因スコア計算ステップ、および、前記サーバリソース情報を用いて、前記サーバごとに、所定の閾値を用いた条件判定式により条件判定を行い、その判定結果により閾値の要因スコアの計算する閾値要因スコア計算ステップの少なくとも一方とを含むこと
を特徴とするボトルネック分析方法。
【請求項８】
ボトルネック分析装置に、
分散処理システムを構成するサーバのサーバリソース情報もしくは前記サーバリソース情報と前記サーバの故障情報を用いて、前記サーバごとに、当該サーバの前記分散処理システムにおける処理のボトルネックの各要因スコアを計算する要因スコア計算ステップと、
前記サーバへのリクエスト数、および、前記サーバでリクエストを受け付けたクライアント数の少なくとも一方を用いて、前記サーバごとに、前記分散処理システムにおける当該サーバのリクエストの集中の度合いを示すサーバ影響度を計算する影響度計算ステップと、
前記サーバごとに、前記各要因スコアの合計値を、前記サーバ影響度で重み付けをした値であるボトルネックスコアを計算するスコア統合ステップとを実行させ、
前記要因スコア計算ステップは、
前記サーバリソース情報を用いて、前記サーバごとに、当該サーバの前記分散処理システムにおける処理の偏りの度合いを示す偏りの要因スコアを計算する偏り要因スコア計算ステップと、
前記故障情報を用いて、前記サーバごとに、前記サーバで発生している故障の度合いを示す故障の要因スコアの計算を行う故障要因スコア計算ステップ、および、前記サーバリソース情報を用いて、前記サーバごとに、所定の閾値を用いた条件判定式により条件判定を行い、その判定結果により閾値の要因スコアの計算する閾値要因スコア計算ステップの少なくとも一方とを含む
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理システムにおけるボトルネック分析装置、ボトルネック分析方法、および、プログラムに関する。
【背景技術】
【０００２】
従来、クライアントからのリクエストを複数のサーバ（ワーカ）に分散させて処理する分散処理システムがある。このような分散処理システムにおいて、処理のボトルネックとなる要因を発見し、その要因のシステムへの影響度を把握することはシステムを円滑に運用する上で非常に重要である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１６８７０２号公報
【特許文献２】特開２００１−１９５２８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、分散処理システムはそれぞれのサーバが連携して処理する。このため、分散処理システムにおけるボトルネックは、分散処理システムを構成するサーバそれぞれの処理能力の低下や故障等のみならず、サーバ間における処理の偏りによっても発生する。しかし、前記した従来技術（特許文献１、特許文献２参照）は、サーバそれぞれの処理能力の低下や故障等、各サーバを個別にみた際のボトルネックしか特定できず、ボトルネックの要因特定としては不十分であった。そこで、本発明は、分散処理システムにおけるサーバ間における処理の偏りを考慮し、ボトルネックの要因特定を十分に行うことを目的とする。
【課題を解決するための手段】
【０００５】
前記した課題を解決するため、本発明は、分散処理システムを構成するサーバのサーバリソース情報、前記サーバへのリクエスト数、および、前記サーバでリクエストを受け付けたクライアント数を、前記サーバごとに対応付けて示したサーバ情報を記憶するサーバ情報記憶部と、前記サーバリソース情報もしくは前記サーバリソース情報と前記サーバの故障情報を用いて、前記サーバごとに、当該サーバの前記分散処理システムにおける処理のボトルネックの各要因スコアを計算する要因スコア計算部と、前記サーバ情報に示される、前記サーバへのリクエスト数、および、前記サーバでリクエストを受け付けたクライアント数の少なくとも一方を用いて、前記サーバごとに、前記分散処理システムにおける当該サーバのリクエストの集中の度合いを示すサーバ影響度を計算する影響度計算部と、前記サーバごとに、前記各要因スコアの合計値を、前記サーバ影響度で重み付けをした値であるボトルネックスコアを計算するスコア統合部とを備え、前記要因スコア計算部は、前記サーバリソース情報を用いて、前記サーバごとに、当該サーバの前記分散処理システムにおける処理の偏りの度合いを示す偏りの要因スコアを計算する偏り要因スコア計算部と、前記故障情報を用いて、前記サーバごとに、前記サーバで発生している故障の度合いを示す故障の要因スコアの計算を行う故障要因スコア計算部、および、前記サーバリソース情報を用いて、前記サーバごとに、所定の閾値を用いた条件判定式により条件判定を行い、その判定結果により閾値の要因スコアの計算する閾値要因スコア計算部の少なくとも一方とを備えることを特徴とするボトルネック分析装置とした。
【０００６】
このようなボトルネック分析装置によれば、分散処理システムにおける各サーバ間の処理の偏りを考慮したボトルネック分析を行うことができる。さらに、ボトルネック分析装置は、当該サーバのボトルネックスコアを計算するにあたり、サーバごとに、前記分散処理システムにおける当該サーバのリクエストの集中の度合いを示す値であるサーバ影響度も用いる。これにより、ボトルネックスコアの値は、分散処理システムにおいて、当該サーバがボトルネックになった場合の影響度を反映した値とすることができる。これにより、ボトルネック分析装置のユーザは、このボトルネックスコアの値を確認することで、分散処理システムのどのサーバがボトルネックとなっているか、またそのサーバがボトルネックになることの影響度はどの程度かを把握しやすくなる。これにより、ボトルネック分析装置のユーザは、分散処理システムにおけるボトルネックの要因特定を十分に行うことができる。
【発明の効果】
【０００７】
本発明によれば、分散処理システムにおけるボトルネックの要因特定を十分に行うことができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、分散処理システムを示した図である。
【図２】図２は、ボトルネック分析装置の構成を示した図である。
【図３】図３は、ボトルネック分析装置の処理手順を示した図である。
【図４】図４は、サーバＡのサーバ情報を例示した図である。
【図５】図５は、格納ラック情報およびラベル情報を例示した図である。
【図６】図６は、スコア計算用情報を例示した図である。
【図７】図７は、スコア計算用情報を例示した図である。
【図８】図８は、偏りの要因スコア、閾値の要因スコア、および、故障の要因スコアの値を例示した図である。
【図９】図９は、サーバ影響度を例示した図である。
【図１０】図１０は、ボトルネックスコア、サーバ影響度、偏りの要因スコア、閾値の要因スコア、および、故障の要因スコアの値を例示した図である。
【図１１】図１１は、サーバ（ワーカ）に関する情報の表示画面例である。
【図１２】図１２は、サーバ（マスタ）に関する情報の表示画面例である。
【図１３】図１３は、サーバ情報について、要因スコアの種別ごとに、その要因スコアの計算の元となった各項目の値の一覧を示した表示画面例である。
【図１４】図１４は、ボトルネック箇所となっている可能性が高いサーバにおける各処理（処理１〜処理５）のレスポンス時間を示した表示画面例である。
【図１５】図１５は、サーバ情報記憶部に格納される各サーバのサーバ情報のうち、所定の項目に関する値（各要因スコアの元になった値）を、他のサーバにおける値や、分散処理システム全体の平均値とともに表示した表示画面例である。
【図１６】図１６は、所定のサーバへのリクエスト状況を示した表示画面例である。
【図１７】図１７は、ボトルネック分析装置の機能を実現するためのプログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら、本発明の実施の形態を説明する。まず、本実施の形態のボトルネック分析装置１０の分析対象である分散処理システムについて説明する。
【００１０】
図１に示すように、分散処理システムは、複数のサーバ２０から構成され、例えば、マスタのサーバ２０と、ワーカのサーバ２０とを備える。マスタのサーバ２０は、リクエストの送信元のクライアント３０に対し、どのサーバ２０（どのワーカのサーバ２０）にアクセスすればよいかをネットワークを介して指示する。そして、この指示を受信したクライアント３０は、この指示されたサーバ２０（ワーカ）にアクセスする。その後、ワーカのサーバ２０は、クライアント３０からのリクエストに基づき所定の処理を実行し、その実行結果をリクエストの送信元のクライアント３０へ返す。ここで、ボトルネック分析装置１０は、分散処理システムのボトルネックの分析に必要な情報、例えば、各サーバ２０の故障情報、サーバリソース情報、システムが提供する各種情報等（以上まとめて「サーバ情報」という）を、ネットワークを介して取得し、サーバ情報記憶部１３１に格納する。そして、ボトルネック分析装置１０は、このサーバ情報を参照して、分散処理システムにおける各サーバ２０の処理の偏りを考慮したボトルネックの分析を行う。
【００１１】
このボトルネック分析装置１０の構成例を説明する。図２に示すように、ボトルネック分析装置１０は、記憶部１３、制御部１２、および、入出力部（入力部および出力部）１１を備える。
【００１２】
記憶部１３は、サーバ情報記憶部１３１と、スコア記憶部１３２とを備える。サーバ情報記憶部１３１は、前記したとおり、サーバ情報を記憶する。このサーバ情報は、各サーバ２０の故障情報、サーバリソース（リソース）情報、システムが提供する各種情報等を含み、このサーバ情報は、制御部１２がボトルネックスコアや、サーバ影響度を計算する際に参照される。スコア記憶部１３２は、制御部１２により計算されたサーバ２０それぞれのボトルネックスコアや、当該サーバ２０がボトルネックになったときの影響度等（詳細は後記）を記憶する。入出力部１１は、外部装置からボトルネックスコアや、サーバ影響度を計算するときに用いる各種情報の入力を受け付けたり、制御部１２による処理結果を外部装置へ出力したりする。
【００１３】
制御部１２は、データ収集部１２０、データ統合部１２１、データ選択部１２２、要因スコア計算部１２３、影響度計算部１２７、スコア統合部１２８および表示処理部１２９を備え、これらにより、サーバ２０それぞれのボトルネックスコアや、当該サーバ２０がボトルネックになったときの影響度等を計算する。また、この計算結果を表示画面上に表示させる。
【００１４】
次に、図３を用いて、図２のボトルネック分析装置１０の処理手順を説明する。まず、ボトルネック分析装置１０のデータ収集部１２０は、システム（分散処理システム）の各サーバ２０の各種ログ、統計情報等を取得する。また、各サーバ２０の故障情報、リソース情報も取得する。そして、データ収集部１２０は、取得した情報をサーバ情報記憶部１３１に格納する（Ｓ１：各種情報取得、格納）。
【００１５】
次に、データ選択部１２２は、入出力部１１経由でボトルネックの分析対象とする時間帯の指示入力を受け付けると、サーバ情報記憶部１３１に格納されるサーバ情報のうち、分析対象の時間帯の情報を取得する（Ｓ２：分析対象の時間帯の情報取得）。
【００１６】
そして、要因スコア計算部１２３は、Ｓ２で取得した各情報に関して、所定の閾値や各サーバ２０における偏りを考慮し、各サーバ２０がボトルネック要因となる可能性を示すスコアを計算する（Ｓ３：ボトルネック要因となる可能性の計算）。そして、要因スコア計算部１２３は、計算結果を、スコア記憶部１３２に格納する。
【００１７】
また、影響度計算部１２７は、Ｓ２で取得した情報のうち、各種ログに含まれるリクエスト情報（各クライアント３０からサーバ２０へのリクエスト数等）を元に、各サーバ２０におけるボトルネック要因の影響度（サーバ影響度）を表すスコアを計算する（Ｓ４：ボトルネック要因の影響度の計算）。つまり、当該サーバ２０がボトルネックとなることで、リクエストの送信元のクライアント３０にどの程度影響を及ぼすかを計算する。影響度計算部１２７は、計算したサーバ影響度を、スコア記憶部１３２に格納する。
【００１８】
その後、スコア統合部１２８は、Ｓ３，Ｓ４で計算された情報を統合し、サーバ２０ごとに、当該サーバ２０がボトルネック箇所である可能性を表すスコア（ボトルネックスコア）を計算する（Ｓ５：各スコアの統合）。そして、スコア統合部１２８は、計算したボトルネックスコアをスコア記憶部１３２に格納する。
【００１９】
そして、表示処理部１２９は、データ選択部１２２等からの指示に基づき、Ｓ３〜Ｓ５で計算したスコア値を示す表示情報を作成する（Ｓ６：表示情報の作成）。例えば、表示処理部１２９は、Ｓ３〜Ｓ５で計算した値を示す表示情報（表示画面）をＨＴＭＬ（HyperText  Markup  Language）等により作成する。
【００２０】
その後、表示処理部１２９は、Ｓ６で作成された表示情報を要求に応じて表示する（Ｓ７：出力）。
【００２１】
図２に戻って、ボトルネック分析装置１０の各構成要素を詳細に説明する。
【００２２】
記憶部１３のサーバ情報記憶部１３１は、分散処理システムを構成するサーバ２０の故障情報、サーバ２０のサーバリソース情報（リソース情報）、システムが提供するサーバ２０に関する各種情報を、サーバ２０ごとに対応付けて示したサーバ情報を記憶する。この故障情報は、例えば、/var/log/messagesやmcelog等の故障情報を示すログファイルや、smartctl等の故障を診断するコマンドにより得られた出力結果等である。リソース情報は、例えば、vmstat、netstat等のリソース情報を出力するコマンドにより得られた出力結果や、/proc/net/dev、/proc/meminfo等のOS標準で出力される統計情報である。システムが提供する各種情報は、各サーバ２０におけるリクエスト数、リクエストを受け付けたクライアント数、各種レスポンス等の性能情報や、保持データ量、キャッシュヒット率等である。このシステムが提供する各種情報は、ボトルネック分析装置１０が各サーバ２０へシステムログや統計情報の取得コマンドを送信することにより取得される。
【００２３】
なお、このサーバ情報は、各サーバ２０に接続されるスイッチ（図示省略）の情報を含んでいてもよい。この場合、スイッチのリソース情報は、当該スイッチを経由するネットワークトラフィック、当該スイッチからのエラーパケット数等であり、故障情報はポートの状態（up／down）等の情報である。これらの情報は、SNMP（Simple  Network  Management  Protocol）等により取得される。
【００２４】
このサーバ情報の例を、図４に示す。ここでは、サーバＡのサーバ情報をテーブル形式にまとめたものを示している。例えば、情報ごとに、当該情報の種別、その情報の項目、その情報の示す値、その情報の作成時刻等が示される。ここでの「種別」とは情報の収集元を表す属性であり、例えば属性値には、サーバリソース、スイッチ、故障情報、システムログ、システム統計情報等がある。また「項目」とは、「種別」が示すデータの収集元に対し、収集されるデータの種類を一意に区別するための属性である。例えば、「種別」の属性値がサーバリソースの場合、当該属性値に対する「項目」の属性値としては、ロードアベレージ、iowait、ディスクのwriteスループット等であり、「種別」の属性値がシステムログの場合、当該属性値に対する「項目」の属性値は、クライアント数、write件数等である。
【００２５】
また、このサーバ情報記憶部１３１は、ラベル情報も格納する。このラベル情報は、サーバ情報に示される各情報の分析方法を示した情報であり、例えば、図５に示すように、サーバ情報に示される情報の種別、項目ごとに、その情報の分析方法をラベル値で示した情報である。このラベル情報は、その情報の分析方法が閾値を用いた条件判定である場合、その条件判定で用いる閾値も含む。また、図示を省略しているが、各分析方法で用いる式を含んでいてもよい。さらに、このサーバ情報記憶部１３１は、各サーバ２０が格納されるラックの情報（格納ラック情報）も含んでいてもよい（図５のラック情報参照）。このラベル情報および格納ラック情報は、例えば、入出力部１１経由で、ボトルネック分析装置１０のユーザにより入力される。
【００２６】
図２のスコア記憶部１３２は、制御部１２により計算されたサーバ２０それぞれの、偏りの要因スコア、閾値の要因スコア、故障の要因スコア、サーバ影響度、ボトルネックスコア等を記憶する。スコア記憶部１３２に記憶される情報の詳細は、図面を用いて後記する。
【００２７】
制御部１２は、データ収集部１２０、データ統合部１２１、データ選択部１２２、要因スコア計算部１２３、影響度計算部１２７、スコア統合部１２８および表示処理部１２９を備える。
【００２８】
データ収集部１２０は、サーバ２０それぞれから、サーバ情報（故障情報、サーバリソース情報等）を取得し、サーバ情報記憶部１３１に格納する。
【００２９】
データ統合部１２１は、サーバ情報記憶部１３１から、データ選択部１２２により指示された時間帯のサーバ情報を取得する。また、データ統合部１２１は、ラベル情報（図５参照）を参照して、取得したサーバ情報の各情報の分析方法（図５におけるラベルの項目の値）を取得する。そして、データ統合部１２１は、これら取得した情報を統合してスコア計算用情報を作成する。すなわち、データ統合部１２１は、サーバ情報記憶部１３１から取得したサーバ情報に対し、サーバ情報の各情報の項目について、ラベル情報（図５参照）を参照して、偏り／閾値／故障のデータの種別を示すいずれかのラベルを付与する（図６の「種別１」）。また、ラベルが「閾値」を含む場合は当該閾値の値を付与する（図６の「閾値」）。さらに、データ統合部１２１は、サーバ情報の収集元のサーバ２０の識別情報（例えば、ＩＰアドレス等）を付与する（図６の「サーバ」）。なお、データ統合部１２１は、ラベル情報がサーバ情報の各情報の分析方法（「偏り」や「閾値」）に用いる式の情報が含まれていれば、スコア計算用情報に、その式の情報も付与してもよい。さらに、前記したラック情報（図５参照）があれば、データ統合部１２１は、スコア計算用情報に、各サーバ２０の格納ラックの情報を付与してもよい（図６の「所属ラック」）。このスコア計算用情報は、サーバ情報記憶部１３１の所定領域に格納され、要因スコア計算部１２３や影響度計算部１２７、スコア統合部１２８が、各スコアやサーバ影響度を計算するときに参照される。
【００３０】
図２のデータ選択部１２２は、ボトルネック分析の対象とするサーバ情報の範囲の指示や、表示処理部１２９により表示させる表示情報の指示を受け付ける。例えば、データ選択部１２２は、入出力部１１経由で、サーバ情報記憶部１３１に格納されるサーバ情報のうち、どの時間帯の情報を取得すべきかの指示入力を受け付けると、この指示入力をデータ統合部１２１へ出力し、データ統合部１２１は、サーバ情報記憶部１３１から、データ選択部１２２により指示された範囲のサーバ情報を取得する。
【００３１】
（要因スコア計算）
要因スコア計算部１２３は、サーバ情報記憶部１３１に格納されたスコア計算用情報（図６参照）を読み出し、サーバ２０ごとにボトルネックの要因となりうる各要因のスコアを計算する。要因スコア計算部１２３は、偏りの要因スコアを計算する偏り要因スコア計算部１２４、閾値要因スコアを計算する閾値要因スコア計算部１２５、および、故障要因スコアを計算する故障要因スコア計算部１２６を備える。つまり、分散処理システムにおけるボトルネック要因としては、大きく、サーバ２０間での処理の偏り、サーバ２０の故障、サーバ２０における処理量やリソース使用量が所定の閾値以上（あるいは閾値未満）となっていることのいずれかに分類されるので、要因スコア計算部１２３は、それぞれの要因についてスコアを計算する。
【００３２】
（偏り要因スコア）
偏り要因スコア計算部１２４は、スコア計算用情報（図６参照）に示される情報のうち、分析方法が偏りである各項目の情報（つまり、スコア計算用情報における「種別１」の値が「偏り」である情報)について、所定の計算式により、各サーバ２０の偏りの要因スコアを計算する。例えば、偏り要因スコア計算部１２４は、以下の式（１）により、分散処理システムのサーバＭ（サーバ２０）の偏りの要因スコアを計算する。
【００３３】
偏りの要因スコア＝｜サーバＭにおける項目Ｎの全時間の平均値−全サーバにおける項目Ｎの全時間の平均値|÷各サーバにおける項目Ｎの平均値の最大値…式（１）
【００３４】
以下に、式（１）を用いた偏りの要因スコアの計算例を説明する。ここでは、図７に例示するスコア計算用情報を用いて計算する場合を例に説明する。図７は、図６に例示したスコア計算用情報のうち、「種別１」が「偏り」であり、項目が「ロードアベレージ」である情報を抜き出したものである。ここで、式（１）におけるサーバＭが「サーバＢ」、項目Ｎが「ロードアベレージ」であるとすると、サーバＡ（図７の範囲（１））のロードアベレージの値の平均は、（１１＋１３＋６＋１０＋１１）÷５＝１０．２である。同様にサーバＢ（図７の範囲（２））のロードアベレージの値の平均は５．２、サーバＣ（図７の範囲（３））のロードアベレージの値の平均は５．４である。また、全サーバ（図７の範囲（４））のロードアベレージの値の平均は（１０．２＋５．２＋５．４）÷３＝６．９である。よって、サーバＢのロードアベレージの偏りの要因スコアは、以下に示すように０．１２となる。
【００３５】
サーバＢの偏りの要因スコア＝｜範囲（２）の値の平均−範囲（４）の値の平均｜÷範囲(１)の値の平均の最大値
＝｜５．２−６．９｜÷ｍａｘ（１０．２，５．２，５．４）
＝１．２÷１０．２＝０．１２
【００３６】
（閾値の要因スコア）
閾値要因スコア計算部１２５は、スコア計算用情報（図６参照）に示される情報のうち、閾値を用いて分析する（つまり、スコア計算用情報における「種別１」の値が「閾値」である）情報について、閾値の要因スコアを決定（計算）する。すなわち、閾値要因スコア計算部１２５は、スコア計算用情報（図６参照）に示される値のうち閾値を用いた条件判定を行うものについては、その閾値を用いた条件判定の結果により、閾値の要因スコア（０または１）を決定する。閾値要因スコア計算部１２５は、例えば、以下の式（２）により、分散処理システムのサーバＭ（サーバ２０）の閾値の要因スコアを計算する。
【００３７】
if(サーバMにおける項目Ｎの値の平均値≧閾値)
then  閾値の要因スコア=１
else  閾値の要因スコア=０…式（２）
【００３８】
つまり、サーバＭの項目Ｎの値の平均値が、スコア計算用情報（図６参照）に示される閾値以上であった場合、この項目Ｎに関する閾値の要因スコアを１とし、閾値未満であった場合は０とする。なお、閾値を用いた条件判定の内容およびその判定結果により付与する閾値の要因スコアの値は、前記の内容や値に限定されない。
【００３９】
（故障の要因スコア）
故障要因スコア計算部１２６は、スコア計算用情報（図６参照）に示される情報のうち、分析方法が故障を用いた分析である情報（つまり、スコア計算用情報における「種別１」の値が「故障」である)値について、故障の要因スコア（故障要因スコア）を決定（計算）する。この故障の要因スコアは、サーバ２０で発生している故障の度合いを示す値であり、例えば、故障要因スコア計算部１２６は、以下の式（３）により、故障の要因スコアを計算する。
【００４０】
if(サーバMにおける項目Ｎの故障がいずれかの時間で発生)
then  故障の要因スコア=１
else  故障の要因スコア=０…式（３）
【００４１】
つまり、サーバＭの項目Ｎに関する故障がいずれかの時間で発生していた場合、この項目Ｎに関する故障の要因スコアを１とし、故障が発生していなかった場合は０とする。
【００４２】
ただし、スイッチ間のネットワークのスループット等、ラック単位で値が決まるものに関しては、要因スコア計算部１２３は、式（１）〜式（３）におけるサーバ２０をラック（図５の格納ラック情報参照）に置き換えて計算する。
【００４３】
ここで計算された各サーバ２０の各項目に関する、偏りの要因スコア、閾値の要因スコア、および、故障の要因スコアの値（図８参照）は、スコア記憶部１３２の所定領域に記憶される。
【００４４】
影響度計算部１２７は、スコア計算用情報（図６参照）に示される、各サーバ２０へのリクエスト数、および、各サーバ２０でリクエストを受け付けたクライアント数の少なくともいずれかを参照し、サーバ２０ごとに、分散処理システムにおける当該サーバ２０のリクエストの集中の度合いを示すサーバ影響度を計算する。例えば、影響度計算部１２７は、以下の式（４）に基づき、分散処理システムのサーバＭ（サーバ２０）のサーバ影響度を計算する。ここでのリクエスト数は、例えば、システムログにおけるwrite件数（図６参照）や、read件数等、サーバ２０に対するすべてのリクエストに関する処理件数を用いる。
【００４５】
サーバＭのサーバ影響度＝（サーバＭへのリクエスト数÷分散処理システム全体へのリクエスト数）+（サーバＭでリクエストを受け付けたクライアント数÷全クライアント数）…式（４）
【００４６】
なお、サーバＭが分散処理システムにおけるマスタである場合、マスタには常にリクエスト処理が集中するので、影響度計算部１２７は、このサーバ２０のサーバ影響度を１とする。
【００４７】
影響度計算部１２７により計算された各サーバ２０のサーバ影響度の値（図９参照）は、スコア記憶部１３２の所定領域に記憶される。
【００４８】
スコア統合部１２８は、各サーバ２０のサーバ影響度、および、各要因スコアの合計値を用いて、各サーバ２０のボトルネックスコア（分散処理システムにおいて各サーバ２０がどの程度ボトルネックとなっているかを示すスコア）を計算する。ここでのボトルネックスコアの計算は、スコア統合部１２８が、サーバ２０ごとに、このサーバ２０の各要因スコアの合計値に対し、このサーバ２０のサーバ影響度で重み付けをすることで行う。スコア統合部１２８は、例えば、以下の式（５）に示すように、分散処理システムのサーバＭ（サーバ２０）の各要因スコアの値の合計値に、サーバＭのサーバ影響度を掛けた値を計算することにより、サーバＭのボトルネックスコアを求める。
【００４９】
サーバＭのボトルネックスコア＝サーバＭのサーバ影響度×（α×サーバＭの偏り要因スコアの合計値＋β×サーバＭの故障要因スコアの合計値+γ×サーバＭの閾値要因スコア）…式（５）
【００５０】
なお、式（５）における、α、β、γは各要因スコアの総和におけるスケールを合わせるために用いる係数であり、例えば、αは（１÷各サーバ２０の偏りの要因スコアの総和の最大値）、βは（１÷各サーバ２０の閾値の要因スコアの総和の最大値）、γは（１÷各サーバ２０の故障の要因スコアの総和の最大値）である。
【００５１】
また、スコア統合部１２８は、式（５）における各要因スコアの合計値を計算するとき、複数のサーバ２０に影響する可能性がある値（例えば、スイッチ間のネットワークのスループット等）に関しては、影響する可能性のあるサーバ２０すべての各要因スコアの値を加えるものとする。
【００５２】
なお、スコア統合部１２８は、マスタのサーバ２０（サーバＬ）のボトルネックスコアについては、以下の式（６）によって計算する。
【００５３】
サーバＬのボトルネックスコア=サーバＬのサーバ影響度×（サーバＬの閾値の要因スコアの総和＋サーバＬの故障の要因スコアの総和）…式（６）
【００５４】
このようにスコア統合部１２８は、ボトルネックスコアを計算する際、サーバ２０の偏り要因スコアおよびサーバ影響度を用いるので、当該サーバ２０が他のサーバ２０に比べて処理負荷が大きい場合（処理の偏りが大きい場合）や、多数のリクエスト、または、多数のクライアントからのリクエストを受け付けるサーバ２０である場合に、そのことをボトルネックスコアに反映させることができる。
【００５５】
スコア統合部１２８は、計算した各サーバ２０のボトルネックスコアと、要因スコア計算部１２３により計算された各サーバ２０の各要因スコアとを合わせて、例えば、図１０に示すような情報を作成し、スコア記憶部１３２に格納する。
【００５６】
図２の表示処理部１２９は、データ選択部１２２からの指示入力に基づき、スコア記憶部１３２に格納された各スコア（ボトルネックスコア、サーバ影響度、各要因スコア）を外部装置（表示装置等。図示省略）へ表示させる。例えば、ボトルネック分析装置１０のユーザは、図１０に例示した各サーバ２０のボトルネックスコアを閲覧することで、分散処理システムのどのサーバ２０がボトルネックになっている可能性が高いかを判断することができる。さらに、表示処理部１２９は、データ選択部１２２からの指示入力に基づき、所定のサーバ２０（例えば、ボトルネックスコアが高いサーバ２０等）について、そのサーバ２０のボトルネックスコアの計算に用いた各要因スコアや、サーバ影響度も表示させるようにしてもよい。このようにすることで、ボトルネック分析装置１０のユーザは、ボトルネックの特定を行いやすくなる。
【００５７】
例えば、表示処理部１２９が、図１０に例示した各スコアやサーバ影響度を示す表示情報を作成することで、ボトルネック分析装置１０のユーザは、サーバＢが最もボトルネックスコアが高く、分散処理システムにおいてボトルネックになっている可能性が最も高いこと（サーバＢのボトルネックスコア「１．３３」）や、サーバＢがボトルネックになることで大きな影響を及ぼす可能性が高いこと（サーバ影響度「１．１０」）を推測できる。また、このサーバＢのボトルネックの要因のうち、偏りの要因スコアは「０．５４」であり、閾値の要因スコアは「０．６７」あり、故障の要因スコア「０．００」であることから、サーバＢにおけるボトルネックは、処理の偏りや、サーバＢにおける処理能力の低下が原因である可能性が高いことがわかる。
【００５８】
なお、ボトルネック分析装置１０は、分散処理システムにおけるボトルネック要因を、（１）サーバ２０間での処理の偏り、（２）サーバ２０の故障、（３）サーバ２０における処理量やリソース使用量が所定の閾値以上（あるいは閾値未満）となっていることの三種に分類し、それぞれの要因についてスコアを計算することとしたが、これ以外に分類し、スコアを計算するようにしてももちろんよい。また、ボトルネック分析装置１０のスコア統合部１２８は、ボトルネックスコアの計算にあたり、偏りの要因スコアと、閾値の要因スコアと、故障の要因スコアとを用いることとしたが、偏りの要因スコアと、閾値の要因スコアおよび故障の要因スコアのいずれか一方とを用いるようにしてもよい。つまり、要因スコア計算部１２３は、偏り要因スコア計算部１２４と、閾値要因スコア計算部１２５および故障要因スコア計算部１２６の少なくともいずれか一方とを備えていればよい。
【００５９】
また、表示処理部１２９が作成する表示画面は、図１１〜図１６に示す画面であってもよい。以下に説明する表示画面例は、表示処理部１２９が、データ選択部１２２からの指示に基づき、スコア記憶部１３２に格納された各サーバ２０のボトルネックスコア、サーバ影響度、各要因スコアの値、および、サーバ情報記憶部１３１に格納されたサーバ情報をもとに作成される。
【００６０】
例えば、図１１に示す画面例は、どのサーバ２０がボトルネックとなっているかを示した画面であり、サーバ２０ごとにボトルネックスコア、サーバ影響度、要因スコア（閾値／故障／偏り）を示す。各サーバ２０の並び順としては、ボトルネックスコアが高い順に並べることで、ユーザは、どのサーバ２０にボトルネックが発生している可能性が高いかを把握しやすくなる。また、表示処理部１２９は、各サーバ２０のサーバ影響度や各要因スコアを併せて画面上に表示することで、何がボトルネック要因となっているかを把握しやすくなる。また、表示処理部１２９は、画面上にボトルネックスコアの最大/平均/最小を表示することで、ユーザは、個別のサーバ２０にボトルネック要因があるのか、もしくは、分散処理システム全体にボトルネックとなっている要因があるのかを把握しやすくなる。
【００６１】
また、サーバ２０がマスタである場合、表示内容は図１１とほぼ同様であるが、表示処理部１２９は、サーバ影響度や偏りの要因スコアを表示しないようにする（図１２参照）。
【００６２】
また、表示処理部１２９は、図１３〜図１６に例示するように、要因スコアごとにその要因スコアの詳細情報を表示するようにしてもよい。表示処理部１２９が、このような表示画面を表示することで、例えば、ユーザが図１１や図１２に示す表示画面上でボトルネックとなっているサーバ２０の見当をつけた後、詳細を分析しやすくなる。
【００６３】
図１３は、サーバ２０におけるサーバ情報について、要因スコアの種別ごとに、その要因スコアの計算の元となった各項目の値の一覧を示した表示画面例である。このような表示画面によれば、ユーザは、要因スコアの種別ごとに、その要因スコアの元となった値を確認することができる。なお、図１３の閾値の要因スコアおよび故障の要因スコアにおける「発生台数」は、例えば、分散処理システム全体においてスコアが１となったサーバ２０の台数である。また、偏りの要因スコアに関しては、システム全体の平均値を併せて表示する。このような表示画面によれば、ユーザは要因スコアごとに他のサーバ２０の状況との比較をしやすくなる。
【００６４】
図１４は、ボトルネック箇所となっている可能性が高いサーバ２０における各処理（処理１〜処理５）のレスポンス時間を示した表示画面例である。表示処理部１２９は、図１４に例示するように、表示画面上に、クライアント３０等における上位アプリ（ＡＰ）からのリクエスト間隔（ＡＰリクエスト間隔）の設定値および実測値に加え、分散処理システム全体における各処理（処理１〜処理５）のレスポンス時間の平均値を併せて表示することで、ユーザは、ボトルネックとなっている可能性が高いサーバ２０においてボトルネックとなっている処理がどの処理であるかを把握しやすくなる。
【００６５】
図１５は、サーバ情報記憶部１３１に格納される各サーバ２０のサーバ情報のうち、所定の項目に関する値（各要因スコアの元になった値）を、他のサーバ２０における値や、分散処理システム全体の平均値とともに表示した表示画面例である。このような表示画面によれば、ユーザは、ある要因スコアの元となった値について、他のサーバ２０の値と比較して高い値なのか否かや、分散処理システム全体の平均に比べて高い値なのか否かを把握しやすくなる。
【００６６】
図１６は、所定のサーバ２０へのリクエスト状況を示した表示画面例である。図１６では、ＡＰがクライアント等の上位アプリを示し、Ｐａ、Ｐｂが分散処理システムのプロセスを表し、それぞれをつなぐ線の太さが各プロセスへのリクエスト量を表している。また、Ｐａ、Ｐｂを囲む線は、それぞれのプロセスがどのサーバ２０で実行されるかを示している。例えば、Ｐａ＿３およびＰｂ＿３は、サーバＡで実行されるプロセスである。このような表示画面によれば、ユーザは、例えば、サーバ影響度の高いサーバ２０やボトルネックになっている可能性が高いサーバ２０がどの上位アプリからどの程度の量のリクエスト量を受け付けているかを把握しやすくなる。
【００６７】
また、前記した実施の形態において説明したボトルネック分析装置１０が実行する処理をコンピュータが実行可能な言語で記述したプログラムで実現してもよい。この場合、コンピュータがプログラムを実行することにより、実施の形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより前記した実施の形態と同様の処理を実現してもよい。以下に、図１に示したボトルネック分析装置１０と同様の機能を実現するプログラムを実行するコンピュータの一例を説明する。
【００６８】
図１７に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【００６９】
メモリ１０１０は、図１７に例示するように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図１７に例示するように、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、図１７に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブに挿入される。シリアルポートインタフェース１０５０は、図１７に例示するように、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、図１７に例示するように、例えばディスプレイ１０６１に接続される。
【００７０】
ここで、図１７に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０３１に記憶される。
【００７１】
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、アクセス監視手順、アクセス制御手順、プロセス監視手順、プロセス制御手順を実行する。
【００７２】
なお、プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、監視プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００７３】
１０    ボトルネック分析装置
１１    入出力部
１２    制御部
１３    記憶部
２０    サーバ
３０    クライアント
１２０  データ収集部
１２１  データ統合部
１２２  データ選択部
１２３  要因スコア計算部
１２４  偏り要因スコア計算部
１２５  閾値要因スコア計算部
１２６  故障要因スコア計算部
１２７  影響度計算部
１２８  スコア統合部
１２９  表示処理部
１３１  サーバ情報記憶部
１３２  スコア記憶部
【図１】
2014178865.tif 000003
【図２】
2014178865.tif 000004
【図３】
2014178865.tif 000005
【図４】
2014178865.tif 000006
【図５】
2014178865.tif 000007
【図６】
2014178865.tif 000008
【図７】
2014178865.tif 000009
【図８】
2014178865.tif 000010
【図９】
2014178865.tif 000011
【図１０】
2014178865.tif 000012
【図１１】
2014178865.tif 000013
【図１２】
2014178865.tif 000014
【図１３】
2014178865.tif 000015
【図１４】
2014178865.tif 000016
【図１５】
2014178865.tif 000017
【図１６】
2014178865.tif 000018
【図１７】
2014178865.tif 000019