(57)【要約】【課題】業務処理単位でリソースに関する情報を出力すること。【解決手段】情報処理装置１００は、１以上のリソースのそれぞれの使用状況を表す指標値の時間変化を示す時系列データを取得する。情報処理装置１００は、取得した時系列データに基づいて、所定の時間間隔ごとの１以上のリソースのそれぞれの使用状況を表す指標値を要素とする所定の時間間隔ごとのベクトルのそれぞれを列として含む行列Ｘを生成する。情報処理装置１００は、生成した行列Ｘを基底行列Ｕと重み行列Ａとの積により規定し、生成した行列Ｘに対して非負値行列因子分解を実施し、基底行列Ｕを生成する。情報処理装置１００は、生成した基底行列に含まれる所定の数分の基底ベクトルのそれぞれが表す１以上の成分値を１以上のリソースのそれぞれについて分離した結果を出力する。【選択図】図１
2020057327.tif 000002
【特許請求の範囲】
【請求項１】
１以上のリソースのそれぞれの使用状況を表す指標値の時間変化を示す時系列データを取得し、
取得した前記時系列データに基づいて、所定の時間間隔ごとの前記１以上のリソースのそれぞれの使用状況を表す指標値を要素とする前記所定の時間間隔ごとのベクトルのそれぞれを列または行として含む行列を生成し、
生成した前記行列に対して非負値行列因子分解を実施し、所定の数分の基底ベクトルのそれぞれを列または行として含む基底行列を生成し、
生成した前記基底行列に含まれる前記所定の数分の基底ベクトルのそれぞれが表す１以上の成分値を前記１以上のリソースのそれぞれについて分離した結果を出力する、
処理をコンピュータに実行させることを特徴とする出力プログラム。
【請求項２】
生成した前記行列に対して非負値行列因子分解を実施し、前記所定の数分の重みベクトルのそれぞれを行または列として含み、生成した前記行列を前記基底行列との積によって表す重み行列を生成し、
生成した前記重み行列に含まれる前記所定の数分の重みベクトルのそれぞれに関する情報を出力する、処理を前記コンピュータに実行させることを特徴とする請求項１に記載の出力プログラム。
【請求項３】
前記所定の数は、前記１以上のリソースの少なくともいずれかを用いて実行される業務処理の数に基づいて設定される、ことを特徴とする請求項１または２に記載の出力プログラム。
【請求項４】
前記所定の数は、前記ベクトルの次元の数に基づいて設定される、ことを特徴とする請求項１〜３のいずれか一つに記載の出力プログラム。
【請求項５】
前記１以上のリソースは、同一の機器における異なる種類のリソースを含む、ことを特徴とする請求項１〜４のいずれか一つに記載の出力プログラム。
【請求項６】
前記１以上のリソースは、異なる機器におけるリソースを含む、ことを特徴とする請求項１〜５のいずれか一つに記載の出力プログラム。
【請求項７】
１以上のリソースのそれぞれの使用状況を表す指標値の時間変化を示す時系列データを取得し、
取得した前記時系列データに基づいて、所定の時間間隔ごとの前記１以上のリソースのそれぞれの使用状況を表す指標値を要素とする前記所定の時間間隔ごとのベクトルのそれぞれを列または行として含む行列を生成し、
生成した前記行列に対して非負値行列因子分解を実施し、所定の数分の基底ベクトルのそれぞれを列または行として含む基底行列を生成し、
生成した前記基底行列に含まれる前記所定の数分の基底ベクトルのそれぞれが表す１以上の成分値を前記１以上のリソースのそれぞれについて分離した結果を出力する、
処理をコンピュータが実行することを特徴とする出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、出力プログラム、および出力方法に関する。
【背景技術】
【０００２】
従来、機器のリソースの使用状況を表す指標値の時間変化を示す時系列データを取得して分析する技術がある。指標値は、例えば、ＣＰＵ使用率やメモリ使用率などである。さらに、機器を用いて実行される業務処理単位で、機器のリソースの使用状況を表す指標値の時間変化を示す時系列データを分析することが望まれる場合がある。
【０００３】
先行技術としては、例えば、仮想マシンが割り当てられる複数の物理マシン全体の物理リソース量の総和を目的関数として最小化する最適化問題の解を演算し、配置構成を導出するものがある。また、例えば、複数の業務の負荷の変動方向を符号化し、符号積を算出し、符号積に対してカイ２乗検定を行って負荷の変動方向に相関関係があるか否かを判定する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１５９９２８号公報
【特許文献２】特開２０１４−７８１６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、業務処理単位で、機器のリソースの使用状況を表す指標値の時間変化を示す時系列データを分析することが難しい場合がある。例えば、１つの機器を用いて複数の業務処理が行われる場合、１つの機器のリソースの使用状況を表す指標値の時間変化を示す時系列データの中で、それぞれの業務処理に対応するデータは一体化しており、業務処理単位で時系列データを分析することはできない。
【０００６】
１つの側面では、本発明は、業務処理単位でリソースに関する情報を出力することを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様によれば、１以上のリソースのそれぞれの使用状況を表す指標値の時間変化を示す時系列データを取得し、取得した前記時系列データに基づいて、所定の時間間隔ごとの前記１以上のリソースのそれぞれの使用状況を表す指標値を要素とする前記所定の時間間隔ごとのベクトルのそれぞれを列または行として含む行列を生成し、生成した前記行列に対して非負値行列因子分解を実施し、所定の数分の基底ベクトルのそれぞれを列または行として含む基底行列を生成し、生成した前記基底行列に含まれる前記所定の数分の基底ベクトルのそれぞれが表す１以上の成分値を前記１以上のリソースのそれぞれについて分離した結果を出力する出力プログラム、および出力方法が提案される。
【発明の効果】
【０００８】
一態様によれば、業務処理単位でリソースに関する情報を出力することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかる出力方法の一実施例を示す説明図である。
【図２】図２は、業務処理システム２００の一例を示す説明図である。
【図３】図３は、情報処理装置１００のハードウェア構成例を示すブロック図である。
【図４】図４は、稼働テーブル４００の構造の一例を示す説明図である。
【図５】図５は、日単位テーブル５００の構造の一例を示す説明図である。
【図６】図６は、ベクトルテーブル６００のデータ構造の一例を示す説明図である。
【図７】図７は、成分テーブル７００のデータ構造の一例を示す説明図である。
【図８】図８は、重みテーブル８００のデータ構造の一例を示す説明図である。
【図９】図９は、分離結果テーブル９００のデータ構造の一例を示す説明図である。
【図１０】図１０は、長期傾向テーブル１０００のデータ構造の一例を示す説明図である。
【図１１】図１１は、情報処理装置１００の機能的構成例を示すブロック図である。
【図１２】図１２は、情報処理装置１００の動作の流れを示す説明図である。
【図１３】図１３は、負荷モデルの具体的な内容を示す説明図（その１）である。
【図１４】図１４は、負荷モデルの具体的な内容を示す説明図（その２）である。
【図１５】図１５は、情報処理装置１００の動作の一例を示す説明図（その１）である。
【図１６】図１６は、情報処理装置１００の動作の一例を示す説明図（その２）である。
【図１７】図１７は、情報処理装置１００の動作の一例を示す説明図（その３）である。
【図１８】図１８は、情報処理装置１００の動作の一例を示す説明図（その４）である。
【図１９】図１９は、情報処理装置１００の動作の一例を示す説明図（その５）である。
【図２０】図２０は、情報処理装置１００の動作の一例を示す説明図（その６）である。
【図２１】図２１は、情報処理装置１００の動作の一例を示す説明図（その７）である。
【図２２】図２２は、情報処理装置１００の動作の一例を示す説明図（その８）である。
【図２３】図２３は、情報処理装置１００の動作の一例を示す説明図（その９）である。
【図２４】図２４は、情報処理装置１００の動作の一例を示す説明図（その１０）である。
【図２５】図２５は、情報処理装置１００の動作の一例を示す説明図（その１１）である。
【図２６】図２６は、情報処理装置１００の動作の一例を示す説明図（その１２）である。
【図２７】図２７は、情報処理装置１００の動作の一例を示す説明図（その１３）である。
【図２８】図２８は、全体処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、本発明にかかる出力プログラム、および出力方法の実施の形態を詳細に説明する。
【００１１】
（実施の形態にかかる出力方法の一実施例）
図１は、実施の形態にかかる出力方法の一実施例を示す説明図である。情報処理装置１００は、業務処理システムに含まれる１以上の機器を用いて実行される業務処理単位で、それぞれの機器のリソースに関する情報を出力することができるコンピュータである。
【００１２】
ここで、業務処理システムは、例えば、ＩＣＴ（Ｉｎｆｏｒｍａｔｉｏｎ  ａｎｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）システムである。機器は、例えば、ＩＣＴ機器である。機器は、具体的には、サーバである。リソースは、例えば、ＣＰＵ、メモリ、および、通信帯域などである。業務処理は、例えば、１以上の機器における１以上のプロセスの実行によって実現される一連の処理である。
【００１３】
ここで、従来、ＩＣＴシステムにおいて、１以上の機器を用いて実行される業務処理単位で、それぞれの機器のリソースの使用状況を表す指標値の時間変化を示す時系列データを分析することが望まれることがある。例えば、業務処理単位で時系列データを分析し、業務処理単位で機器のリソースにかかる負荷の変化傾向を把握し、または、業務処理単位で機器のリソースにかかる将来の負荷を予測することが望まれることがある。しかしながら、業務処理単位で時系列データを分析することが難しい場合がある。
【００１４】
例えば、１つの機器を用いて複数の業務処理が行われる場合がある。具体的には、１つの機器で、複数の業務処理からデータベースに対するクエリを受け付けるプロセスが実行される場合が考えられる。この場合、１つの機器のリソースの使用状況を表す指標値の時間変化を示す時系列データの中で、それぞれの業務処理に対応するデータは一体化しているため、業務処理単位で時系列データを分析することはできない。また、プロセス単位で、リソースの使用状況を表す指標値の時間変化を示す時系列データを取得可能であっても、同様に、業務処理単位で時系列データを分析することはできない。
【００１５】
これに対し、例えば、それぞれの機器のリソースごとの時系列データに対して成分分解を実施する場合が考えられる。具体的には、成分分解により、それぞれの機器のリソースごとの時系列データを、それぞれの機器のリソースごとの時系列データを形成する要素である１以上の成分データに分解することにより、業務処理単位で時系列データを分析しようと試みることが考えられる。しかしながら、分解された成分データを参照しても、業務処理単位で時系列データを分析することが難しい場合がある。
【００１６】
例えば、それぞれの機器のリソースごとの１以上の成分データの中から、１つの業務処理に対応する成分データの組み合わせを特定することができず、業務処理単位で時系列データを分析することができない。具体的には、異なるリソースに関する時系列データは異なる基準で分割されるため、リソース間での成分データの対応関係が不明であり、異なるリソースの成分データの組み合わせを、１つの業務処理に対応付けることができない。また、具体的には、業務処理間でリソースの使用傾向が類似すると、リソースに関する時系列データから分割される成分データの中で、複数の業務処理に関するデータが一体化してしまうことがある。
【００１７】
そこで、本実施の形態では、業務処理システムにおける業務処理の性質を利用して、業務処理システムのそれぞれの機器のリソースごとの時系列データに基づいて、業務処理単位でリソースに関する情報を出力可能にすることができる出力方法について説明する。
【００１８】
ここで、業務処理システムにおける業務処理の性質としては、例えば、以下の２つの性質が考えられる。例えば、業務処理の業務量が、日や週や月などの所定の時間間隔で周期的な変化傾向を示すという第１の性質が考えられる。また、例えば、１以上の業務処理のそれぞれの業務量に基づき、１以上のリソースのそれぞれの使用状況が決定するという第２の性質が考えられる。
【００１９】
上記性質によれば、異なるリソースのそれぞれの使用状況を表す指標値の時間変化を示す時系列データの中で、同じ業務処理に対応する成分データは、所定の時間間隔での周期的な変化傾向が互いに類似するような成分データになることが考えられる。また、上記性質によれば、１以上のリソースのそれぞれの使用状況を表す指標値が、１以上の業務処理のそれぞれの業務量に比例するという負荷モデルが考えられる。負荷モデルの具体的な内容については、図１３および図１４を用いて後述する。
【００２０】
このため、情報処理装置１００が、上記負荷モデルを利用し、１以上のリソースのそれぞれに関する時系列データの中から、所定の時間間隔での周期的な変化傾向が互いに類似する成分データを分離すれば、業務処理単位でリソースに関する情報を取得可能になる。
【００２１】
図１の例では、（１−１）情報処理装置１００は、１以上のリソースのそれぞれの使用状況を表す指標値の時間変化を示す時系列データを取得する。１以上のリソースは、例えば、同一の機器における異なる種類のリソースを含んでもよい。１以上のリソースは、例えば、異なる機器におけるリソースを含んでもよい。指標値は、例えば、ＣＰＵ使用率、メモリ使用率、および、帯域使用率などである。
【００２２】
（１−２）情報処理装置１００は、取得した時系列データに基づいて、所定の時間間隔ごとの１以上のリソースのそれぞれの使用状況を表す指標値を要素とする所定の時間間隔ごとのベクトルのそれぞれを列として含む行列Ｘを生成する。所定の時間間隔は、例えば、１日である。情報処理装置１００は、例えば、１日ごとの１以上のリソースのそれぞれの使用状況を表す指標値を要素とする１日ごとのベクトルを生成し、１日ごとのベクトルのそれぞれを列として含む行列Ｘを生成する。
【００２３】
行列Ｘは、上記負荷モデルに基づき、所定の数分の基底ベクトルのそれぞれを列として含む基底行列Ｕと、所定の数分の重みベクトルのそれぞれを行として含む重み行列Ａとの積により規定可能である。基底ベクトルは、所定の時間間隔での周期的な変化傾向が互いに類似するような、１以上のリソースのそれぞれについての成分データを表すベクトルである。成分データは、例えば、所定の時間間隔単位での成分値の時間変化を示す時系列データである。重みベクトルは、所定の時間間隔ごとの業務処理の重みを表すベクトルである。業務処理の重みは、例えば、業務処理の業務量に対応する。換言すれば、取得した時系列データのうち、グラフ１０１に対応するような、所定の時間間隔分の１つのリソースに関する部分的なデータが、グラフ１０２〜１０４に対応するような、業務処理ごとの成分データに重み係数を乗じたデータの結合によって表現される。
【００２４】
（１−３）情報処理装置１００は、生成した行列Ｘに対して非負値行列因子分解を実施し、基底行列Ｕを生成する。情報処理装置１００は、例えば、行列Ｘを基底行列Ｕと重み行列Ａとの積で規定し、非負値行列因子分解を実施し、基底行列Ｕを生成する。非負値行列因子分解については、例えば、下記参考文献１を参照することができる。
【００２５】
参考文献１  ：  Ｈｏｙｅｒ，  Ｐａｔｒｉｋ  Ｏ．  “Ｎｏｎ−ｎｅｇａｔｉｖｅ  ｍａｔｒｉｘ  ｆａｃｔｏｒｉｚａｔｉｏｎ  ｗｉｔｈ  ｓｐａｒｓｅｎｅｓｓ  ｃｏｎｓｔｒａｉｎｔｓ．”  Ｊｏｕｒｎａｌ  ｏｆ  ｍａｃｈｉｎｅ  ｌｅａｒｎｉｎｇ  ｒｅｓｅａｒｃｈ  ５．Ｎｏｖ  （２００４）：  １４５７−１４６９．
【００２６】
（１−４）情報処理装置１００は、生成した基底行列に含まれる所定の数分の基底ベクトルのそれぞれが表す１以上の成分値を１以上のリソースのそれぞれについて分離した結果を出力する。情報処理装置１００は、例えば、行列に含まれるベクトルを生成する際に、１以上のリソースのそれぞれの使用状況を表す指標値を、いずれの位置の要素としたかに基づいて、１以上の成分値を、１以上のリソースのそれぞれについて分離する。
【００２７】
これにより、情報処理装置１００は、業務処理単位での１以上のリソースのそれぞれの情報を出力することができる。結果として、情報処理装置１００は、利用者が、業務処理ごとに時系列データを解析しやすくすることができ、業務処理ごとに所定の時間間隔での１以上のリソースそれぞれの使用傾向を解析しやすくすることができる。
【００２８】
具体的には、情報処理装置１００は、所定の時間間隔ごとにリソースに関する指標値を纏めて、行列のそれぞれの列として処理可能にすることができ、非負値行列因子分解の結果に、業務処理の第１の性質を反映させることができる。このため、情報処理装置１００は、非負値行列因子分解で、業務処理単位でのリソースごとの成分データに対応する、所定の時間間隔ごとの周期的な変化傾向が類似するリソースごとの成分データを抽出可能にすることができる。
【００２９】
また、情報処理装置１００は、異なる業務処理装置の異なるリソースに関する指標値を、行列のそれぞれの列として統合して処理可能にすることができる。このため、情報処理装置１００は、非負値行列因子分解で、１以上のリソースのそれぞれに関する時系列データの中から、同じ業務処理に対応する成分データの組み合わせを特定して抽出することができる。また、情報処理装置１００は、いずれかのリソースについて複数の業務処理による使用傾向が類似し、それぞれの業務処理に対応する成分データが類似する場合に、非負値行列因子分解で、それぞれの業務処理に対応する成分データを分離して抽出することができる。
【００３０】
ここでは、情報処理装置１００が、所定の数分の重みベクトルのそれぞれに関する情報を出力しない場合について説明したが、これに限らない。例えば、情報処理装置１００が、所定の数分の重みベクトルのそれぞれを出力する場合があってもよい。これによれば、情報処理装置１００は、業務処理単位での業務量の長期的な変化傾向を解析するために有用である情報を、利用者に提供することができる。
【００３１】
また、例えば、情報処理装置１００が、所定の数分の重みベクトルのそれぞれに基づいて、業務処理単位での業務量の長期的な変化傾向を解析した結果を出力する場合があってもよい。業務処理単位での業務量の長期的な変化傾向は、換言すれば、業務処理単位での１以上のリソースにかかる負荷の長期的な変化傾向である。長期的とは、所定の時間間隔より長い期間を意味する。業務処理単位での業務量の長期的な変化傾向を解析する具体例については、図１２〜図２７を用いて後述する。
【００３２】
ここでは、情報処理装置１００が、所定の時間間隔ごとのベクトルのそれぞれを列として含む行列Ｘを生成する場合について説明したが、これに限らない。例えば、情報処理装置１００が、所定の時間間隔ごとのベクトルのそれぞれを行として含む行列Ｘ’を生成する場合があってもよい。この場合、行列Ｘ’は、所定の数分の重みベクトルのそれぞれを列として含む重み行列Ａ’と、所定の数分の基底ベクトルのそれぞれを行として含む基底行列Ｕ’との積により規定可能である。
【００３３】
（業務処理システム２００の一例）
次に、図２を用いて、図１に示した情報処理装置１００を適用した、業務処理システム２００の一例について説明する。
【００３４】
図２は、業務処理システム２００の一例を示す説明図である。図２において、業務処理システム２００は、情報処理装置１００と、１以上の業務処理装置２０１とを含む。
【００３５】
業務処理システム２００において、情報処理装置１００と業務処理装置２０１とは、有線または無線のネットワーク２１０を介して接続される。ネットワーク２１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、および、インターネットなどである。
【００３６】
情報処理装置１００は、業務処理単位で１以上のリソースのそれぞれに関する情報を出力するコンピュータである。情報処理装置１００は、例えば、業務処理装置２０１と通信し、全体の稼働データを取得する。情報処理装置１００は、具体的には、所定のタイミングで、業務処理装置２０１が有するリソースの使用状況を表す指標値を収集し、収集した指標値を纏めた全体の稼働データを生成する。全体の稼働データは、例えば、図４に後述する稼働テーブル４００を用いて記憶される。
【００３７】
情報処理装置１００は、例えば、全体の稼働データを所定の時間間隔ごとに分割する。所定の時間間隔は、例えば、１日である。１日ごとに分割された日単位稼働データは、例えば、図５に後述する日単位テーブル５００を用いて記憶される。情報処理装置１００は、例えば、１日ごとに分割された日単位稼働データをベクトル化し、１日ごとのベクトルを生成する。各日のベクトルは、例えば、図６に後述するベクトルテーブル６００を用いて記憶される。
【００３８】
情報処理装置１００は、例えば、各日のベクトルを列として含む稼働データ行列を生成する。情報処理装置１００は、例えば、基底数に基づいて、生成した稼働データ行列に対して非負値行列因子分解を実施し、基底行列および重み行列を生成する。基底行列は、例えば、図７に後述する成分テーブル７００を用いて記憶される。重み行列は、例えば、図８に後述する重みテーブル８００を用いて記憶される。
【００３９】
情報処理装置１００は、例えば、基底行列に含まれる、業務処理単位に対応する基底ベクトルに含まれる業務処理単位での１以上の成分値を、リソースごとに分離する。分離した結果は、例えば、図９に後述する分離結果テーブル９００を用いて記憶される。情報処理装置１００は、重み行列に含まれる、業務処理単位に対応する重みベクトルに基づいて、業務処理単位でのリソースごとの使用状況の長期的な変化傾向を解析する。解析した結果は、例えば、図１０に後述する長期傾向テーブル１０００を用いて記憶される。
【００４０】
情報処理装置１００は、業務処理単位で、リソースごとに１以上の成分値を分離した結果と、リソースごとの使用状況の長期的な変化傾向を解析した結果とを対応付けて出力する。情報処理装置１００は、例えば、サーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などである。
【００４１】
業務処理装置２０１は、業務処理を実現するためのコンピュータである。業務処理装置２０１は、例えば、業務処理を実現する１以上のプロセスのいずれかを実行する。また、業務処理装置２０１は、１以上のリソースを有し、それぞれのリソースの使用状況を表す指標値を定期的に計測して記憶する。業務処理装置２０１は、例えば、サーバやＰＣなどである。
【００４２】
ここでは、業務処理システム２００が、情報処理装置１００を１つ含む場合について説明したが、これに限らない。例えば、業務処理システム２００が、情報処理装置１００を複数含む場合があってもよい。そして、複数の情報処理装置１００が協働して処理を実現する場合があってもよい。
【００４３】
また、ここでは、情報処理装置１００が、業務処理装置２０１とは異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置１００が、いずれかの業務処理装置２０１と一体である場合があってもよい。
【００４４】
（情報処理装置１００のハードウェア構成例）
次に、図３を用いて、情報処理装置１００のハードウェア構成例について説明する。
【００４５】
図３は、情報処理装置１００のハードウェア構成例を示すブロック図である。図３において、情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、記録媒体Ｉ／Ｆ３０４と、記録媒体３０５とを有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００４６】
ここで、ＣＰＵ３０１は、情報処理装置１００の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００４７】
ネットワークＩ／Ｆ３０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ３０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ３０３は、例えば、モデムやＬＡＮアダプタなどである。
【００４８】
記録媒体Ｉ／Ｆ３０４は、ＣＰＵ３０１の制御に従って記録媒体３０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ３０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体３０５は、記録媒体Ｉ／Ｆ３０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体３０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体３０５は、情報処理装置１００から着脱可能であってもよい。
【００４９】
情報処理装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置１００は、記録媒体Ｉ／Ｆ３０４や記録媒体３０５を複数有していてもよい。また、情報処理装置１００は、記録媒体Ｉ／Ｆ３０４や記録媒体３０５を有していなくてもよい。
【００５０】
（稼働テーブル４００の構造）
次に、図４を用いて、稼働テーブル４００の構造の一例について説明する。稼働テーブル４００は、例えば、図３に示した情報処理装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００５１】
図４は、稼働テーブル４００の構造の一例を示す説明図である。図４に示すように、稼働テーブル４００は、サーバ名と、日付時刻と、１以上のリソースとのフィールドを有する。稼働テーブル４００は、各フィールドに情報を設定することにより、レコードが記憶される。
【００５２】
サーバ名のフィールドには、業務処理装置２０１を識別するサーバ名が設定される。日付時刻のフィールドには、業務処理装置２０１でリソースの使用状況を表す指標値が計測された日付と時刻との組み合わせが設定される。リソースのフィールドには、リソースの使用状況を表す指標値が設定される。
【００５３】
リソースのフィールドは、例えば、ＣＰＵ使用率［％］のフィールドと、ディスクＩＯ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）［ＩＯＰＳ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｐｅｒ  Ｓｅｃｏｎｄ）］のフィールドとなどである。ＣＰＵ使用率［％］のフィールドには、業務処理装置２０１でのＣＰＵ３０１の使用状況を表す指標値であるＣＰＵ使用率［％］が設定される。ディスクＩＯ［ＩＯＰＳ］のフィールドには、業務処理装置２０１での記録媒体３０５の使用状況を表す指標値であるディスクＩＯ［ＩＯＰＳ］が設定される。
【００５４】
（日単位テーブル５００の構造）
次に、図５を用いて、日単位テーブル５００の構造の一例について説明する。日単位テーブル５００は、例えば、図３に示した情報処理装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００５５】
図５は、日単位テーブル５００の構造の一例を示す説明図である。図５に示すように、日単位テーブル５００は、サーバ名と、日付時刻と、１以上のリソースとのフィールドを有する。日単位テーブル５００は、各フィールドに情報を設定することにより、レコードが記憶される。
【００５６】
日単位テーブル５００のレコードは、図４に示した稼働テーブル４００のレコードから抽出された、１日分のレコードである。このため、日単位テーブル５００のそれぞれのフィールドには、図４に示した稼働テーブル４００のそれぞれのフィールドと同様の情報が設定される。また、日単位テーブル５００の日付時刻のフィールドには、同日の日付と時刻との組み合わせが設定される。
【００５７】
（ベクトルテーブル６００のデータ構造）
次に、図６を用いて、ベクトルテーブル６００のデータ構造の一例について説明する。ベクトルテーブル６００は、例えば、図３に示した情報処理装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００５８】
図６は、ベクトルテーブル６００のデータ構造の一例を示す説明図である。図６に示すように、ベクトルテーブル６００は、日ごとの稼働データのフィールドを有する。ベクトルテーブル６００は、各フィールドに情報を設定することにより、レコードが記憶される。
【００５９】
日ごとの稼働データのフィールドには、全体の稼働データから日ごとに分割された日単位稼働データをベクトル化して得られたベクトルの要素が設定される。日単位稼働データをベクトル化して得られたベクトルの要素は、日単位稼働データが示す１以上のリソースのそれぞれの使用状況を表す１以上の指標値のそれぞれである。
【００６０】
（成分テーブル７００のデータ構造）
次に、図７を用いて、成分テーブル７００のデータ構造の一例について説明する。成分テーブル７００は、例えば、図３に示した情報処理装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００６１】
図７は、成分テーブル７００のデータ構造の一例を示す説明図である。図７に示すように、成分テーブル７００は、１以上の成分のフィールドを有する。成分テーブル７００は、各フィールドに情報を設定することにより、レコードが記憶される。
【００６２】
成分のフィールドには、稼働データ行列に対して非負値行列因子分解を実施して得られた基底行列に含まれる基底ベクトルが示すリソースごとの成分データが設定される。成分データは、リソースに関する成分値の集合である。成分のフィールドには、例えば、稼働データ行列に対して非負値行列因子分解を実施して得られた基底行列に含まれる基底ベクトルが示す１以上の成分値のそれぞれが設定される。
【００６３】
（重みテーブル８００のデータ構造）
次に、図８を用いて、重みテーブル８００のデータ構造の一例について説明する。重みテーブル８００は、例えば、図３に示した情報処理装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００６４】
図８は、重みテーブル８００のデータ構造の一例を示す説明図である。図８に示すように、重みテーブル８００は、成分ＩＤと、日付と、重み係数とのフィールドを有する。重みテーブル８００は、各フィールドに情報を設定することにより、レコードが記憶される。
【００６５】
成分ＩＤのフィールドには、稼働データ行列に対して非負値行列因子分解を実施して得られた重み行列に含まれる重みベクトルの要素である重み係数の係り先である、リソースごとの成分データを示す基底ベクトルを識別するための成分ＩＤが設定される。成分データは、リソースに関する成分値の集合である。成分ＩＤは、基底ベクトルが示すリソースごとの成分データが設定された成分テーブル７００の成分フィールドの列番号である。日付のフィールドには、重みベクトルの要素である重み係数が示す重みが、いつの業務処理に対応する業務量に対応するかを識別するための日付が設定される。重み係数のフィールドには、重みベクトルの要素である重み係数が設定される。重み係数は、業務処理の重みとして、業務処理の業務量を示す。
【００６６】
（分離結果テーブル９００のデータ構造）
次に、図９を用いて、分離結果テーブル９００のデータ構造の一例について説明する。分離結果テーブル９００は、例えば、図３に示した情報処理装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００６７】
図９は、分離結果テーブル９００のデータ構造の一例を示す説明図である。図９に示すように、分離結果テーブル９００は、成分ＩＤと、サーバ名と、時刻と、１以上のリソースとのフィールドを有する。分離結果テーブル９００は、各フィールドに情報を設定することにより、レコードが記憶される。
【００６８】
成分ＩＤのフィールドには、リソースごとの成分データを含み、リソースごとの成分データの分離元になる基底ベクトルを識別する成分ＩＤが設定される。成分データは、リソースに関する成分値の集合である。サーバ名のフィールドには、基底ベクトルが示す成分値の集合から分離される成分値が、いずれの業務処理装置２０１に関するかを示すサーバ名が設定される。時刻のフィールドには、基底ベクトルが示す成分値の集合から分離される成分値が、業務処理装置２０１でいつ計測された成分値であるかを示す時刻が設定される。リソースのフィールドには、基底ベクトルが示す成分値の集合から分離された、いずれかのリソースの使用状況を表す成分値が設定される。
【００６９】
リソースのフィールドは、例えば、ＣＰＵ使用率［％］のフィールドと、ディスクＩＯ［ＩＯＰＳ］のフィールドとなどである。ＣＰＵ使用率［％］のフィールドには、業務処理装置２０１でのＣＰＵ３０１の使用状況を表す成分値であるＣＰＵ使用率［％］が設定される。ディスクＩＯ［ＩＯＰＳ］のフィールドには、業務処理装置２０１での記録媒体３０５の使用状況を表す成分値であるディスクＩＯ［ＩＯＰＳ］が設定される。
【００７０】
（長期傾向テーブル１０００のデータ構造）
次に、図１０を用いて、長期傾向テーブル１０００のデータ構造の一例について説明する。長期傾向テーブル１０００は、例えば、図３に示した情報処理装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００７１】
図１０は、長期傾向テーブル１０００のデータ構造の一例を示す説明図である。図１０に示すように、長期傾向テーブル１０００は、成分ＩＤと、増加減少傾向と、回帰式とのフィールドを有する。長期傾向テーブル１０００は、各フィールドに情報を設定することにより、レコードが記憶される。
【００７２】
成分ＩＤのフィールドには、稼働データ行列に対して非負値行列因子分解を実施して得られた重み行列に含まれる重みベクトルの要素である重み係数の係り先である、リソースごとの成分データを示す基底ベクトルを特定するための成分ＩＤが設定される。成分ＩＤは、基底ベクトルが示すリソースごとの成分データが設定された成分テーブル７００の成分フィールドの列番号である。増加減少傾向のフィールドには、重みベクトルに基づいて解析された、重みベクトルに含まれる重み係数の時間経過に伴う増加減少傾向が設定される。回帰式のフィールドには、重みベクトルに含まれる重み係数の時間経過に伴う変化傾向を数式化して得られた回帰式が設定される。
【００７３】
（業務処理装置２０１のハードウェア構成例）
業務処理装置２０１のハードウェア構成例は、図３に示した情報処理装置１００のハードウェア構成例と同様であるため、説明を省略する。業務処理装置２０１は、図４に示した稼働テーブル４００と同様のデータ構造で、自装置分の稼働データを記憶する。業務処理装置２０１は、図４〜図１０に示した各種テーブルを記憶しなくてもよい。
【００７４】
（情報処理装置１００の機能的構成例）
次に、図１１を用いて、情報処理装置１００の機能的構成例について説明する。
【００７５】
図１１は、情報処理装置１００の機能的構成例を示すブロック図である。情報処理装置１００は、記憶部１１００と、取得部１１０１と、分解部１１０２と、統合部１１０３と、抽出部１１０４と、分離部１１０５と、分析部１１０６と、出力部１１０７とを含む。
【００７６】
記憶部１１００は、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域によって実現される。以下では、記憶部１１００が、情報処理装置１００に含まれる場合について説明するが、これに限らない。例えば、記憶部１１００が、情報処理装置１００とは異なる装置に含まれ、記憶部１１００の記憶内容が情報処理装置１００から参照可能である場合があってもよい。
【００７７】
取得部１１０１〜出力部１１０７は、制御部の一例として機能する。取得部１１０１〜出力部１１０７は、具体的には、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、ネットワークＩ／Ｆ３０３により、その機能を実現する。各機能部の処理結果は、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域に記憶される。
【００７８】
記憶部１１００は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部１１００は、例えば、１以上のリソースのそれぞれの使用状況を表す指標値の時間変化を示す時系列データを記憶する。リソースは、例えば、ＣＰＵやメモリなどである。１以上のリソースは、例えば、同一の機器における異なる種類のリソースを含む。１以上のリソースは、例えば、異なる機器におけるリソースを含む。時系列データは、例えば、稼働データに含まれる。記憶部１１００は、例えば、非負値行列因子分解の対象となる行列を記憶する。行列は、例えば、時系列データに基づいて生成される。
【００７９】
記憶部１１００は、例えば、非負値行列因子分解の結果得られる、基底行列および重み行列を記憶する。基底行列は、所定の数の基底ベクトルのそれぞれを列または行として含む行列である。基底ベクトルは、所定の時間間隔での周期的な変化傾向が互いに類似するような、１以上のリソースのそれぞれについての成分データを表すベクトルである。成分データは、例えば、所定の時間間隔単位での成分値の時間変化を示す時系列データである。重み行列は、所定の数の重みベクトルのそれぞれを行または列として含む行列である。重みベクトルは、所定の時間間隔ごとの業務処理の重みを表すベクトルである。業務処理の重みは、例えば、業務処理の業務量に対応する。記憶部１１００は、具体的には、図４〜図１０に示した各種テーブルを記憶する。
【００８０】
記憶部１１００は、例えば、所定の数を記憶する。所定の数は、基底数である。基底数は、基底行列に含まれる基底ベクトルの数を決定する。所定の数は、１以上のリソースの少なくともいずれかを用いて実行される業務処理の数に基づいて設定される。所定の数は、例えば、予め利用者によって業務処理の数と同じ数に設定される。また、所定の数は、ベクトルの次元の数に基づいて設定されてもよい。所定の数は、例えば、自動でベクトルの次元の数と同じ数が設定される。
【００８１】
記憶部１１００は、例えば、所定の時間間隔ごとの１以上のリソースのそれぞれの使用状況を表す指標値の時間変化を示す時系列データをベクトル化するための所定の規則を記憶する。所定の時間間隔は、例えば、日、週、月などである。所定の規則は、いずれの種類のリソースのいずれの時点の使用状況を表す指標値が、ベクトル内のいずれの位置の要素になるかを規定する規則である。
【００８２】
取得部１１０１は、各機能部の処理に用いられる各種情報を取得する。取得部１１０１は、取得した各種情報を、記憶部１１００に記憶し、または、各機能部に出力する。また、取得部１１０１は、記憶部１１００に記憶しておいた各種情報を、各機能部に出力してもよい。取得部１１０１は、例えば、利用者の操作入力に基づき、各種情報を取得する。取得部１１０１は、例えば、情報処理装置１００とは異なる装置から、各種情報を受信してもよい。
【００８３】
取得部１１０１は、例えば、１以上のリソースのそれぞれの使用状況を表す指標値の時間変化を示す時系列データを取得する。取得部１１０１は、具体的には、１以上の業務処理装置２０１から、所定の期間分の、業務処理装置２０１ごとの１以上のリソースのそれぞれの使用状況を表す指標値の時間変化を示す稼働データを収集して纏めることにより、全体の稼働データを取得する。
【００８４】
また、取得部１１０１が、例えば、所定の時間間隔ごとの１以上のリソースのそれぞれの使用状況を表す指標値の時間変化を示す時系列データを取得する場合があってもよい。この場合、取得部１１０１は、具体的には、１日ごとに、１以上の業務処理装置２０１から、１日分の業務処理装置２０１ごとの１以上のリソースのそれぞれの使用状況を表す指標値の時間変化を示す稼働データを収集して纏め、日単位稼働データを取得する。この場合、情報処理装置１００は、分解部１１０２を有さなくてもよい。また、取得部１１０１は、例えば、利用者の操作入力により、所定の数を受け付けてもよい。
【００８５】
分解部１１０２は、取得した時系列データを、所定の時間間隔ごとの時系列データに分割する。分解部１１０２は、例えば、取得した稼働データを１日ごとに分割し、日単位稼働データを取得する。これにより、分解部１１０２は、業務処理の業務量の周期的な変化傾向を活用した非負値行列因子分解を実施可能にするために、取得した時系列データを加工することができる。
【００８６】
統合部１１０３は、取得した時系列データに基づいて、所定の時間間隔ごとの１以上のリソースのそれぞれの使用状況を表す指標値を要素とする所定の時間間隔ごとのベクトルを生成する。統合部１１０３は、例えば、分割した所定の時間間隔ごとの時系列データが示す１以上の指標値を要素とする所定の時間間隔ごとのベクトルを生成する。結合部は、具体的には、所定の規則に従って、日単位稼働データが示す１以上の指標値のそれぞれを、決められた位置の要素として配置することにより、日単位稼働データをベクトル化し、１日ごとのベクトルを生成する。これにより、結合部は、行列の列または行となるベクトルを生成することができる。
【００８７】
抽出部１１０４は、所定の時間間隔ごとのベクトルのそれぞれを列または行として含む行列を生成する。抽出部１１０４は、例えば、各日のベクトルを列として含む稼働データ行列を生成する。これにより、抽出部１１０４は、所定の時間間隔ごとにリソースに関する指標値を纏めて、行列のそれぞれの列または行として処理可能にすることができ、非負値行列因子分解の結果に、業務処理の性質を反映させることができる。このため、抽出部１１０４は、非負値行列因子分解で、業務処理単位のリソースごとの成分データに対応する、所定の時間間隔ごとの周期的な変化傾向が類似するリソースごとの成分データを抽出可能にすることができる。
【００８８】
また、抽出部１１０４は、異なる業務処理装置２０１の異なるリソースに関する指標値を、行列のそれぞれの列または行として統合して処理可能にすることができる。このため、抽出部１１０４は、非負値行列因子分解で、複数のリソースのそれぞれに関する時系列データの中から、同じ業務処理に対応する成分データの組み合わせが特定可能な形式で抽出可能にすることができる。また、抽出部１１０４は、いずれかのリソースについて複数の業務処理による使用傾向が類似する場合に、非負値行列因子分解で、それぞれの業務処理に対応する成分データを分離可能な形式で抽出可能にすることができる。
【００８９】
次に、抽出部１１０４は、生成した行列に対して非負値行列因子分解を実施する。抽出部１１０４は、例えば、稼働データ行列を基底行列と重み行列との積で規定し、非負値行列因子分解を実施する。抽出部１１０４は、非負値行列因子分解の結果、基底行列を生成する。これにより、抽出部１１０４は、業務処理単位のリソースごとの成分データに対応する、周期的な変化傾向が類似するリソースごとの成分データを、基底ベクトルとして抽出することができる。また、抽出部１１０４は、非負値行列因子分解の結果、生成した行列を基底行列との積によって表す重み行列を生成する。これにより、抽出部１１０４は、業務処理単位での業務量の長期的な変化傾向を解析するために有用である情報を生成することができる。
【００９０】
分離部１１０５は、生成した基底行列に含まれる所定の数分の基底ベクトルのそれぞれが表す１以上の成分値を１以上のリソースのそれぞれについて分離する。ここで、例えば、基底行列に含まれる基底ベクトルと、稼働データ行列に含まれるベクトルとの間では、要素の位置に対応関係が存在する。このため、分離部１１０５は、例えば、所定の規則を参照し、基底ベクトルが示す１以上の成分値を、１以上のリソースのそれぞれについて分離する。これにより、分離部１１０５は、業務処理単位のリソースごとの成分データを取得することができる。
【００９１】
分析部１１０６は、生成した重み行列に含まれる所定の数分の重みベクトルのそれぞれに関する情報を生成する。分析部１１０６は、例えば、重みベクトルに基づいて、重みベクトルに含まれる重み係数の時間経過に伴う増加減少傾向を示す情報を生成する。これにより、分析部１１０６は、業務処理単位での業務量の長期的な変化傾向を解析することができる。また、情報処理装置１００が、業務処理単位での業務量の長期的な変化傾向を解析せずに、重みベクトルをそのまま利用者に参照可能にする場合があってもよい。この場合、情報処理装置１００は、分析部１１０６を有さなくてもよい。
【００９２】
出力部１１０７は、いずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークＩ／Ｆ３０３による外部装置への送信、または、メモリ３０２や記録媒体３０５などの記憶領域への記憶である。これにより、出力部１１０７は、各機能部の処理結果を利用者に通知可能にし、情報処理装置１００の利便性の向上を図ることができる。
【００９３】
出力部１１０７は、例えば、所定の数分の基底ベクトルのそれぞれが表す１以上の成分値を１以上のリソースのそれぞれについて分離した結果を出力する。これにより、出力部１１０７は、利用者が、業務処理単位のリソースごとの成分データを参照可能にすることができる。そして、出力部１１０７は、利用者が、業務処理ごとに時系列データを解析しやすくすることができ、業務処理ごとに所定の時間間隔での１以上のリソースそれぞれの使用傾向を解析しやすくすることができる。
【００９４】
出力部１１０７は、例えば、所定の数分の重みベクトルのそれぞれに関する情報を出力する。出力部１１０７は、具体的には、重みベクトルごとに、重みベクトルに対応する基底ベクトルが示す成分データと対応付けて、重みベクトルに含まれる重み係数の時間経過に伴う増加減少傾向を示す情報を出力する。これにより、分析部１１０６は、利用者が、業務処理単位での業務量の長期的な変化傾向を参照可能にすることができる。
【００９５】
出力部１１０７は、例えば、所定の数分の重みベクトルのそれぞれを出力してもよい。これにより、出力部１１０７は、業務処理単位での業務量の長期的な変化傾向を解析するために有用である情報を、利用者に提供することができる。
【００９６】
（情報処理装置１００の実施例）
次に、図１２〜図２０を用いて、情報処理装置１００の実施例について説明する。まず、図１２を用いて、実施例における情報処理装置１００の動作の流れについて説明する。
【００９７】
図１２は、情報処理装置１００の動作の流れを示す説明図である。図１２において、情報処理装置１００は、業務処理装置２０１から、ＣＰＵ使用率やディスクＩＯの時間変化を示す稼働データを取得する。情報処理装置１００は、稼働データから稼働データ行列を生成し、非負値行列因子分解を実施する。情報処理装置１００は、非負値行列因子分解を実施した結果、基底行列および重み行列を生成する。情報処理装置１００は、基底行列から、業務処理単位でのリソースごとの成分データを分離する。また、情報処理装置１００は、重み行列に基づいて、業務処理単位での、業務量の長期的な変化傾向を解析する。そして、情報処理装置１００は、分離結果および解析結果を出力する。
【００９８】
これにより、情報処理装置１００は、利用者が、業務処理単位でのリソースごとの情報を参照可能にすることができ、業務処理単位での業務量の長期的な変化傾向を参照可能にすることができる。結果として、利用者は、業務処理装置２０１のリソースにかかる負荷を考慮して、業務処理装置２０１のリソースの増設、および、業務処理システム２００に含まれる業務処理装置２０１の増設などを検討することができる。
【００９９】
図１２の例では、利用者は、例えば、業務処理単位でのリソースごとの成分データから、日中帯ＣＰＵ利用型業務処理、１１時ピークＣＰＵ利用型業務処理、および、夜間ディスク書込型業務処理が存在することを把握しやすくなる。また、利用者は、日中帯ＣＰＵ利用型業務処理、および、夜間ディスク書込型業務処理の業務量が増加傾向であることを把握することができ、業務処理システム２００に含まれる業務処理装置２０１の増設を検討しやすくなる。
【０１００】
次に、非負値行列因子分解により、業務処理単位に対応する基底ベクトルを列として含む基底行列、および、業務処理単位に対応する重みベクトルを行として含む重み行列が生成される仕組みについて説明する。ここで、業務処理システム２００における業務処理の性質としては、例えば、１以上の業務処理のそれぞれの業務量に基づき、１以上のリソースのそれぞれの使用状況が決定するという性質がある。また、業務処理システム２００における業務処理の性質としては、例えば、業務処理の業務量が、日や週や月などの所定の時間間隔で周期的な変化傾向を示すという性質がある。
【０１０１】
かかる性質によれば、１以上のリソースのそれぞれの使用状況を表す指標値が、１以上の業務処理のそれぞれの業務量に比例するという関係性を利用した負荷モデルを形成可能である。例えば、リソースの使用状況を表す指標値が、１以上の業務処理のそれぞれの業務量に対応するリソースの使用状況を表す指標値を合算した結果に対応するとする負荷モデルを形成可能である。
【０１０２】
また、かかる性質によれば、異なるリソースのそれぞれの使用状況を表す指標値の時間変化を示す時系列データの中で、同じ業務処理に対応する成分データは、所定の時間間隔での周期的な変化傾向が互いに類似するような成分データになる。したがって、負荷モデルに基づき、異なる業務処理装置２０１の異なるリソースに関する指標値を統合して処理可能にし、所定の時間間隔での周期的な変化傾向が互いに類似するようなリソースごとの成分データを纏めて分離可能にすることが望まれる。ここで、図１３および図１４を用いて、負荷モデルの具体的な内容について説明する。
【０１０３】
図１３および図１４は、負荷モデルの具体的な内容を示す説明図である。図１３の例では、業務処理１と業務処理２とが存在し、業務処理装置２０１となるサーバＡのＣＰＵ使用率とディスクＩＯおよび業務処理装置２０１となるサーバＢのＣＰＵ使用率とディスクＩＯを指標値とする場合について説明する。この場合、負荷モデルは、それぞれの指標値が、業務処理１の業務量ａ1および業務処理２の業務量ａ2に比例して決定されると規定するモデルになる。これによれば、負荷モデルは、業務処理１の業務量ａ1および業務処理２の業務量ａ2を基準として、異なるリソースの指標値を統合して処理可能にすることができる。次に、図１４の説明に移行し、負荷モデルを稼働データに適用する場合について説明する。
【０１０４】
図１４に示すように、負荷モデルによれば、１日分の日単位稼働データに対応するベクトルｘjは、それぞれの業務処理についてのリソースごとの基底ベクトルｕiと重み係数ａijとの線形結合により形成される。ｊは、何日目の日単位稼働データであるかを示す値である。このため、１日分の日単位稼働データに対応するベクトルｘjを、基底ベクトルｕiと重みベクトルａi（重み係数ａij）とに分割すれば、それぞれの業務処理についてのリソースごとの情報が得られると考えられる。ベクトルｘjは、数式を用いれば下記式（１）のように表現される。Ｎは、基底数である。
【０１０５】
ｘj＝Σi=1N（ａij×ｕi）                                      ・・・（１）
【０１０６】
上記式（１）を行列形式で表現すると下記式（２）のように表現される。Ｘは、稼働データ行列である。Ｘ＝（ｘ1，ｘ2，・・・）である。Ｕは、基底行列である。Ｕ＝（ｕ1，ｕ2，・・・）である。Ａは、重み行列である。Ａ＝（ａ1，ａ2，・・・）＝（ａij）である。
【０１０７】
Ｘ＝ＵＡ                                                        ・・・（２）
【０１０８】
ここで、下記参考文献２によれば、非負値行列因子分解は、対象とする行列の各ベクトルの頻出成分を抽出する特性を有する。頻出成分は、周期的な変化傾向を示す成分である。このため、稼働データ行列に対して非負値行列因子分解を実施すれば、頻出成分として、周期的な変化傾向を示す成分データを抽出可能になると考えられる。具体的には、頻出成分に対応する、業務処理単位でのリソースごとの成分データが、基底行列の各基底ベクトルとして抽出可能であると考えられる。
【０１０９】
参考文献２  ：  澤田宏．  “非負値行列因子分解  ＮＭＦ  の基礎とデータ／信号解析への応用．”  信学誌  ９５．９  （２０１２）：  ８２９−８３３．
【０１１０】
そこで、情報処理装置１００は、行列形式で表現した上記式（２）に対して非負値行列因子分解を適用し、業務処理単位でのリソースごとの成分データに対応する基底ベクトルを含む基底行列を生成する。非負値行列因子分解については、例えば、上述した参考文献１を参照することができる。参考文献１におけるＳｐａｒｓｅｎｅｓｓ  Ｃｏｎｓｔｒａｉｎｔｓとしては、例えば、Ｌ１ノルムが用いられる。非負値行列因子分解では、具体的には、下記式（３）を最小化する重みＡと基底Ｕを推定することになる。｜｜ｚ｜｜FROは、フロベニウスノルムである。α｜｜Ａ｜｜1およびβ｜｜Ｕ｜｜1の項が、Ｓｐａｒｓｅｎｅｓｓ  Ｃｏｎｓｔｒａｉｎｔｓである。
【０１１１】
（Ａ*，Ｕ*）＝ａｒｇｍｉｎA,U（１／２｜｜Ｘ−ＵＡ｜｜FRO2）＋α｜｜Ａ｜｜1＋β｜｜Ｕ｜｜1                                                  ・・・（３）
【０１１２】
このように、α｜｜Ａ｜｜1およびβ｜｜Ｕ｜｜1の項を用いることにより、重みと基底とが可能な限り０になるよう誘導される。このため、上記式（３）を用いた非負値行列因子分解によれば、業務処理単位でのリソースごとの成分データを、利用者が理解しやすい形式で生成しやすくすることができる。
【０１１３】
そして、情報処理装置１００は、生成した基底行列Ｕの各基底ベクトルｕiを、それぞれの業務処理装置２０１のリソースごとに分離すれば、業務処理単位でのリソースごとの成分データを得ることができる。情報処理装置１００は、例えば、ｕiT＝（ｕACiT，ｕBDiT，・・・，ｕBCiT，ｕBDiT，・・・）から、ｕACiT，ｕBDiT，ｕBCiT，ｕBDiTなどを分離する。ここで、ｕACiTは、サーバＡのＣＰＵ使用率の成分データである。ｕBDiTは、サーバＡのディスクＩＯの成分データである。ｕBCiTは、サーバＢのＣＰＵ使用率の成分データである。ｕBDiTは、サーバＢのディスクＩＯの成分データである。
【０１１４】
このように、情報処理装置１００は、１日ごとにリソースに関する指標値を纏めて、行列のそれぞれの列として処理可能にすることができ、非負値行列因子分解の際に、１日ごとの周期的な変化傾向が類似する頻出成分を抽出させることができる。このため、情報処理装置１００は、非負値行列因子分解で、業務処理単位でのリソースごとの成分データに対応する、１日ごとの周期的な変化傾向が類似するリソースごとの成分データを抽出可能にすることができる。
【０１１５】
また、情報処理装置１００は、異なる業務処理装置２０１の異なるリソースに関する指標値を、行列のそれぞれの列として統合して処理可能にすることができる。このため、情報処理装置１００は、非負値行列因子分解で、１以上のリソースのそれぞれに関する時系列データの中から、同じ業務処理に対応する成分データの組み合わせを特定して抽出することができる。また、情報処理装置１００は、いずれかのリソースについて複数の業務処理による使用傾向が類似し、それぞれの業務処理に対応する成分データが類似する場合に、非負値行列因子分解で、それぞれの業務処理に対応する成分データを分離して抽出することができる。次に、図１５〜図２７の説明に移行し、情報処理装置１００の動作の一例について説明する。
【０１１６】
図１５〜図２７は、情報処理装置１００の動作の一例を示す説明図である。図１５〜図２７の例では、業務処理システム２００に、業務処理装置２０１として、サーバＡＰ０１およびサーバＤＢ０１が含まれる場合について説明する。リソースの指標値は、ＣＰＵ使用率やディスクＩＯである。指標値は、０〜１の間で正規化される。指標値のサンプリング間隔は、例えば、１時間である。１日のサンプリング数は、２４になる。情報処理装置１００は、２０１８／１／１〜２０１８／３／３１までの９０日分に対応する稼働データを取得し、稼働テーブル４００に記憶する。ここで、図１５の説明に移行し、稼働データにおけるリソースごとの指標値の変化傾向について説明する。
【０１１７】
図１５に示すように、稼働データは、曜日ごとに周期性を有する。また、稼働データは、指標値の増加傾向がある。例えば、グラフ群１５０１に示すように、水・金曜以外では、サーバＡＰ０１のＣＰＵ使用率とディスクＩＯとに増加傾向がある。例えば、グラフ群１５０２に示すように、水曜では、サーバＡＰ０１のＣＰＵ使用率とディスクＩＯとに増加傾向がある他、同時刻にサーバＡＰ０１のＣＰＵ使用率とサーバＤＢ０１のディスクＩＯとで共通して負荷が発生する傾向がある。例えば、グラフ群１５０３に示すように、金曜では、サーバＡＰ０１のＣＰＵ使用率とディスクＩＯとに増加傾向がある他、サーバＤＢ０１のディスクＩＯに水曜日と同様の負荷が発生する傾向がある。
【０１１８】
ここで、水曜同時刻に発生したサーバＡＰ０１のＣＰＵ使用率とサーバＤＢ０１のディスクＩＯとの負荷が同じ業務処理に起因するならば、同じ業務処理の成分データとして、それぞれの負荷を包含する成分データを抽出することが好ましい。また、水曜と金曜のサーバＤＢ０１のディスクＩＯの負荷が異なる業務処理に起因するならば、異なる業務処理のディスクＩＯの成分データに、水曜と金曜の負荷を分離して包含するようにすることが好ましい。次に、図１６の説明に移行し、情報処理装置１００の、図１５に示した変化傾向を有する稼働データを用いた動作について説明する。
【０１１９】
図１６において、情報処理装置１００は、稼働テーブル４００に記憶された稼働データを、１日単位に分解し、日単位稼働データを生成する。情報処理装置１００は、例えば、日付「２０１８０１０１」の日単位稼働データ、および、日付「２０１８０１０２」の日単位稼働データなどを生成し、日単位テーブル５００を用いて記憶する。次に、図１７の説明に移行する。
【０１２０】
図１７において、情報処理装置１００は、日単位稼働データをベクトル化する。情報処理装置１００は、例えば、日単位テーブル５００に記憶された日単位稼働データが示す１以上の指標値を、所定の規則に従って、要素として並べてベクトル化し、ベクトルテーブル６００を用いて記憶する。日付「２０１８０１０１」の日単位稼働データは、例えば、ベクトルｘ1としてベクトルテーブル６００に記憶される。日付「２０１８０１０２」の日単位稼働データは、例えば、ベクトルｘ2としてベクトルテーブル６００に記憶される。ベクトルの次元は、９６次元になる。次に、図１８の説明に移行する。
【０１２１】
図１８において、情報処理装置１００は、ベクトルテーブル６００を参照し、９０日の各日に対応するベクトルｘ1，ｘ2，・・・，ｘ90を列とした稼働データ行列Ｘ＝（ｘ1，ｘ2，・・・，ｘ90）を生成する。稼働データ行列Ｘは、９６×９０の行列である。情報処理装置１００は、上記式（３）を利用し、稼働データ行列Ｘに対して非負値行列因子分解を実施し、基底行列Ｕと重み行列Ａとを生成する。上記式（３）のα＝β＝０．０１とする。
【０１２２】
この際、情報処理装置１００は、基底数＝３を予め設定済みであり、基底行列Ｕ＝（ｕ1，ｕ2，ｕ3）と規定する。基底行列Ｕは、９６×３の行列である。また、情報処理装置１００は、重み行列Ａ＝（ａ1，ａ2，ａ3）＝（ａij）と規定する。重み行列Ａは、３×９０の行列である。
【０１２３】
結果として、情報処理装置１００は、グラフ１８０１〜１８０３に示すような基底ベクトルｕ1，ｕ2，ｕ3を含む基底行列Ｕを生成する。また、情報処理装置１００は、グラフ１８１１〜１８１３に示すような重みベクトルａ1，ａ2，ａ3を含む重み行列Ａを生成する。重みベクトルａ1＝（ａ1,1，・・・，ａ1,90）である。重みベクトルａ2＝（ａ2,1，・・・，ａ2,90）である。重みベクトルａ3＝（ａ3,1，・・・，ａ3,90）である。
【０１２４】
ここでは、基底数が予め設定済みである場合について説明したが、これに限らない。例えば、基底数として、稼働データ行列を形成するベクトルの次元数を用いる場合があってもよい。この場合、上記式（３）のα｜｜Ａ｜｜1およびβ｜｜Ｕ｜｜1の項により、業務処理単位の成分データとして好ましくない基底ベクトルにかかる重み係数が０になる傾向がある。このため、情報処理装置１００は、重み係数の和が０になる重みベクトルａiに対応する基底ベクトルｕiを除外することにより、精度よく基底行列Ｕを生成可能である。次に、図１９の説明に移行する。
【０１２５】
図１９において、情報処理装置１００は、生成した基底行列の基底ベクトルを、成分テーブル７００を用いて記憶する。基底ベクトルの次元は、稼働データ行列を形成するベクトルと同様に、９６次元になる。次に、図２０の説明に移行する。
【０１２６】
図２０において、情報処理装置１００は、生成した重み行列の重みベクトルを、重みテーブル８００を用いて記憶する。重みベクトルの次元は、日数に対応し、９０次元になる。次に、図２１の説明に移行する。
【０１２７】
図２１において、情報処理装置１００は、グラフ１８０１〜１８０３に示した基底ベクトルｕ1，ｕ2，ｕ3の成分値を、リソースごとに分離し、リソースごとの成分データを取得する。情報処理装置１００は、基底ベクトルｕ1，ｕ2，ｕ3の成分値を、１日のサンプリング数である２４点の成分値２１１１〜２１１４，２１２１〜２１２４，２１３１〜２１３４ごとに分離し、リソースごとの成分データとして取得する。次に、図２２の説明に移行する。
【０１２８】
図２２において、情報処理装置１００は、分離した結果として、１つの業務処理に対応する、サーバＡＰ０１およびサーバＤＢ０１のそれぞれのＣＰＵ使用率とディスクＩＯとについての成分データ２２１１〜２２１４を取得する。また、情報処理装置１００は、分離した結果として、１つの業務処理に対応する、サーバＡＰ０１およびサーバＤＢ０１のそれぞれのＣＰＵ使用率とディスクＩＯとについての成分データ２２２１〜２２２４を取得する。
【０１２９】
また、情報処理装置１００は、分離した結果として、１つの業務処理に対応する、サーバＡＰ０１およびサーバＤＢ０１のそれぞれのＣＰＵ使用率とディスクＩＯとについての成分データ２２３１〜２２３４を取得する。次に、図２３の説明に移行し、情報処理装置１００が、成分テーブル７００から、どのように成分値をリソースごとに分離するかについて説明する。
【０１３０】
図２３において、情報処理装置１００は、所定の規則に従って、成分テーブル７００から成分値をリソースごとに分離する。例えば、図１７の例で、所定の規則に従って、日単位稼働データが示す１以上の指標値を要素として並べてベクトル化する際、サーバＡＰ０１のＣＰＵ使用率は、ベクトルの１番目〜２４番目までの要素として並べられた。このため、成分テーブル７００から成分値をリソースごとに分離する際、基底ベクトルの１番目〜２４番目までの成分値を、サーバＡＰ０１のＣＰＵ使用率に関する成分値として分離することになる。
【０１３１】
具体的には、成分テーブル７００の成分値群２３０１は、サーバＡＰ０１のＣＰＵ使用率に関する成分値として分離結果テーブル９００に記憶される。また、成分テーブル７００の成分値群２３０２は、サーバＡＰ０１のディスクＩＯに関する成分値として分離結果テーブル９００に記憶される。また、成分テーブル７００の成分値群２３０３は、サーバＤＢ０１のＣＰＵ使用率に関する成分値として分離結果テーブル９００に記憶される。また、成分テーブル７００の成分値群２３０４は、サーバＤＢ０１のディスクＩＯに関する成分値として分離結果テーブル９００に記憶される。この際、稼働データとは異なり、分離結果テーブル９００において日付の情報は存在しなくなる。次に、図２４の説明に移行する。
【０１３２】
図２４において、図１６〜図２３の情報処理装置１００の動作により、好ましい形式で、業務処理単位でリソースごとの成分データが取得されていることについて説明する。
【０１３３】
図１５を用いて上述したように、同時刻に発生したサーバＡＰ０１のＣＰＵ使用率とサーバＤＢ０１のディスクＩＯとのそれぞれの負荷を包含する成分データを、同じ業務処理の成分データとして抽出することが好ましい。これに対し、図２４に示すように、情報処理装置１００は、符号２４０１に示すように、同時刻に発生したサーバＡＰ０１のＣＰＵ使用率とサーバＤＢ０１のディスクＩＯとのそれぞれの負荷を包含する、１つの業務処理に対応する成分データを抽出することができる。
【０１３４】
また、図１５を用いて上述したように、サーバＤＢ０１のディスクＩＯの負荷を、異なる業務処理のディスクＩＯの成分データに分離して包含することが好ましい。これに対し、図２４に示すように、情報処理装置１００は、符号２４０２に示すように、サーバＤＢ０１のディスクＩＯの負荷を、異なる業務処理のディスクＩＯの成分データに分離して包含されるように、成分データを抽出することができる。
【０１３５】
このように、情報処理装置１００は、非負値行列因子分解で、１以上のリソースのそれぞれに関する時系列データの中から、同じ業務処理に対応する成分データの組み合わせを特定して抽出することができる。また、情報処理装置１００は、いずれかのリソースについて複数の業務処理による使用傾向が類似し、それぞれの業務処理に対応する成分データが類似する場合に、非負値行列因子分解で、それぞれの業務処理に対応する成分データを分離して抽出することができる。次に、図２５の説明に移行する。
【０１３６】
図２５において、情報処理装置１００は、グラフ１８１１〜１８１３に示すような重みベクトルａ1，ａ2，ａ3に基づいて、業務処理単位での業務量の長期的な変化傾向を解析する。情報処理装置１００は、例えば、重みベクトルａ1，ａ2，ａ3のそれぞれの重み係数から、閾値以下の重み係数を削除する。情報処理装置１００は、具体的には、重みベクトルａ1，ａ2，ａ3のそれぞれから閾値以下の重み係数を削除した結果、グラフ２５０１〜２５０３に示すような重み係数が残ることになる。次に、図２６の説明に移行する。
【０１３７】
図２６において、情報処理装置１００は、削除後の重み係数に対して線形回帰を実施し、回帰直線を生成し、長期傾向テーブル１０００に記憶する。また、情報処理装置１００は、回帰直線の傾きに基づいて、増加傾向、平坦、減少傾向のいずれかの増加減少傾向を特定し、長期傾向テーブル１０００に記憶する。情報処理装置１００は、例えば、傾き＞閾値であれば、増加傾向を特定する。情報処理装置１００は、例えば、−閾値＜傾き≦閾値であれば、平坦を特定する。情報処理装置１００は、例えば、傾き＜−閾値であれば、減少傾向を特定する。閾値は、例えば、０．００１である。次に、図２７の説明に移行する。
【０１３８】
図２７において、情報処理装置１００は、分離した結果である成分データ２２１１〜２２１４，２２２１〜２２２４，２２３１〜２２３４を、利用者が参照可能なように表示する。また、情報処理装置１００は、成分データ２２１１〜２２１４，２２２１〜２２２４，２２３１〜２２３４のそれぞれに、グラフ２５０１〜２５０３に示した重み係数と、解析結果である増加減少傾向とを対応付けて、利用者が参照可能なように表示する。これにより、利用者は、業務処理装置２０１のリソースにかかる負荷を考慮して、業務処理装置２０１のリソースの増設、および、業務処理システム２００に含まれる業務処理装置２０１の増設などを検討することができる。
【０１３９】
（全体処理手順）
次に、図２８を用いて、情報処理装置１００が実行する、全体処理手順の一例について説明する。全体処理は、例えば、図３に示したＣＰＵ３０１と、メモリ３０２や記録媒体３０５などの記憶領域と、ネットワークＩ／Ｆ３０３とによって実現される。
【０１４０】
図２８は、全体処理手順の一例を示すフローチャートである。図２８において、情報処理装置１００は、開始トリガーを受け付ける（ステップＳ２８０１）。開始トリガーは、例えば、定期的なタイミングで自動的に発生するトリガー、または、利用者の操作入力により発生するトリガーなどである。
【０１４１】
次に、情報処理装置１００は、１以上の業務処理装置２０１のそれぞれの業務処理装置２０１から稼働データを収集する（ステップＳ２８０２）。そして、情報処理装置１００は、収集した複数の稼働データのそれぞれの稼働データを１日単位に分割する（ステップＳ２８０３）。
【０１４２】
次に、情報処理装置１００は、分割した稼働データを１日単位で纏めてベクトル化し、各日のベクトルを、列として並べた稼働データ行列を生成する（ステップＳ２８０４）。そして、情報処理装置１００は、基底数に基づいて、生成した稼働データ行列に対して非負値行列因子分解を実施し、基底行列および重み行列を生成する（ステップＳ２８０５）。
【０１４３】
次に、情報処理装置１００は、基底行列に含まれる、業務処理単位に対応する基底ベクトルに含まれる業務処理単位での１以上の成分値を、リソースごとに分離する（ステップＳ２８０６）。そして、情報処理装置１００は、重み行列に含まれる、業務処理単位に対応する重みベクトルに基づいて、業務処理単位での業務量の長期的な変化傾向を解析する（ステップＳ２８０７）。
【０１４４】
次に、情報処理装置１００は、業務処理単位で、リソースごとに１以上の成分値を分離した結果と、業務量の長期的な変化傾向を解析した結果とを対応付けて出力する（ステップＳ２８０８）。そして、情報処理装置１００は、全体処理を終了する。これにより、情報処理装置１００は、利用者が、業務処理単位で時系列データを解析しやすくし、業務処理単位で業務量の変化傾向を解析しやすくすることができる。
【０１４５】
ここで、情報処理装置１００は、図２８の一部ステップの処理の順序を入れ替えて実行してもよい。例えば、ステップＳ２８０６，Ｓ２８０７の処理の順序が入れ替えられる場合があってもよい。また、情報処理装置１００は、図２８の一部ステップの処理を省略してもよい。例えば、ステップＳ２８０７の処理が省略され、ステップＳ２８０８の処理で解析した結果を出力しない場合があってもよい。
【０１４６】
以上説明したように、情報処理装置によれば、１以上のリソースのそれぞれの使用状況を表す指標値の時間変化を示す時系列データを取得することができる。情報処理装置によれば、取得した時系列データに基づいて、所定の時間間隔ごとの１以上のリソースのそれぞれの使用状況を表す指標値を要素とする所定の時間間隔ごとのベクトルのそれぞれを列または行として含む行列を生成することができる。情報処理装置によれば、生成した行列に対して非負値行列因子分解を実施し、所定の数分の基底ベクトルのそれぞれを列または行として含む基底行列を生成することができる。情報処理装置によれば、生成した基底行列に含まれる所定の数分の基底ベクトルのそれぞれが表す１以上の成分値を１以上のリソースのそれぞれについて分離した結果を出力することができる。これにより、情報処理装置は、業務処理単位での１以上のリソースのそれぞれの情報を出力することができる。結果として、情報処理装置は、利用者が、業務処理ごとに時系列データを解析しやすくすることができ、業務処理ごとに所定の時間間隔での１以上のリソースそれぞれの使用傾向を解析しやすくすることができる。
【０１４７】
情報処理装置によれば、生成した行列に対して非負値行列因子分解を実施し、所定の数分の重みベクトルのそれぞれを行または列として含み、生成した行列を基底行列との積によって表す重み行列を生成することができる。情報処理装置によれば、生成した重み行列に含まれる所定の数分の重みベクトルのそれぞれに関する情報を出力することができる。これにより、情報処理装置は、利用者が、業務処理ごとの業務量の長期的な変化傾向を把握しやすくすることができる。
【０１４８】
情報処理装置によれば、所定の数に、１以上のリソースの少なくともいずれかを用いて実行される業務処理の数に基づいて設定される数を用いることができる。これにより、情報処理装置は、業務処理単位での１以上のリソースのそれぞれに関する情報を精度よく取得可能にし、基底ベクトルの数の低減化により、非負値行列因子分解にかかる処理量の低減化を図ることができる。
【０１４９】
情報処理装置によれば、所定の数に、ベクトルの次元の数に基づいて設定される数を用いることができる。これにより、情報処理装置は、業務処理の数が不明でも、業務処理単位での１以上のリソースのそれぞれに関する情報を精度よく取得することができる。
【０１５０】
情報処理装置によれば、１以上のリソースに、同一の機器における異なる種類のリソースを含むことができる。これにより、情報処理装置は、１つの業務処理が同一の機器における異なる種類のリソースに影響する場合に、１つの業務処理に対応する形式で、同一の機器における異なる種類のリソースのそれぞれの成分データを取得することができる。
【０１５１】
情報処理装置によれば、１以上のリソースに、異なる機器におけるリソースを含むことができる。これにより、情報処理装置は、１つの業務処理が異なる機器におけるリソースに影響する場合に、１つの業務処理に対応する形式で、異なる機器におけるリソースのそれぞれの成分データを取得することができる。
【０１５２】
情報処理装置によれば、取得した時系列データを、所定の時間間隔ごとの時系列データに分割することができる。情報処理装置によれば、分割した所定の時間間隔ごとの時系列データが示す１以上の指標値を要素とする所定の時間間隔ごとのベクトルのそれぞれを列または行として含む行列を生成することができる。これにより、情報処理装置は、業務処理の業務量の周期的な変化傾向を活用した非負値行列因子分解を実施可能にするために、取得した時系列データを加工することができる。このため、情報処理装置は、所定時間間隔ごとに時系列データを取得しなくてもよく、業務処理装置との通信回数の低減化を図ることができる。
【０１５３】
なお、本実施の形態で説明した出力方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した出力プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した出力プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１５４】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１５５】
（付記１）１以上のリソースのそれぞれの使用状況を表す指標値の時間変化を示す時系列データを取得し、
取得した前記時系列データに基づいて、所定の時間間隔ごとの前記１以上のリソースのそれぞれの使用状況を表す指標値を要素とする前記所定の時間間隔ごとのベクトルのそれぞれを列または行として含む行列を生成し、
生成した前記行列に対して非負値行列因子分解を実施し、所定の数分の基底ベクトルのそれぞれを列または行として含む基底行列を生成し、
生成した前記基底行列に含まれる前記所定の数分の基底ベクトルのそれぞれが表す１以上の成分値を前記１以上のリソースのそれぞれについて分離した結果を出力する、
処理をコンピュータに実行させることを特徴とする出力プログラム。
【０１５６】
（付記２）生成した前記行列に対して非負値行列因子分解を実施し、前記所定の数分の重みベクトルのそれぞれを行または列として含み、生成した前記行列を前記基底行列との積によって表す重み行列を生成し、
生成した前記重み行列に含まれる前記所定の数分の重みベクトルのそれぞれに関する情報を出力する、処理を前記コンピュータに実行させることを特徴とする付記１に記載の出力プログラム。
【０１５７】
（付記３）前記所定の数は、前記１以上のリソースの少なくともいずれかを用いて実行される業務処理の数に基づいて設定される、ことを特徴とする付記１または２に記載の出力プログラム。
【０１５８】
（付記４）前記所定の数は、前記ベクトルの次元の数に基づいて設定される、ことを特徴とする付記１〜３のいずれか一つに記載の出力プログラム。
【０１５９】
（付記５）前記１以上のリソースは、同一の機器における異なる種類のリソースを含む、ことを特徴とする付記１〜４のいずれか一つに記載の出力プログラム。
【０１６０】
（付記６）前記１以上のリソースは、異なる機器におけるリソースを含む、ことを特徴とする付記１〜５のいずれか一つに記載の出力プログラム。
【０１６１】
（付記７）取得した前記時系列データを、前記所定の時間間隔ごとの時系列データに分割する、処理を前記コンピュータに実行させ、
前記生成する処理は、分割した前記所定の時間間隔ごとの時系列データが示す１以上の指標値を要素とする前記所定の時間間隔ごとのベクトルのそれぞれを列または行として含む行列を生成する、ことを特徴とする付記１〜６のいずれか一つに記載の出力プログラム。
【０１６２】
（付記８）１以上のリソースのそれぞれの使用状況を表す指標値の時間変化を示す時系列データを取得し、
取得した前記時系列データに基づいて、所定の時間間隔ごとの前記１以上のリソースのそれぞれの使用状況を表す指標値を要素とする前記所定の時間間隔ごとのベクトルのそれぞれを列または行として含む行列を生成し、
生成した前記行列に対して非負値行列因子分解を実施し、所定の数分の基底ベクトルのそれぞれを列または行として含む基底行列を生成し、
生成した前記基底行列に含まれる前記所定の数分の基底ベクトルのそれぞれが表す１以上の成分値を前記１以上のリソースのそれぞれについて分離した結果を出力する、
処理をコンピュータが実行することを特徴とする出力方法。
【符号の説明】
【０１６３】
１００  情報処理装置
２００  業務処理システム
２０１  業務処理装置
２１０  ネットワーク
３００  バス
３０１  ＣＰＵ
３０２  メモリ
３０３  ネットワークＩ／Ｆ
３０４  記録媒体Ｉ／Ｆ
３０５  記録媒体
４００  稼働テーブル
５００  日単位テーブル
６００  ベクトルテーブル
７００  成分テーブル
８００  重みテーブル
９００  分離結果テーブル
１０００  長期傾向テーブル
１１００  記憶部
１１０１  取得部
１１０２  分解部
１１０３  統合部
１１０４  抽出部
１１０５  分離部
１１０６  分析部
１１０７  出力部
１５０１〜１５０３  グラフ群
１８０１〜１８０３，１８１１〜１８１３，２５０１〜２５０３  グラフ
２２１１〜２２１４，２２２１〜２２２４，２２３１〜２２３４  成分データ
２３０１〜２３０４  成分値群
【図１】
2020057327.tif 000003
【図２】
2020057327.tif 000004
【図３】
2020057327.tif 000005
【図４】
2020057327.tif 000006
【図５】
2020057327.tif 000007
【図６】
2020057327.tif 000008
【図７】
2020057327.tif 000009
【図８】
2020057327.tif 000010
【図９】
2020057327.tif 000011
【図１０】
2020057327.tif 000012
【図１１】
2020057327.tif 000013
【図１２】
2020057327.tif 000014
【図１３】
2020057327.tif 000015
【図１４】
2020057327.tif 000016
【図１５】
2020057327.tif 000017
【図１６】
2020057327.tif 000018
【図１７】
2020057327.tif 000019
【図１８】
2020057327.tif 000020
【図１９】
2020057327.tif 000021
【図２０】
2020057327.tif 000022
【図２１】
2020057327.tif 000023
【図２２】
2020057327.tif 000024
【図２３】
2020057327.tif 000025
【図２４】
2020057327.tif 000026
【図２５】
2020057327.tif 000027
【図２６】
2020057327.tif 000028
【図２７】
2020057327.tif 000029
【図２８】
2020057327.tif 000030