(57)【要約】      （修正有）【課題】障害が発生する前のシステムにおける装置のＣＰＵ負荷を推定する情報処理システムを提供する。【解決手段】情報処理システムは、第１システムと第２システムと管理装置１０を備える。管理装置の第１収集部１０１と第２収集部１０３は、それぞれ、障害が発生した第１システムと同一又は類似のシステムである第２システムにおいて或る処理を実行する第１装置の通信負荷データとＣＰＵ負荷データを受信し、通信負荷データ格納部１２１とＣＰＵ負荷データ格納部１２３に格納する。関係算出部１０７は、通信負荷データとＣＰＵ負荷データの関係を示すデータを生成し、関係データ格納部１２７に格納する。推定データ生成部１０９は、関係データ格納部に格納された関係データと障害が発生する前の第１システムにおいて或る処理を実行する第２装置の通信負荷とに基づき、障害が発生する前の第２装置のプロセッサ負荷を算出し推定データ格納部１２９に格納する。【選択図】図４
2019032745.tif 000002
【特許請求の範囲】
【請求項１】
障害が発生した第１システムと同一又は類似のシステムである第２システムにおいて或る処理を実行する第１装置のプロセッサ負荷と通信負荷との関係を示すデータを生成する第１生成部と、
生成された前記データと、前記障害が発生する前の前記第１システムにおいて前記或る処理を実行する第２装置の通信負荷とに基づき、前記障害が発生する前の前記第２装置のプロセッサ負荷を算出する算出部と、
を有する情報処理装置。
【請求項２】
前記第１生成部は、
前記第１システムの構成並びに前記第２装置のプロセッサ負荷及び通信負荷と、前記第１システム以外のシステムの構成及び当該システムにおいて前記特定の処理を実行する装置のプロセッサ負荷及び通信負荷との比較に基づき、前記第２システムを特定する、
請求項１記載の情報処理装置。
【請求項３】
前記第１生成部は、
前記第１装置のプロセッサ負荷と前記第１装置に対するリクエストの数との関係を示すデータを、前記第１装置に対するリクエストの種類ごとに生成する、
請求項１又は２記載の情報処理装置。
【請求項４】
前記障害が発生する前の前記第２装置に対するリクエストの送信パターンを、前記障害が発生する前の前記第２装置の通信ログから生成する第２生成部と、
生成された前記送信パターンに従って前記第１装置に対するリクエストを送信する出力部と、
生成された前記送信パターンに従って前記第１装置に対するリクエストが送信された場合における前記第１装置のプロセッサ負荷と、算出された前記第２装置のプロセッサ負荷との比較の結果に基づき、前記出力部が前記第１装置に対するリクエストを送信する頻度を変更する制御部と、
をさらに有する請求項１乃至３のいずれか１つ記載の情報処理装置。
【請求項５】
コンピュータが、
障害が発生した第１システムと同一又は類似のシステムである第２システムにおいて或る処理を実行する第１装置のプロセッサ負荷と通信負荷との関係を示すデータを生成し、
生成された前記データと、前記障害が発生する前の前記第１システムにおいて前記或る処理を実行する第２装置の通信負荷とに基づき、前記障害が発生する前の前記第２装置のプロセッサ負荷を算出する、
処理を実行する情報処理方法。
【請求項６】
コンピュータに、
障害が発生した第１システムと同一又は類似のシステムである第２システムにおいて或る処理を実行する第１装置のプロセッサ負荷と通信負荷との関係を示すデータを生成し、
生成された前記データと、前記障害が発生する前の前記第１システムにおいて前記或る処理を実行する第２装置の通信負荷とに基づき、前記障害が発生する前の前記第２装置のプロセッサ負荷を算出する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ負荷の推定技術に関する。
【背景技術】
【０００２】
システムの運用中においては、処理の競合（リソース負荷の競合とも呼ばれる）を原因とする障害がしばしば発生する。障害が発生する前のシステムにおける装置の処理負荷の状況を知ることができれば、障害が発生したシステムの障害発生前の状況を検証用のシステムにおいて再現し、原因の究明および対策等を行うことが可能になる。
【０００３】
或る文献に開示されているように、システムの運用中にＣＰＵ（Central Processing Unit）等のリソースの負荷のログを常時生成しておけば、障害が発生する前のＣＰＵ負荷の情報を障害の発生後にログを利用して取得することができる。しかし、実際に稼働させるシステムにおいてＣＰＵ負荷のログを取得するために常駐プロセス等を動作させることは、他の処理に影響を及ぼす可能性があるため好ましくない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２２４６２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、１つの側面では、障害が発生する前のシステムにおける装置のＣＰＵ負荷を推定するための技術を提供することである。
【課題を解決するための手段】
【０００６】
一態様に係る情報処理装置は、障害が発生した第１システムと同一又は類似のシステムである第２システムにおいて或る処理を実行する第１装置のプロセッサ負荷と通信負荷との関係を示すデータを生成する第１生成部と、生成されたデータと、障害が発生する前の第１システムにおいて或る処理を実行する第２装置の通信負荷とに基づき、障害が発生する前の第２装置のプロセッサ負荷を算出する算出部とを有する。
【発明の効果】
【０００７】
１つの側面では、障害が発生する前のシステムにおける装置のＣＰＵ負荷を推定できるようになる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施の形態のシステムの概要を示す図である。
【図２】図２は、情報処理装置の構成図である。
【図３】図３は、管理装置のハードウエア構成図である。
【図４】図４は、管理装置の機能ブロック図である。
【図５】図５は、管理装置の第１収集部が実行する処理の処理フローを示す図である。
【図６】図６は、通信負荷データ格納部に格納されるデータの一例を示す図である。
【図７】図７は、管理装置の第２収集部が実行する処理の処理フローを示す図である。
【図８】図８は、ＣＰＵ負荷データ格納部に格納されるデータの一例を示す図である。
【図９】図９は、障害が発生する前のＣＰＵ負荷を推定する処理の処理フローを示す図である。
【図１０】図１０は、システム構成データ格納部に格納されているデータの一例を示す図である。
【図１１】図１１は、グループ分けの結果の一例を示す図である。
【図１２】図１２は、対象システムの構成データの一例を示す図である。
【図１３】図１３は、各仮想ＡＰサーバについての通信負荷の統計量の一例を示す図である。
【図１４】図１４は、各仮想ＡＰサーバについてのＣＰＵ負荷の統計量の一例を示す図である。
【図１５】図１５は、障害が発生する前のＣＰＵ負荷を推定する処理の処理フローを示す図である。
【図１６】図１６は、ＣＰＵ負荷とＨＴＴＰの各メソッドのリクエスト数との関係を示す図である。
【図１７】図１７は、関係データ格納部に格納されるデータの一例を示す図である。
【図１８】図１８は、推定データ格納部に格納されるデータの一例を示す図である。
【図１９】図１９は、障害前のＣＰＵ負荷を再現する処理の処理フローを示す図である。
【図２０】図２０は、送信パターンの一例を示す図である。
【発明を実施するための形態】
【０００９】
図１は、本実施の形態のシステムの概要を示す図である。情報処理システム１は、本実施の形態の主要な処理を実行する管理装置１０と、検証用のシステムを動作させる検証装置１３と、例えば顧客に使用させるシステムを稼働させる１又は複数の情報処理装置１６とを有する。情報処理システム１は、ＬＡＮ（Local Area Network）又はインターネット等のネットワークであるネットワーク５に接続される。
【００１０】
情報処理装置３はネットワーク５に接続される。本実施の形態においては、情報処理装置３において稼働しているシステムにおいて障害が発生するとする。障害とは、例えば、システムにおける仮想ＡＰ（APplication）サーバが実行するアプリケーションソフトウエアの異常である。
【００１１】
図２は、情報処理装置３の構成図である。情報処理装置３は、ハードウエアコンポーネントとして、１又は複数のＣＰＵ１３１と、１又は複数のメモリ１３２と、１又は複数のＨＤＤ（Hard Disk Drive）１３３と、ＮＩＣ（Network Interface Card）１３４とを有する。
【００１２】
仮想化ソフトウエアであるハイパバイザ１３００は、例えば、メモリ１３２にロードされたプログラムがＣＰＵ１３１に実行されることで実現される。ハイパバイザ１３００は、仮想スイッチ１３１０と、仮想ＣＰＵ（図２におけるｖ（virtual）ＣＰＵ）と仮想メモリ（図２におけるｖＭＥＭ（MEMory））と仮想ＮＩＣ（図２におけるｖＮＩＣ）とを有するＶＭ（Virtual Machine）１３２１乃至１３２３を実現する。本実施の形態において、ＶＭ１３２１は仮想ＷＥＢサーバであり、ＶＭ１３２２は仮想ＡＰサーバであり、ＶＭ１３２３は仮想ＤＢ（DataBase）サーバである。
【００１３】
情報処理装置３は、クライアント端末からのリクエストを受信し、受信したリクエストは仮想スイッチ１３１０により仮想ＷＥＢサーバであるＶＭ１３２１の仮想ＮＩＣに転送される。ＶＭ１３２１は、リクエストの内容に応じて処理リクエストを仮想ＡＰサーバであるＶＭ１３２２に転送し、ＶＭ１３２２は、処理リクエストの内容に応じてデータリクエストを仮想ＤＢサーバであるＶＭ１３２３に転送する。本実施の形態においては、情報処理装置３において実現されるシステムの通信負荷として、仮想ＡＰサーバが受け取るＨＴＴＰ（Hyper Text Transfer Protocol）リクエストの数及びＳＱＬ（Structured Query Language）の各命令の数が利用される。また、情報処理装置３において実現されるシステムの処理負荷として、仮想ＡＰサーバの仮想ＣＰＵの負荷が利用される。
【００１４】
図２においてはＶＭの数は３であるが、４以上のＶＭが実行されてもよい。また、図２においては仮想ＷＥＢサーバ、仮想ＡＰサーバ及び仮想ＤＢサーバをそれぞれ１台ずつ有するシステムが実現されているが、このような構成以外の構成を有するシステムが実現されてもよい。例えば、ＷＥＢサーバの機能及びＡＰサーバの機能の両方を有するＶＭが実行されてもよい。また、仮想ＤＢサーバが無い、仮想ＷＥＢサーバ及び仮想ＡＰサーバで構成されたシステムが実現されてもよい。また、２台以上のＶＭで１つの機能（例えば、ＷＥＢサーバの機能）を実現してもよい。また、例えばファイアウォール、負荷分散装置、ＡＤ（Active Directory）サーバ或いは帳票サーバ等の機能を有するＶＭを実行してもよい。
【００１５】
図３は、管理装置１０のハードウエア構成図である。管理装置１０は、ハードウエアコンポーネントとして、ＣＰＵ１１と、メモリ１２と、ＨＤＤ１７と、ＮＩＣ１４とを有する。各ハードウエアコンポーネントは、バス１５を介して接続される。なお、管理装置１０がその他のハードウエアコンポーネントを有してもよい。
【００１６】
図４は、管理装置１０の機能ブロック図である。管理装置１０は、第１収集部１０１と、第２収集部１０３と、特定部１０５と、関係算出部１０７と、推定データ生成部１０９と、パターン抽出部１１１と、リクエスト出力部１１３と、制御部１１５と、通信負荷データ格納部１２１と、ＣＰＵ負荷データ格納部１２３と、システム構成データ格納部１２５と、関係データ格納部１２７と、推定データ格納部１２９と、パターンデータ格納部１３５とを有する。
【００１７】
管理装置１０に処理を実行させるためのプログラムは、例えばＨＤＤ１７に格納され、メモリ１２にロードされてＣＰＵ１１により実行されることで、図４に示した第１収集部１０１、第２収集部１０３、特定部１０５、関係算出部１０７、推定データ生成部１０９、パターン抽出部１１１、リクエスト出力部１１３および制御部１１５を実現する。通信負荷データ格納部１２１、ＣＰＵ負荷データ格納部１２３、システム構成データ格納部１２５、関係データ格納部１２７、推定データ格納部１２９及びパターンデータ格納部１３５は、例えばメモリ１２又はＨＤＤ１７に設けられる。
【００１８】
第１収集部１０１は、情報処理装置３、検証装置１３および情報処理装置１６から受信した通信ログに基づき通信負荷のデータを生成する処理を実行し、生成した通信負荷のデータを通信負荷データ格納部１２１に格納する。第２収集部１０３は、情報処理装置３、検証装置１３および情報処理装置１６から受信したＣＰＵ負荷のデータをＣＰＵ負荷データ格納部１２３に格納する。特定部１０５は、通信負荷データ格納部１２１に格納されているデータ、ＣＰＵ負荷データ格納部１２３に格納されているデータ及びシステム構成データ格納部１２５に格納されているデータに基づき処理を実行し、処理結果を関係算出部１０７に通知する。関係算出部１０７は、特定部１０５から通知された処理結果、通信負荷データ格納部１２１に格納されているデータ及びＣＰＵ負荷データ格納部１２３に格納されているデータに基づき処理を実行し、処理結果を関係データ格納部１２７に格納する。推定データ生成部１０９は、通信負荷データ格納部１２１に格納されているデータ及び関係データ格納部１２７に格納されているデータに基づき処理を実行し、処理結果を推定データ格納部１２９に格納する。
【００１９】
パターン抽出部１１１は、通信負荷データ格納部１２１に格納されているデータに基づき処理を実行し、処理結果をパターンデータ格納部１３５に格納する。リクエスト出力部１１３は、関係データ格納部１２７に格納されているデータ、推定データ格納部１２９に格納されているデータ及びパターンデータ格納部１３５に格納されているデータに基づき、検証装置１３に対してＨＴＴＰリクエストを出力する処理を実行する。制御部１１５は、ＣＰＵ負荷データ格納部１２３に格納されているデータ及び推定データ格納部１２９に格納されているデータに基づき処理を実行し、処理結果に応じて、リクエスト出力部１１３が検証装置１３に対して出力するＨＴＴＰリクエストの送信頻度を変更する。
【００２０】
次に、管理装置１０の実行する処理をより詳細に説明する。
【００２１】
図５は、管理装置１０の第１収集部１０１が実行する処理の処理フローを示す図である。
【００２２】
第１収集部１０１は、情報処理装置３から所定時間（例えば１秒）分の通信ログを受信する（図５：ステップＳ１）。通信ログは、時刻の情報、ＵＲＩ（Uniform Resource Identifier）、ＨＴＴＰのメソッドの情報、リクエストパラメータ及びその他の情報を含む。
【００２３】
第１収集部１０１は、ステップＳ１において受信した通信ログに基づき、ＨＴＴＰの各メソッドのリクエスト数とＳＱＬの各命令の数とを集計する（ステップＳ３）。そして、第１収集部１０１は、集計の結果を通信負荷データ格納部１２１に格納する。
【００２４】
図６は、通信負荷データ格納部１２１に格納されるデータの一例を示す図である。図６の例では、時刻の情報と、ＨＴＴＰの各メソッドのリクエスト数（ここでは１秒あたりのリクエスト数）及びデータ量（ここでは１秒あたりのデータ量（キロバイト））と、ＳＱＬの各命令の数及びデータ量とが格納される。
【００２５】
第１収集部１０１は、ステップＳ３を実行してから所定時間が経過したか判定する（ステップＳ５）。所定時間が経過していない場合（ステップＳ５：Ｎｏルート）、処理はステップＳ５に戻る。
【００２６】
一方、所定時間が経過した場合（ステップＳ５：Ｙｅｓルート）、第１収集部１０１は、処理の終了指示があったか判定する（ステップＳ７）。処理の終了指示がない場合（ステップＳ７：Ｎｏルート）、処理はステップＳ１に戻る。一方、処理の終了指示があった場合（ステップＳ７：Ｙｅｓルート）、処理は終了する。
【００２７】
以上のような処理を実行すれば、情報処理装置３の通信負荷のデータを管理装置１０が管理できるようになる。なお、管理装置１０は、情報処理装置３だけでなく、検証装置１３及び情報処理装置１６の通信負荷のデータも同様の方法で取得することができる。
【００２８】
図７は、管理装置１０の第２収集部１０３が実行する処理の処理フローを示す図である。
【００２９】
本実施の形態においては、情報処理装置３上の仮想ＡＰサーバであるＶＭ１３２２が実行する他の処理への影響を及ぼさないようにするため、ＶＭ１３２２のＣＰＵ負荷（具体的には、ＣＰＵ使用率）は、障害が発生した後にかぎり計測される。管理装置１０は、情報処理装置３において障害が発生した後に、情報処理装置３からＣＰＵ負荷のデータを取得する。従って、図７に示した処理は障害が発生した後、例えば定期的に実行される。
【００３０】
第２収集部１０３は、情報処理装置３において障害が発生した後のＣＰＵ負荷のデータのうち未取得のＣＰＵ負荷のデータ（具体的には、ＣＰＵ負荷のデータを前回取得した時点より後に計測されたＣＰＵ負荷のデータ）を、情報処理装置３から受信する（図７：ステップＳ１１）。
【００３１】
第２収集部１０３は、ステップＳ１１において受信したＣＰＵ負荷のデータをＣＰＵ負荷データ格納部１２３に格納する（ステップＳ１３）。そして処理は終了する。
【００３２】
図８は、ＣＰＵ負荷データ格納部１２３に格納されるデータの一例を示す図である。図８の例では、時刻の情報と、仮想ＡＰサーバが仮想ＣＰＵとして実際に使用している各物理ＣＰＵのＣＰＵ負荷（単位は％）の情報とが格納されている。
【００３３】
以上のような処理を実行すれば、情報処理装置３のＣＰＵ負荷のデータを管理装置１０が管理できるようになる。なお、管理装置１０は、情報処理装置３だけでなく、情報処理装置１６の通信負荷のデータも同様の方法で取得することができる。検証装置１３については、ＣＰＵ負荷の再現のため、稼働中のＣＰＵ負荷のデータが常時取得される。
【００３４】
図９は、障害が発生する前のＣＰＵ負荷を推定する処理の処理フローを示す図である。
【００３５】
まず、特定部１０５は、システム構成データ格納部１２５に格納されているデータを用いて、情報処理装置１６上で実現されている複数のシステムをシステム構成に基づきグループ分けする（図９：ステップＳ２１）。
【００３６】
図１０は、システム構成データ格納部１２５に格納されているデータの一例を示す図である。図１０の例では、システム名と、サーバの種別と、ＣＰＵコア数と、メモリ容量（単位はギガバイト）とについての情報が格納されている。
【００３７】
ステップＳ２１においては、同一のシステム構成であるシステムが同じグループに属するようにグループ分けが行われる。図１１は、グループ分けの結果の一例を示す図である。図１１の例では、グループ＿１に属するシステムの構成は「ＬＢ＋Ｃａｃｈｅ＋３層Ｗｅｂ＋Ｓｔｏｒａｇｅ」であり、グループ＿２に属するシステムの構成は「２層Ｗｅｂ」であり、グループ＿３に属するシステムの構成は「ＬＢ＋Ａｐｐ」である。
【００３８】
特定部１０５は、システム構成データ格納部１２５から、障害が発生したシステム（本実施の形態においては、情報処理装置３において実現されているシステム。以下、対象システムと呼ぶ）の構成データを読み出す（ステップＳ２３）。
【００３９】
図１２は、対象システムの構成データの一例を示す図である。図１２の例では、対象システムの構成は「ＬＢ＋Ｃａｃｈｅ＋３層Ｗｅｂ＋Ｓｔｏｒａｇｅ」である。
【００４０】
特定部１０５は、ステップＳ２３において読み出された構成データと、ステップＳ２１におけるグループ分けの結果とに基づき、対象システムと同一又は類似の構成を有するシステムのグループを抽出する（ステップＳ２５）。
【００４１】
例えば、対象システムの構成データが図１２に示した構成データであり、且つ、グループ分けの結果が図１１に示した結果である場合、グループ＿１が抽出される。
【００４２】
特定部１０５は、ステップＳ２５において抽出されたグループ内の各システムについて、仮想ＡＰサーバの通信負荷の統計量及びＣＰＵ負荷の統計量を、通信負荷データ格納部１２１に格納されているデータ及びＣＰＵ負荷データ格納部１２３に格納されているデータを用いて算出する（ステップＳ２７）。本実施の形態における統計量は平均および標準偏差であるが、その他の統計量を用いてもよい。
【００４３】
図１３は、各仮想ＡＰサーバの通信負荷の統計量の一例を示す図である。図１３の例では、ＨＴＴＰの各メソッドのリクエスト数及びデータ量の統計量と、ＳＱＬの各命令の数及びデータ量についての統計量とが、各仮想ＡＰサーバについて算出されている。リクエスト数は１秒あたりのリクエスト数であり、データ量の単位は、キロバイト／秒である。
【００４４】
図１４は、各仮想ＡＰサーバについてのＣＰＵ負荷の統計量の一例を示す図である。図１４の例では、ＣＰＵ負荷の統計量が各仮想ＡＰサーバについて算出されており、ＣＰＵ負荷の統計量は、各物理ＣＰＵのＣＰＵ負荷（％）の統計量の平均に相当する。
【００４５】
特定部１０５は、対象システムにおける仮想ＡＰサーバの通信負荷の統計量及びＣＰＵ負荷の統計量を、通信負荷データ格納部１２１に格納されているデータ及びＣＰＵ負荷データ格納部１２３に格納されているデータを用いて算出する（ステップＳ２９）。ステップＳ２９においては、ステップＳ２７と同じ項目について統計量が算出される。具体的には、ＨＴＴＰの各メソッドのリクエスト数及びデータ量についての平均及び標準偏差と、ＳＱＬの各命令の数及びデータ量についての平均及び標準偏差とが算出される。
【００４６】
特定部１０５は、ステップＳ２７において算出された統計量とステップＳ２９において算出された統計量との比較に基づき、対象システムにおける仮想ＡＰサーバと類似する仮想ＡＰサーバを特定する（ステップＳ３１）。そして処理は端子Ａを介して図１５のステップＳ３３に移行する。
【００４７】
ステップＳ３１においては、例えば、通信負荷の各項目についての統計量の差の合計と、ＣＰＵ負荷の各項目についての統計量の差の合計との和が、最小である（すなわち、類似度が最も高い）或いは所定値以下である仮想ＡＰサーバが特定される。
【００４８】
図１５の説明に移行し、特定部１０５は、ステップＳ３１の処理結果を関係算出部１０７に通知する。そして、関係算出部１０７は、ステップＳ３１において特定された仮想ＡＰサーバの通信負荷のデータを通信負荷データ格納部１２１から読み出し、ステップＳ３１において特定された仮想ＡＰサーバのＣＰＵ負荷のデータをＣＰＵ負荷データ格納部１２３から読み出す（ステップＳ３３）。なお、ステップＳ３３においては、通信負荷のデータとしてＨＴＴＰの各メソッドのリクエスト数が読み出され、ＳＱＬの各命令数は読み出されない。
【００４９】
関係算出部１０７は、障害発生後の対象システムにおける仮想ＡＰサーバの通信負荷のデータを通信負荷データ格納部１２１から読み出す。また、関係算出部１０７は、障害発生後の対象システムにおける仮想ＡＰサーバのＣＰＵ負荷のデータをＣＰＵ負荷データ格納部１２３から読み出す（ステップＳ３５）。なお、ステップＳ３５においては、通信負荷のデータとしてＨＴＴＰの各メソッドのリクエスト数が読み出され、ＳＱＬの各命令数は読み出されない。
【００５０】
関係算出部１０７は、ステップＳ３３において読み出されたデータとステップＳ３５において読み出されたデータとに基づき、通信負荷とＣＰＵ負荷との関係を示すデータを生成する（ステップＳ３７）。関係算出部１０７は、算出された関係についてのデータを関係データ格納部１２７に格納する。ステップＳ３７においては、例えば回帰分析が実行され、回帰分析の結果に基づきＣＰＵ負荷と通信負荷との関係を示すデータが生成される。なお、ＣＰＵ負荷データとしては、各物理ＣＰＵのＣＰＵ負荷の平均が使用される。
【００５１】
図１６は、ＣＰＵ負荷とＨＴＴＰの各メソッドのリクエスト数との関係を示す図である。図１６に示すように、普通、仮想ＡＰサーバが受け取るＨＴＴＰリクエストの数が増えるに従ってＣＰＵ負荷（すなわちＣＰＵ使用率）は増加する。従って、各メソッドのＨＴＴＰリクエストの数からＣＰＵ負荷を推定することが可能である。
【００５２】
図１７は、関係データ格納部１２７に格納されるデータの一例を示す図である。図１７の例では、ＣＰＵ負荷の各値について、各メソッドのリクエスト数（ここでは１秒あたりのリクエスト数）が格納されている。例えば、「ＧＥＴ」の数が２５５であり且つ他のメソッドのＨＴＴＰリクエスト数が０であるときは、ＣＰＵ負荷は１０（％）である。また、「ＧＥＴ」の数が２５５であり、「ＰＯＳＴ」の数が３２４であり、「ＰＵＴ」の数が２６１であり且つ「ＤＥＬＥＴＥ」の数が２１８であるときは、ＣＰＵ負荷は４０（％）であると推定される。
【００５３】
推定データ生成部１０９は、対象システムの仮想ＡＰサーバの通信負荷のデータのうち障害発生前のデータを、通信負荷データ格納部１２１から読み出す（ステップＳ３９）。
【００５４】
推定データ生成部１０９は、ステップＳ３９において読み出されたデータと、関係データ格納部１２７に格納されているデータとに基づき、障害発生前のＣＰＵ負荷の推定値を算出する（ステップＳ４１）。推定データ生成部１０９は、算出した推定値を推定データ格納部１２９に格納する。そして処理は終了する。ステップＳ４１においては、障害発生前の各時刻について、読み出した通信負荷のデータが示す各メソッドのリクエスト数に対応するＣＰＵ負荷が、関係データ格納部１２７に格納されているデータに基づき算出され、算出されたＣＰＵ負荷の合計が算出される。なお、ＣＰＵ負荷の合計が１００（％）を超えた場合には合計を１００（％）とする。
【００５５】
図１８は、推定データ格納部１２９に格納されるデータの一例を示す図である。図１８の例では、ステップＳ３１において特定された仮想ＡＰサーバのＣＰＵ負荷の推定値が、障害が発生する前の各時刻について格納されている。
【００５６】
以上のように、ＣＰＵ負荷と通信負荷との関係を利用することで、たとえ障害が発生する前のＣＰＵ負荷を計測していない場合であっても、障害が発生する前のＣＰＵ負荷を推定することができる。これにより、ＣＰＵ負荷を監視するための常駐プロセス等を動作させる必要がなくなるので、より多くのＣＰＵリソースを他の処理に割り当てることができるようになる。
【００５７】
また、本実施の形態によれば、障害が発生する前の通信負荷（すなわち、仮想ネットワークＩＯ（Input Output）の負荷）が考慮されるので、仮想ＡＰサーバのＣＰＵ負荷の推定値をより適切な値にすることができるようになる。
【００５８】
図１９は、障害前のＣＰＵ負荷を検証装置１３において再現する処理の処理フローを示す図である。本処理は、例えば、ＣＰＵ負荷の推定値が算出された後に実行される。また、検証装置１３には、ステップＳ３１において特定された仮想ＡＰサーバを含むシステムと同一の構成を有するシステムが、仮想的に構築されているとする。
【００５９】
パターン抽出部１１１は、第１収集部１０１が情報処理装置３から受信した通信ログ（ここでは、障害が発生する前の通信ログ）から、ＨＴＴＰリクエストの送信パターンを１又は複数抽出する（図１９：ステップＳ５１）。
【００６０】
図２０は、送信パターンの一例を示す図である。図２０の例では、１０：００：０２に送信されたＰＯＳＴのＨＴＴＰリクエストと、１０：００：０３に送信されたＧＥＴのＨＴＴＰリクエストと、１０：００：０５に送信されたＧＥＴのＨＴＴＰリクエストとを含む送信パターン＿１が示されている。本実施の形態においては、例えば、所定時間（例えば１０秒）内に受信した一連のＨＴＴＰリクエストが１つの送信パターンとして取り扱われる。
【００６１】
リクエスト出力部１１３は、ステップＳ５１において抽出された送信パターンに従って送信されるリクエストの送信頻度を、推定データ格納部１２９に格納された推定値及び関係データ格納部１２７に格納されたデータに基づき決定する（ステップＳ５３）。
【００６２】
一例として、図２０に示したような３つのＨＴＴＰリクエストを含む送信パターンが得られた場合に送信頻度を決定する方法を示す。この場合において、例えば図１８に示した、１０：００：０２におけるＣＰＵ負荷２７．００％を再現する場合、ＰＯＳＴに対応するＣＰＵ負荷が９（＝２７／３＊１）％になり且つＧＥＴに対応するＣＰＵ負荷が１８％（＝２７／３＊２）になるようにＨＴＴＰリクエストが送信される。関係データ格納部１２７に格納されているデータ（例えば図１７に示したデータ）に基づき決定されるＨＴＴＰリクエスト数が、ＰＯＳＴについては２９０であり且つＧＥＴについては４１０である場合、１０：００：０２に対応する時刻においてはＰＯＳＴのＨＴＴＰリクエストが２９０回送信され、ＧＥＴのＨＴＴＰリクエストが４１０回送信される。同様の処理を、１０：００：０３以降の各時刻について実行することで、障害が発生する前の期間における各時刻に対応する時刻での送信頻度を決定することができる。なお、ＨＴＴＰリクエストのリクエストＵＲＩ及びパラメータは適宜変更される。
【００６３】
また、例えば図２０に示した送信パターン以外の送信パターンが、１１：００：００において抽出された場合には、１１：００：００に対応する時刻以降においては、１１：００：００において抽出された送信パターンでＨＴＴＰリクエストが送信される。
【００６４】
なお、ここで説明した方法は一例であって、抽出される送信パターンの内容や数に応じて方法を変更してもよい。
【００６５】
図１８の説明に戻り、リクエスト出力部１１３は、ステップＳ５５において決定された送信頻度で、検証装置１３上で構築されたシステムにＨＴＴＰリクエストを送信する（ステップＳ５５）。リクエスト出力部１１３からＨＴＴＰリクエストが送信されている間、検証装置１３においてはシステムにおける仮想ＡＰサーバのＣＰＵ負荷が計測されているとする。
【００６６】
リクエスト出力部１１３は、第２収集部１０３に対して、ＣＰＵ負荷のデータの受信を指示する。これに応じ、第２収集部１０３は、検証装置１３上で構築されたシステムの仮想ＡＰサーバからのＣＰＵ負荷のデータを検証装置１３から受信し（ステップＳ５７）、受信したデータをＣＰＵ負荷データ格納部１２３に格納する。
【００６７】
制御部１１５は、推定データ格納部１２９に格納された推定値と、ステップＳ５７において受信したＣＰＵ負荷のデータとを比較し、障害発生前のＣＰＵ負荷が検証装置１３上のシステムにおいて再現されたか判定する（ステップＳ５９）。
【００６８】
障害発生前のＣＰＵ負荷が検証装置１３上のシステムにおいて再現されていない場合（ステップＳ５９：Ｎｏルート）、制御部１１５は、以下の処理を実行する。具体的には、制御部１１５は、ＣＰＵ負荷の推定値と実際のＣＰＵ負荷（すなわちステップＳ５７において受信したＣＰＵ負荷のデータ）との比較に基づき、リクエスト出力部１１３が送信するリクエストの送信頻度を変更する（ステップＳ６１）。そして処理はステップＳ５５に戻る。
【００６９】
例えば、或る時刻におけるＣＰＵ負荷の推定値が２０（％）であるのに対して実際のＣＰＵ負荷が２５（％）である場合、ＣＰＵ負荷が２５（％）から２０（％）に下がるように、送信頻度が現状の８０（＝２０／２５＊１００）（％）になるように変更を行う。このような処理を各時刻において行うことで、推定されたＣＰＵ負荷が検証装置１３上のシステムにおいて再現される。
【００７０】
一方、障害発生前のＣＰＵ負荷が検証装置１３上のシステムにおいて再現されている場合（ステップＳ５９：Ｙｅｓルート）、制御部１１５は、再現が完了したことを示すデータを、管理装置１０の表示装置（例えばディスプレイ）に出力する（ステップＳ６３）。そして処理は終了する。
【００７１】
以上のような処理を実行すれば、障害が発生する前の状況を再現することができるようになる。これにより、障害の原因究明および障害への対策等を行うことができるようになる。なお、従来はランダムに負荷をかけていたため障害の原因究明および障害への対策等を行うことが難しく、また例えできたとしても時間がかかっていたが、本実施の形態の方法であれば、障害の原因究明および障害への対策等をより容易に行えるようになる。
【００７２】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した管理装置１０の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００７３】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００７４】
なお、ステップＳ３７においては対象システムの仮想ＡＰサーバの通信負荷のデータ及びＣＰＵ負荷のデータを用いなくてもよく、その場合にはステップＳ３５の処理をスキップしてもよい。
【００７５】
なお、情報処理装置１６上で実現されているシステムの通信負荷のデータ及びＣＰＵ負荷のデータを、予め管理装置１０が保持しておいてもよい。そして、管理装置１０は、保持された通信負荷のデータ及びＣＰＵ負荷のデータを用いて、ステップＳ３１の処理等を実行してもよい。
【００７６】
なお、対象システムの仮想ＡＰサーバと類似するシステムの仮想ＡＰサーバを抽出する場合に、統計量ではなく時系列の値そのものを比較してもよい。また、期間中において同一種類の複数の統計量を求め、複数の統計量を比較することで類似する仮想ＡＰサーバを抽出してもよい。なお、比較に使用される期間は例えば同一であるが、必ずしも同一でなくてもよい。
【００７７】
なお、対象システムの仮想ＡＰサーバと類似するシステムの仮想ＡＰサーバを抽出する場合に、ＳＱＬの各命令数を使用しなくてもよい。
【００７８】
なお、仮想ＡＰサーバ以外のサーバであって通信負荷に従ってＣＰＵ負荷が変動するサーバに対して、本実施の形態を適用してもよい。
【００７９】
なお、物理ＣＰＵごとに通信負荷とＣＰＵ負荷との関係を算出した場合には、物理ＣＰＵごとに推定値を算出してもよい。
【００８０】
なお、類似する仮想ＡＰサーバが動作するシステムが停止している場合には、検証装置１３上のシステムではなく、そのシステムを用いてＣＰＵ負荷の再現を行ってもよい。
【００８１】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００８２】
本実施の形態の第１の態様に係る情報処理装置は、（Ａ）障害が発生した第１システムと同一又は類似のシステムである第２システムにおいて或る処理を実行する第１装置のプロセッサ負荷と通信負荷との関係を示すデータを生成する第１生成部（実施の形態における関係算出部１０７は上記第１生成部の一例である）と、（Ｂ）生成されたデータと、障害が発生する前の第１システムにおいて或る処理を実行する第２装置の通信負荷とに基づき、障害が発生する前の第２装置のプロセッサ負荷を算出する算出部（実施の形態における推定データ生成部１０９は上記算出部の一例である）とを有する。
【００８３】
たとえ障害が発生する前の第２装置のプロセッサ負荷の情報を取得することができなくても、通信負荷の情報を取得することができれば、障害が発生する前のプロセッサ負荷を推定できるようになる。
【００８４】
また、第１生成部は、（ａ１）第１システムの構成並びに第２装置のプロセッサ負荷の変動及び通信負荷の変動と、第１システム以外のシステムの構成及び当該システムにおいて特定の処理を実行する装置のプロセッサ負荷の変動及び通信負荷の変動との比較に基づき、第２システムを特定してもよい。
【００８５】
第１システムにおける第２装置のプロセッサ負荷の推定に適した第２システムを特定できるようになる。
【００８６】
また、第１生成部は、（ａ２）第１装置のプロセッサ負荷と第１装置に対するリクエストの数との関係を示すデータを、第１装置に対するリクエストの種類ごとに生成してもよい。
【００８７】
リクエストの種類によってプロセッサ負荷の変動の特徴は違うため、上で述べたような処理を実行すれば、算出されるプロセッサ負荷をより適切な値にすることができるようになる。
【００８８】
また、本情報処理装置は、（Ｃ）障害が発生する前の第２装置に対するリクエストの送信パターンを、障害が発生する前の第２装置の通信ログから生成する第２生成部（実施の形態におけるパターン抽出部１１１は上記第２生成部の一例である）と、（Ｄ）生成された送信パターンに従って第１装置に対するリクエストを送信する出力部（実施の形態におけるリクエスト出力部１１３は上記出力部の一例である）と、（Ｅ）生成された送信パターンに従って第１装置に対するリクエストが送信された場合における第１装置のプロセッサ負荷と、算出された第２装置のプロセッサ負荷との比較の結果に基づき、出力部が第１装置に対するリクエストを送信する頻度を変更する制御部（実施の形態における制御部１１５は上記制御部の一例である）とをさらに有してもよい。
【００８９】
第２装置において発生したプロセッサ負荷を考慮しつつ第１装置においてプロセッサ負荷を発生させることができるので、障害前の状況の再現により障害の原因等を調べることができるようになる。
【００９０】
また、制御部は、（ｅ１）計測されたプロセッサ負荷と、算出された第２装置のプロセッサ負荷とが同じになるように、出力部が第１装置に対するリクエストを送信する頻度を変更してもよい。
【００９１】
また、第１装置及び第２装置は仮想マシンであってもよい。
【００９２】
本実施の形態の第２の態様に係る情報処理方法は、（Ｆ）障害が発生した第１システムと同一又は類似のシステムである第２システムにおいて或る処理を実行する第１装置のプロセッサ負荷と通信負荷との関係を示すデータを生成し、（Ｇ）生成されたデータと、障害が発生する前の第１システムにおいて或る処理を実行する第２装置の通信負荷とに基づき、障害が発生する前の第２装置のプロセッサ負荷を算出する処理を含む。
【００９３】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００９４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９５】
（付記１）
障害が発生した第１システムと同一又は類似のシステムである第２システムにおいて或る処理を実行する第１装置のプロセッサ負荷と通信負荷との関係を示すデータを生成する第１生成部と、
生成された前記データと、前記障害が発生する前の前記第１システムにおいて前記或る処理を実行する第２装置の通信負荷とに基づき、前記障害が発生する前の前記第２装置のプロセッサ負荷を算出する算出部と、
を有する情報処理装置。
【００９６】
（付記２）
前記第１生成部は、
前記第１システムの構成並びに前記第２装置のプロセッサ負荷の変動及び通信負荷の変動と、前記第１システム以外のシステムの構成及び当該システムにおいて前記特定の処理を実行する装置のプロセッサ負荷の変動及び通信負荷の変動との比較に基づき、前記第２システムを特定する、
付記１記載の情報処理装置。
【００９７】
（付記３）
前記第１生成部は、
前記第１装置のプロセッサ負荷と前記第１装置に対するリクエストの数との関係を示すデータを、前記第１装置に対するリクエストの種類ごとに生成する、
付記１又は２記載の情報処理装置。
【００９８】
（付記４）
前記障害が発生する前の前記第２装置に対するリクエストの送信パターンを、前記障害が発生する前の前記第２装置の通信ログから生成する第２生成部と、
生成された前記送信パターンに従って前記第１装置に対するリクエストを送信する出力部と、
生成された前記送信パターンに従って前記第１装置に対するリクエストが送信された場合における前記第１装置のプロセッサ負荷と、算出された前記第２装置のプロセッサ負荷との比較の結果に基づき、前記出力部が前記第１装置に対するリクエストを送信する頻度を変更する制御部と、
をさらに有する付記１乃至３のいずれか１つ記載の情報処理装置。
【００９９】
（付記５）
前記制御部は、
計測された前記プロセッサ負荷と、算出された前記第２装置のプロセッサ負荷とが同じになるように、前記出力部が前記第１装置に対するリクエストを送信する頻度を変更する、
付記４記載の情報処理装置。
【０１００】
（付記６）
前記第１装置及び前記第２装置は仮想マシンである、
付記１乃至５のいずれか１つ記載の情報処理装置。
【０１０１】
（付記７）
コンピュータが、
障害が発生した第１システムと同一又は類似のシステムである第２システムにおいて或る処理を実行する第１装置のプロセッサ負荷と通信負荷との関係を示すデータを生成し、
生成された前記データと、前記障害が発生する前の前記第１システムにおいて前記或る処理を実行する第２装置の通信負荷とに基づき、前記障害が発生する前の前記第２装置のプロセッサ負荷を算出する、
処理を実行する情報処理方法。
【０１０２】
（付記８）
コンピュータに、
障害が発生した第１システムと同一又は類似のシステムである第２システムにおいて或る処理を実行する第１装置のプロセッサ負荷と通信負荷との関係を示すデータを生成し、
生成された前記データと、前記障害が発生する前の前記第１システムにおいて前記或る処理を実行する第２装置の通信負荷とに基づき、前記障害が発生する前の前記第２装置のプロセッサ負荷を算出する、
処理を実行させるプログラム。
【符号の説明】
【０１０３】
１  情報処理システム    １０  管理装置
１３  検証装置    １６  情報処理装置
３  情報処理装置    ５  ネットワーク
１３１  ＣＰＵ    １３２  メモリ
１３３  ＨＤＤ    １３４  ＮＩＣ
１３００  ハイパバイザ    １３１０  仮想スイッチ
１３２１，１３２２，１３２３  ＶＭ
１１  ＣＰＵ    １２  メモリ
１４  ＮＩＣ    １５  バス
１７  ＨＤＤ
１０１  第１収集部    １０３  第２収集部
１０５  特定部    １０７  関係算出部
１０９  推定データ生成部    １１１  パターン抽出部
１１３  リクエスト出力部    １１５  制御部
１２１  通信負荷データ格納部    １２３  ＣＰＵ負荷データ格納部
１２５  システム構成データ格納部    １２７  関係データ格納部
１２９  推定データ格納部    １３５  パターンデータ格納部
【図１】
2019032745.tif 000003
【図２】
2019032745.tif 000004
【図３】
2019032745.tif 000005
【図４】
2019032745.tif 000006
【図５】
2019032745.tif 000007
【図６】
2019032745.tif 000008
【図７】
2019032745.tif 000009
【図８】
2019032745.tif 000010
【図９】
2019032745.tif 000011
【図１０】
2019032745.tif 000012
【図１１】
2019032745.tif 000013
【図１２】
2019032745.tif 000014
【図１３】
2019032745.tif 000015
【図１４】
2019032745.tif 000016
【図１５】
2019032745.tif 000017
【図１６】
2019032745.tif 000018
【図１７】
2019032745.tif 000019
【図１８】
2019032745.tif 000020
【図１９】
2019032745.tif 000021
【図２０】
2019032745.tif 000022