(57)【要約】【課題】特定のユーザジョブの性能劣化原因を推定することができるジョブ性能分析システム、ジョブ性能分析方法及びプログラムを提供する。【解決手段】ジョブ性能分析システム１００は、ユーザジョブの実行を制御するユーザジョブ実行管理処理部１１１、ユーザジョブ固有のジョブＩＤを発行するジョブＩＤ発行処理部１３１、１以上の実行サーバ１２１乃至１２３を含み、ユーザジョブ実行管理処理部１１１の指示に応じて、実行サーバ１２１乃至１２３のいずれかがユーザジョブを実行する実行サーバ群１２０、性能データベース１５１を含む。ユーザジョブを実行する実行サーバ実行サーバは、ユーザジョブ実行時の、実行サーバが有する資源の性能を示す性能値を、ユーザジョブのジョブＩＤと関連付けて性能データベース１５１に格納する。【選択図】図１
2015141601.tif 000002
【特許請求の範囲】
【請求項１】
ユーザジョブの実行を制御するユーザジョブ実行管理処理部と、
前記ユーザジョブ固有のジョブＩＤを発行するジョブＩＤ発行処理部と、
１以上の実行サーバを含み、前記ユーザジョブ実行管理処理部の指示に応じて、前記実行サーバのいずれかが前記ユーザジョブを実行する実行サーバ群と、
性能データベースと、を含み、
前記ユーザジョブを実行する前記実行サーバは、前記ユーザジョブ実行時の、前記実行サーバが有する資源の性能を示す性能値を、前記ユーザジョブの前記ジョブＩＤと関連付けて性能データベースに格納する
ジョブ性能分析システム。
【請求項２】
１つの前記ジョブＩＤをキーとして、前記性能データベースから前記性能値を取得する性能データ検索処理部と、
前記性能値と所定の閾値を比較することにより前記性能値の異常を検出し、異常が検出された前記性能値にかかる前記資源を異常箇所として特定する異常箇所発見処理部と、をさらに有する
請求項１記載のジョブ性能分析システム。
【請求項３】
複数の前記ジョブＩＤをキーとして、前記性能データベースから前記性能値を含む複数の情報セットを取得する性能データ検索処理部と、
前記情報セットに含まれる前記性能値を比較することにより前記性能値の異常を検出し、異常が検出された前記性能値にかかる前記資源を異常箇所として特定する異常箇所発見処理部と、をさらに有する
請求項１記載のジョブ性能分析システム。
【請求項４】
複数の前記実行サーバそれぞれについて、前記実行サーバが有する前記資源の性能比を格納した実行サーバ性能比格納テーブルをさらに有し、
前記性能データベースは、前記ユーザジョブを実行した前記実行サーバを、前記ジョブＩＤと関連付けてさらに格納しており、
前記異常箇所発見処理部は、前記性能データベース及び前記実行サーバ性能比格納テーブルを参照し、前記性能値を前記性能比を用いて補正した後、前記性能値の異常を検出する処理を行う
請求項３記載のジョブ性能分析システム。
【請求項５】
前記異常箇所と関連付けて１以上の想定原因を格納した想定原因リストと、
前記想定原因リストを参照し、前記想定原因のいずれかを異常の原因として推定する原因推定処理部をさらに含む
請求項２乃至４いずれか１項記載のジョブ性能分析システム。
【請求項６】
前記想定原因リストは、前記想定原因に対応する危険度をさらに格納しており、
前記原因推定処理部は、前記危険度に基づいて、特定の前記想定原因を異常の原因として推定する
請求項５記載のジョブ性能分析システム。
【請求項７】
ユーザジョブ固有のジョブＩＤを発行するジョブＩＤ発行処理ステップと、
実行サーバ群にユーザジョブの実行を指示するユーザジョブ実行管理処理ステップと、
前記実行サーバ群に含まれる所定の実行サーバが、前記ユーザジョブを実行するステップと、
前記ユーザジョブ実行時の、前記実行サーバが有する資源の性能を示す性能値を、前記ユーザジョブの前記ジョブＩＤと関連付けて性能データベースに格納するステップと、を有する
ジョブ性能分析方法。
【請求項８】
１つの前記ジョブＩＤをキーとして、前記性能データベースから前記性能値を取得する性能データ検索処理ステップと、
前記性能値と所定の閾値を比較することにより前記性能値の異常を検出し、異常が検出された前記性能値にかかる前記資源を異常箇所として特定する異常箇所発見処理ステップと、をさらに有する
請求項７記載のジョブ性能分析方法。
【請求項９】
複数の前記ジョブＩＤをキーとして、前記性能データベースから前記性能値を含む複数の情報セットを取得する性能データ検索処理ステップと、
前記情報セットに含まれる前記性能値を比較することにより前記性能値の異常を検出し、異常が検出された前記性能値にかかる前記資源を異常箇所として特定する異常箇所発見処理ステップと、をさらに有する
請求項７記載のジョブ性能分析方法。
【請求項１０】
請求項７乃至９いずれか１項記載のジョブ性能分析方法を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はジョブ性能分析システム、ジョブ性能分析方法及びプログラムに関し、例えば特定のユーザジョブの性能劣化原因を推定する技術に関する。
【背景技術】
【０００２】
従来より、複数のサーバを含むシステム、典型的にはクラウドシステム上で情報処理を実行することが広く行われている。また、かかる処理の性能を分析し、問題発生時にはその原因を推定する方法が提案されている。
【０００３】
例えば特許文献１は、ＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）システムにおいて実行されるサービスの性能分析方法、及び性能問題発生時の原因（ソフトウェア故障、ハードウェア故障、ネットワーク故障等）推定方法を開示している。具体的には、特許文献１においては、システム管理者がサービスを管理しており、個々のサービスを一意に識別することができる。そして、サーバの性能データやネットワークの性能データを、過去のそれら性能データと比較することで、サービスの性能分析を行うことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−０７２７８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、ユーザが作成したジョブ（以下、ユーザジョブ）を実行するクラウドシステム等、例えばＩａａＳ（Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）やＰａａＳ（Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）等において、ユーザジョブの性能分析を行おうとする場合には、以下のような問題があった。
【０００６】
ユーザジョブは、システム内の単一のサーバで実行される場合だけでなく、複数のサーバで分散実行される場合がある。一方、ジョブの性能分析を行う際には、ジョブの性能データを、サーバ単位で採取する必要がある。そのため、特定のユーザジョブの性能分析を行おうとする際には、サーバ毎に保持されている性能データの中から、所望のユーザジョブを特定して性能データを抽出する必要がある。
【０００７】
ここで、ユーザジョブを特定するためのキーとしては、例えばユーザジョブ名や実行時刻が用いられる。しかし、これらのキーはいずれも重複する可能性があり、所望のユーザジョブの性能データを確実に特定するには不十分であった。
【０００８】
それゆえ、これまでシステム管理者は、所望のユーザジョブの性能データを確実に抽出することができなかった。したがって、従来の方法を適用してユーザジョブの性能分析を行うことができなかった。このため、ユーザジョブの性能劣化を発見することができず、まして性能劣化の原因推定を行うことは困難であった。
【０００９】
本発明は、このような問題点を解決するためになされたものであり、特定のユーザジョブの性能劣化原因を推定することができるジョブ性能分析システム、ジョブ性能分析方法及びプログラムを提供することを目的とする。
【００１０】
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本発明に係るジョブ性能分析システムは、ユーザジョブの実行を制御するユーザジョブ実行管理処理部と、前記ユーザジョブ固有のジョブＩＤを発行するジョブＩＤ発行処理部と、１以上の実行サーバを含み、前記ユーザジョブ実行管理処理部の指示に応じて、前記実行サーバのいずれかが前記ユーザジョブを実行する実行サーバ群と、性能データベースと、を含み、前記ユーザジョブを実行する前記実行サーバは、前記ユーザジョブ実行時の、前記実行サーバが有する資源の性能を示す性能値を、前記ユーザジョブの前記ジョブＩＤと関連付けて性能データベースに格納するものである。
【００１２】
本発明に係るジョブ性能分析方法は、ユーザジョブ固有のジョブＩＤを発行するジョブＩＤ発行処理ステップと、実行サーバ群にユーザジョブの実行を指示するユーザジョブ実行管理処理ステップと、前記実行サーバ群に含まれる所定の実行サーバが、前記ユーザジョブを実行するステップと、前記ユーザジョブ実行時の、前記実行サーバが有する資源の性能を示す性能値を、前記ユーザジョブの前記ジョブＩＤと関連付けて性能データベースに格納するステップと、を有するものである。
【００１３】
本発明に係るプログラムは、上記ジョブ性能分析方法をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１４】
本発明により、特定のユーザジョブの性能劣化原因を推定することができるジョブ性能分析システム、ジョブ性能分析方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態の一構成を示す図である。
【図２】本発明の実施の形態の一構成を示す図である。
【図３】本発明の実施の形態にかかるジョブＩＤ発行処理を示す図である。
【図４】本発明の実施の形態にかかるジョブ実行結果返却時刻格納処理を示す図である。
【図５Ａ】本発明の実施の形態にかかるユーザジョブ性能劣化原因推定処理を示す図である。
【図５Ｂ】本発明の実施の形態にかかるユーザジョブ性能劣化原因推定処理を示す図である。
【図６】本発明の実施の形態における性能データベース１５１の例を示す図である。
【図７】本発明の実施の形態における性能データの例を示す図である。
【図８】本発明の実施の形態における実行サーバ性能比格納テーブル１５２の例を示す図である。
【図９】本発明の実施の形態における想定原因リスト１５３の例を示す図である。
【発明を実施するための形態】
【００１６】
本発明は、ユーザジョブ実行時、ユーザジョブを一意に識別するための識別子（以下、ジョブＩＤ）を発行し、ジョブＩＤと性能データとを関連付けて蓄積しておくことに特徴がある。これにより、特定のユーザジョブの性能データを確実に取得し、性能分析及び性能劣化の原因（ソフトウェア故障、ハードウェア故障、ネットワーク故障など）推定を可能とするものである。
【００１７】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。まず、図１及び図２のブロック図を用いて、本発明の実施の形態にかかるジョブ性能分析システムの構成について説明する。
【００１８】
ジョブ性能分析システム１００は、ユーザが操作する端末装置（以下、単にユーザと称する）及びシステム管理者が操作する端末装置（以下、単にシステム管理者と称する）と、通信ネットワーク等を介して通信可能に接続される。また、ユーザとシステム管理者との間も同様に通信可能に接続される。
【００１９】
ジョブ性能分析システム１００は、システム管理サーバ１１０、実行サーバ群１２０、システム性能監視サーバ１３０、ユーザジョブ性能劣化原因推定システム１４０、記憶装置１５０を含む。
【００２０】
システム管理サーバ１１０は、ユーザジョブ実行管理処理部１１１を有する。ユーザジョブ実行管理処理部１１１は、ユーザから実行依頼されたユーザジョブを入力とし、ユーザジョブの実行結果をユーザに対する出力とする。ユーザジョブ実行管理処理部１１１は、ユーザジョブの実行を実行サーバ群１２０の特定の実行サーバに割り当て、実行サーバから実行結果を受け取って、これを出力する。
【００２１】
実行サーバ群１２０は、ユーザジョブを実行する複数の実行サーバを含む。本実施の形態では、実行サーバ群１２０は実行サーバＡ１２１、実行サーバＢ１２２、実行サーバＣ１２３を含むものとする。
【００２２】
図１におけるシステム管理サーバ１１０及び実行サーバ群１２０は、配下の実行サーバの負荷状況に応じて、ユーザジョブを実行すべき実行サーバを変更する、並列実行型のクラウドシステムを示している。また、図２におけるシステム管理サーバ１１０及び実行サーバ群１２０は、実行サーバＡ１２１と、実行サーバＡ１２１から受け取ったデータを処理する実行サーバＢ１２２と、実行サーバＢ１２２から受け取ったデータを処理し、実行サーバＢ１２２に返却する実行サーバＣ１２３を含む、階層実行型のクラウドシステムを示している。本実施の形態は、いずれの構成のクラウドシステムにも適用可能である。
【００２３】
本実施の形態における実行サーバＡ１２１、実行サーバＢ１２２、実行サーバＣ１２３は、ユーザジョブの実行時、各実行サーバにおける処理資源の性能値（例えばＣＰＵ使用量、メモリ使用量等）や、ユーザジョブの実行開始時刻及び終了時刻等を含む、ユーザジョブ処理に関する性能データを、性能データベース１５１に記録する。
【００２４】
また、ジョブ性能分析システム１００は、システム管理サーバ１１０及び実行サーバ群１２０からなる従来型のクラウドシステムに加え、システム性能監視サーバ１３０及びユーザジョブ性能劣化原因推定システム１４０を有する。
【００２５】
システム性能監視サーバ１３０は、ジョブＩＤ発行処理部１３１、ユーザジョブ実行結果返却時刻格納処理部１３２を有する。
【００２６】
ジョブＩＤ発行処理部１３１は、システム管理サーバ１１０のユーザジョブ実行管理処理部１１１が、ユーザからユーザジョブ実行依頼を受け取った際に発行するジョブ実行通知を受け取り、これを契機として、実行依頼のあったユーザジョブを一意に識別できるジョブＩＤを発行し、ユーザとユーザジョブ実行管理処理部１１１に返却する。ジョブＩＤは、ユーザジョブ実行管理処理部１１１を介して実行サーバ群１２０配下の実行サーバに転送され、最終的には、ユーザジョブが実行された際の性能データと共に後述の性能データベース１５１に格納する。
【００２７】
ユーザジョブ実行結果返却時刻格納処理部１３２は、ユーザジョブのジョブＩＤと、ユーザジョブの実行結果がユーザに返却された時刻とをユーザ端末から取得し、性能データベース１５１に格納する。
【００２８】
ユーザジョブ性能劣化原因推定システム１４０は、ジョブＩＤ受取処理部１４１、性能データ検索処理部１４２、異常箇所発見処理部１４３、原因推定処理部１４４を有する。
【００２９】
ユーザジョブ性能劣化原因推定システム１４０は、システム管理者が、ユーザから受け取ったジョブＩＤを投入することで動作を開始する。ここで投入されるジョブＩＤは、１つであっても２つ以上であっても良い。
【００３０】
ジョブＩＤ受取処理部１４１は、ジョブＩＤの投入を受け付け、受け付けたジョブＩＤを性能データ検索処理部１４２に引き渡す。
【００３１】
性能データ検索処理部１４２は、性能データベース１５１からジョブＩＤに該当する性能データを取得し、異常箇所発見処理部１４３に引き渡す。
【００３２】
異常箇所発見処理部１４３は、投入されたジョブＩＤが２つ以上である場合、それぞれのジョブＩＤに対応する性能データを比較し、その比較結果に基づいて異常箇所（例えばＣＰＵ使用量が多い、ネットワーク転送時間が遅い等）を特定する。投入されたジョブＩＤが１つである場合、あらかじめシステム管理者が設定した閾値を用いて、性能データが閾値を逸脱していないかを判定することで、異常箇所を特定する。異常箇所発見処理部１４３は、異常箇所に係る情報を原因推定処理部１４４に引き渡す。
【００３３】
原因推定処理部１４４は、特定された異常箇所をキーとして、後述の想定原因リスト１５３を参照し、異常の原因を自動的に推定する。
【００３４】
記憶装置１５０は、性能データベース１５１、実行サーバ性能比格納テーブル１５２、想定原因リスト実行サーバ性能比格納テーブル１５３を有する。
【００３５】
性能データベース１５１は、ユーザジョブ処理に関する性能データを格納するための記憶領域である。ジョブＩＤをキーとして、実行サーバにおいてユーザジョブ処理に使用された資源の性能値（例えばＣＰＵ使用量、メモリ使用量等）、ユーザジョブの実行開始時刻及び終了時刻、ユーザへの実行結果返却時刻等を格納し得る。
【００３６】
実行サーバ性能比格納テーブル１５２は、各実行サーバが有する処理資源の性能比を示す指標を格納した記憶領域である。
【００３７】
想定原因リスト１５３は、異常箇所、想定される異常の原因、および原因毎の危険度を関連付けて格納した記憶領域である。異常の原因としては、例えば保守や開発作業（部材の交換、ジョブの更新など）、及びシステム構成等に起因する、資源の競合、ハードウェア故障、ソフトウェアバグ、ネットワーク遅延等があり得る。想定原因リスト１５３では、これらの原因夫々について、保守履歴等に基づいて定義された危険度が付与されている。
【００３８】
つづいて、図３乃至図５のフローチャートを用いて、ジョブ性能分析システム１００の動作について説明する。ジョブ性能分析システム１００は、ジョブＩＤ発行処理（図３）、ジョブ実行結果返却時刻格納処理（図４）、及びユーザジョブ性能劣化原因推定処理（図５Ａ及び図５Ｂ）の３つの機能を実行可能である。以下、これらの機能についてそれぞれ説明する。
【００３９】
（ジョブＩＤ発行処理）
図３は、ジョブＩＤ発行処理に関するフローチャートである。
【００４０】
Ｓ１０１：ユーザは、システム管理サーバ１１０のユーザジョブ実行管理処理部１１１に、ユーザジョブの実行依頼を行う。クラウドシステムに対するユーザジョブの投入方法に関しては、種々の手法が既知であり、ここでは詳細な説明を省略する。これを契機として、ユーザジョブ実行管理処理部１１１は、システム性能監視サーバ１３０のジョブＩＤ発行処理部１３１に対し、ユーザジョブの実行通知を送信する。
【００４１】
Ｓ１０２乃至Ｓ１０３：ジョブＩＤ発行処理部１３１は、ジョブＩＤを発行する。
【００４２】
ジョブＩＤは、典型的には、投入日に基づいた一意の数字とすることができる。また、最新のジョブＩＤが同日に発行されている場合は、発行済みの最新のジョブＩＤに１を足したＩＤを発行することが好ましい。例えば、２０１３年１０月１日に、１つ目のユーザジョブの実行依頼が投入された場合、ジョブＩＤを“１３１００１０００１”とする。次に、同日に２つ目のユーザジョブの実行依頼が投入された場合、ジョブＩＤを“１３１００１０００２”とする。
【００４３】
Ｓ１０４：ジョブＩＤ発行処理部１３１は、発行したジョブＩＤを、ユーザと、ユーザジョブ実行管理処理部１１１と、に通知する。
【００４４】
なお、フローチャートには記載していないが、ユーザジョブ実行管理処理部１１１は、Ｓ１０３の処理の後、ユーザから実行依頼されたユーザジョブの実行を、実行サーバ群１２０に指示する。以降、ユーザジョブは、クラウドシステムにおける既知のジョブ処理手法に従って処理される。すなわち、実行サーバ群１２０は、配下の実行サーバＡ１２１乃至実行サーバＣ１２３のいずれかにユーザジョブの実行を割り当てる。実行サーバ群１２０は、典型的には、上述の並列実行型又は階層実行型の構成を有しており、ユーザジョブは、上記実行型に従って１又は複数の実行サーバに割り当てられる。ユーザジョブの実行が終了すると、実行サーバ群１２０は、ユーザジョブの実行結果を、ジョブＩＤとともにユーザジョブ実行管理処理部１１１に返却する。ユーザジョブ実行管理処理部１１１は、受け取った実行結果及びジョブＩＤを、ユーザに返却する。
【００４５】
また、実行サーバＡ１２１乃至実行サーバＣ１２３は、ユーザジョブの実行時、各実行サーバにおける処理資源の性能値（例えばＣＰＵ使用量、メモリ使用量等）や、ユーザジョブの実行開始時刻及び終了時刻等を含む、ユーザジョブ処理に関する性能データを測定又は取得し、性能データベース１５１に記録する。
【００４６】
（ジョブ実行結果返却時刻格納処理）
図４は、ユーザジョブ実行結果返却時刻格納処理に関するフローチャートである。
【００４７】
Ｓ２０１：システム管理サーバ１１０のユーザジョブ実行管理処理部１１１が、実行サーバ群１２０配下の実行サーバで実行されたユーザジョブの実行結果及びジョブＩＤを、ユーザに返却する。かかる後、システム性能監視サーバ１３０のユーザジョブ実行結果返却時刻格納処理部１３２は、ユーザから、実行結果が返却されたユーザジョブのジョブＩＤと、実行結果が返却された時刻（実行結果返却時刻）と、を取得する。
【００４８】
Ｓ２０２：ユーザジョブ実行結果返却時刻格納処理部１３２は、取得したジョブＩＤと実行結果返却時刻とを紐付けて、記憶装置１５０の性能データベース１５１に格納する。例えば、図６に示す性能データベース１５１には、実行結果返却時刻が「ジョブ実行結果受取時刻」として格納されている。
【００４９】
（ジョブ性能劣化原因推定処理）
図５Ａ及び図５Ｂは、ジョブ性能劣化原因推定処理に関するフローチャートである。
【００５０】
Ｓ３０１：ユーザは、あるユーザジョブについて処理性能に問題が発生している疑いを抱く場合（例えば通常より処理時間に遅延が生じた場合等）、システムに管理者にそのユーザジョブのジョブＩＤを通知する。システム管理者は、ユーザから受信したジョブＩＤを、ユーザジョブ性能劣化原因推定システム１４０のジョブＩＤ受取処理部１４１に投入する。
【００５１】
ジョブＩＤ受取処理部１４１は、１又は複数のジョブＩＤを受け付けることができる。例えば、ユーザが過去にも同一内容のユーザジョブを実行したことがあり、その際はユーザジョブが正常に処理されたというような場合においては、システム管理者は、問題発生が疑われるジョブＩＤとともに、過去に正常動作した際のジョブＩＤを、ジョブＩＤ受取処理部１４１に投入することができる。この場合、ジョブＩＤ受取処理部１４１は、正常動作時のジョブＩＤと、問題発生時のジョブＩＤと、を区別できるよう、適切な入力インターフェイスを備え、かつこれらのジョブＩＤを峻別して管理することが好ましい。
【００５２】
Ｓ３０２乃至Ｓ３０３：ジョブＩＤ受取処理部１４１は、受け取ったジョブＩＤを、性能データ検索処理部１４２に引き渡す。性能データ検索処理部１４２は、受け取ったジョブＩＤをキーとして、記憶装置１５０の性能データベース１５１を検索する。検索に際しては、ハッシュ法など既知の手法を適宜用いることができる。性能データベース１５１内に、ジョブＩＤに紐付けられた性能データが存在する場合、性能データ検索処理部１４２はその性能データを取得する。
【００５３】
一方、性能データが存在しない場合、性能データ検索処理部１４２は、ジョブＩＤが有効なものでなかったものとみなし、処理を終了する。このとき、ジョブＩＤ受取処理部１４１がジョブＩＤ投入の待機状態に遷移しても良い。また、性能データ検索処理部１４２がシステム管理者にエラー通知を行うこととしても良い。
【００５４】
性能データ検索処理部１４２は、取得した性能データを、異常箇所発見処理部１４３に引き渡す。複数のジョブＩＤが投入されている場合は、性能データ検索処理部１４２は、上述の一連の処理を複数のジョブＩＤそれぞれについて実行し、複数の性能データを異常箇所発見処理部１４３に引き渡す。
【００５５】
Ｓ３０４：複数のジョブＩＤが投入されている場合、異常箇所発見処理部１４３は、正常動作時の性能データと、問題発生時の性能データと、を比較する。比較の結果、２つの性能データ間で異常な相関関係を示す資源を発見した場合、異常箇所発見処理部１４３は、かかる資源を異常箇所と判定する。
【００５６】
図６に、性能データベース１５１の一例を示す。この性能データベース１５１には、ジョブＩＤに対応させて、ユーザジョブを実行した実行サーバ（「実行サーバ」）、ユーザジョブ実行管理処理部１１１からユーザジョブ実行指示がなされた時刻（「ジョブ実行命令時刻」）、実行サーバがユーザジョブの実行を開始及び終了した時刻（「ジョブ実行開始時刻」及び「ユーザジョブ実行終了時刻」）、ユーザがユーザジョブ実行管理処理部１１１から実行結果を返却された時刻（「ジョブ実行結果受取時刻））、実行サーバにおいてユーザジョブ実行中に測定された各種処理資源の性能値（「ＣＰＵ使用量」「メモリ使用量」等）が格納されている。
【００５７】
この性能データベース１５１を前提として、ジョブＩＤ受取処理部１４１が、正常動作時のジョブＩＤ“１３１００１０００２”と、問題発生時のジョブＩＤ“１３１００２０００２”と、の２つのジョブＩＤを受け取った場合の、性能データ検索処理部１４２及び異常箇所発見処理部１４３の動作について説明する。
【００５８】
性能データ検索処理部１４２は、正常動作時のジョブＩＤ“１３１００１０００２”及び問題発生時のジョブＩＤ“１３１００２０００２”をキーとして性能データベース１５１を検索し、２つのレコードを取得する（図７）。
【００５９】
Ｓ３０５：異常箇所発見処理部１４３は、図７の複数のレコードを比較する処理を行う。図７の例では、２つのユーザジョブはいずれも同一の実行サーバＡ１２１が実行したジョブであるから、実行サーバ間の性能差を意識する必要はない。
【００６０】
Ｓ３０６乃至Ｓ３０７：なお、比較対象の複数のユーザジョブを実行した実行サーバがそれぞれ異なる場合、異常箇所発見処理部１４３は、図８に示す実行サーバ性能比格納テーブル１５２を参照し、各実行サーバの性能比を、各実行サーバに係る性能データに掛け合わせることで、実行サーバ間の性能差を吸収する。
【００６１】
例えば、実行サーバＡ１２１と実行サーバＢ１２２とのＣＰＵ性能比は１０：８である場合、実行サーバ性能比格納テーブル１５２には、実行サーバＡ１２１の「ＣＰＵ」性能比として“１．０”、実行サーバＢ１２２の「ＣＰＵ」性能比として“０．８”を予め格納しておく。そして、異常箇所発見処理部１４３は、実行サーバＡ１２１で実行されたユーザジョブの「ＣＰＵ使用量」については「ＣＰＵ」性能比“１．０”を乗じる。また、実行サーバＢ１２２で実行されたユーザジョブの「ＣＰＵ使用量」については「ＣＰＵ」性能比“０．８”を乗じる。
【００６２】
なお、各実行サーバの性能比は、事前に全ての実行サーバでテストユーザジョブを実行し、その際の性能データの比に基づいて算出することができる。
【００６３】
Ｓ３０８乃至Ｓ３０９：異常箇所発見処理部１４３は、Ｓ３０５又はＳ３０７で得られた各性能値について比較を行う。ここでは、一例として、図７に示す２つのレコードに含まれる性能値を比較する処理について説明する。
【００６４】
異常箇所発見処理部１４３は、「ＣＰＵ使用量」「メモリ使用量」など、計算資源の稼働状態を直接的に示す性能値については、２つのレコードが含む性能値を互いに比較し、それらの差分が予め設定された閾値を逸脱していないかを判断する。
【００６５】
例えば、図7においては、ジョブＩＤ「１３１００１０００２」の「ＣＰＵ使用量」は“３６０００”であり、ジョブＩＤ「１３１００２０００２」の「ＣＰＵ使用量」は“３７０００”である。また、図示しないが、「ＣＰＵ使用量」について“１０％”の閾値が予め設定されており、任意の記憶領域に保持されているものとする。これは、１０％以内のＣＰＵ稼働率変動については正常動作の範囲内であるものとみなして許容することを示している。この場合、まず、異常箇所発見処理部１４３は、これらの２つのレコードの「ＣＰＵ使用量」の差分１０００を算出する。つぎに、異常箇所発見処理部１４３は、この差分１０００が閾値を超えないか判定する。ここで、正常動作時のジョブＩＤ「１３１００１０００２」の「ＣＰＵ使用量」“３６０００”を基準とすれば、これに閾値“１０％”を乗じた指標は３６００である。異常箇所発見処理部１４３は、閾値に基づいて求めたこの指標と上記差分とを比較し、差分が指標未満であることから、「ＣＰＵ使用量」を正常と判断する。
【００６６】
一方、時刻データなど、計算資源の稼働状態を間接的に示す性能値については、異常箇所発見処理部１４３は、性能値を計算資源の稼働状態を直接的に示す量に一旦変換してから同様の比較を行う。例えば、「ジョブ実行命令時刻」と「ジョブ実行開始時刻」との差を一旦計算することにより、ネットワーク転送時間を算出することができる。これは、ネットワークの状態を直接的に示す量である。同様に、「ジョブ実行終了時刻」と「ジョブ実行結果受取時刻」との差を計算することにより、ネットワーク転送時間を算出可能である。また、「ジョブ実行開始時刻」と「ジョブ実行終了時刻」との差を計算することにより、ジョブ実行時間を算出できる。
【００６７】
例えば、図7においては、ジョブＩＤ「１３１００１０００２」の「ジョブ実行命令時刻」は“０１：０１：２５”、「ジョブ実行開始時刻」は“０１：０１：３０”であり、ジョブＩＤ「１３１００２０００２」の「ジョブ実行命令時刻」は“０１：００：００”、「ジョブ実行開始時刻」は“０１：０２：３０”である。また、「ジョブ実行命令時刻」と「ジョブ実行開始時刻」との差分であるネットワーク転送時間について、“１０％”の閾値が予め設定されているものとする。これは、１０％以内のネットワーク転送時間の変動については正常動作の範囲内であるものとみなして許容することを示している。この場合、まず、異常箇所発見処理部１４３は、これらの２つのレコードそれぞれについて、「ジョブ実行命令時刻」と「ジョブ実行開始時刻」との差分であるネットワーク転送時間を計算する。計算の結果、ジョブＩＤ「１３１００１０００２」のネットワーク転送時間は００：００：０５（５秒）、ジョブＩＤ「１３１００２０００２」のネットワーク転送時間は００：０２：３０（２分３０秒）となる。つぎに、異常箇所発見処理部１４３は、これらの２つのレコードのネットワーク転送時間の差分を００：０２：２５（２分２５秒）と算出する。最後に、異常箇所発見処理部１４３は、この差分００：０２：２５が閾値を超えないか判定する。ここで、正常動作時のジョブＩＤ「１３１００１０００２」のネットワーク転送時間００：００：０５（５秒）を基準とすれば、これに閾値“１０％”を乗じた指標は０．５秒である。異常箇所発見処理部１４３は、閾値に基づいて求めたこの指標と上記差分とを比較し、差分が指標以上であることから、問題発生時のユーザジョブ実行時にネットワーク転送時間に異常が発生したものと判断する。
【００６８】
ここで、上述の例のように閾値が割合等（例えば１０％）によって相対的に定義されている場合、典型的には、正常動作時のレコードを基準として性能値を比較する。すなわち、正常動作時のレコードの性能値に閾値を適用して比較のための指標を算出する。なお、正常動作時のレコードが特定されていない場合、いずれのレコードを基準として性能値を比較するかは任意である。例えば、時間的に古いレコードの性能値を基準として、新しいレコードの性能値が閾値を超えていないかを判定して良い。あるいは、基準とすべきレコードを、システム管理者が任意に指定できるようにしても良い。さらには、例えば先に投入されたレコードを基準とするなど、レコードが投入された順序に基づいて基準レコードを決定しても良い。
【００６９】
異常箇所発見処理部１４３は、異常が認識された性能値に関連する資源を異常箇所として特定する。上述の例では、ネットワーク転送時間に異常が発生していることから、異常箇所発見処理部１４３は、ネットワークを異常箇所と判定する。なお、「ＣＰＵ使用量」又は「メモリ使用量」に異常が認められた場合は、異常箇所発見処理部１４３は、ＣＰＵ又はメモリを異常箇所と判定する。また、ジョブ実行時間に異常が認められた場合、異常箇所発見処理部１４３は、ネットワークを除く演算処理資源を異常箇所と特定する。この場合、より詳細な異常箇所、すなわちＣＰＵ、メモリ、Ｉ／Ｏ等にかかる異常の有無が、他の性能値に基づいて同時に明らかになるであろう。
【００７０】
Ｓ３１０：投入されたジョブＩＤが１つである場合、異常箇所発見処理部１４３は、性能データベース１５１から取得したレコードに含まれる性能値が、予め資源毎に設定された閾値（例えばＣＰＵ使用量やメモリ使用量の上限など）を超える資源が存在するか否か判定する。
【００７１】
Ｓ３１１乃至Ｓ３１２：閾値を超える性能値が存在する場合、異常箇所発見処理部１４３は、その性能値にかかる資源を異常箇所と判定する。一方、閾値を超える性能値が存在しない場合、異常箇所発見処理部１４３は、異常箇所は無いものと判定する。この場合、異常箇所発見処理部１４３は、その旨をシステム管理者に通知することとしても良い。
【００７２】
Ｓ３１３乃至Ｓ３１４：異常箇所発見処理部１４３は、異常箇所と判定された資源を、原因推定処理部１４４に通知する。原因推定処理部１４４は、想定原因リスト１５３を参照して、異常の推定原因を特定し、システム管理者に提示する。
【００７３】
ここで、想定原因リスト１５３には、資源に対応付けて、想定される原因と、その原因の危険度と、が予め格納されているものとする。原因推定処理部１４４は、想定原因リスト１５３から、異常箇所発見処理部１４３から通知された資源に対応付けられている原因のうち、最も危険度の高いものを抽出して、推定原因として特定する。
【００７４】
図９に、想定原因リスト１５３の一例を示す。この想定原因リスト１５３には、資源「ＣＰＵ」について、想定される複数の故障「原因」と、その「危険度」と、が格納されている。
【００７５】
例えば、異常箇所発見処理部１４３が、異常箇所としてＣＰＵを特定した場合、原因推定処理部１４４は、想定原因リスト１５３を参照して、資源「ＣＰＵ」に関連付けられた「原因」を抽出する。原因推定処理部１４４は、抽出された複数の原因のうち、「危険度」が最も高い“７７”であるレコードを特定し、かかるレコードの「原因」“ジョブＡ修正”を、推定原因とする。そして、原因推定処理部１４４は、問題の原因が“ジョブＡ修正”と推定されることをシステム管理者に提示する。
【００７６】
ここで、想定原因リスト１５３は、例えばクラウドシステムの構成図や、ユーザジョブのリビジョン管理履歴等に基づいて、予め作成しておくことができる。また、危険度については、ハードウェアとソフトウェアとの二つの観点に鑑みて、適宜設定することが好ましい。例えば、ハードウェア部品は、部品が古くなるほど異常が発生する可能性が高いため、最新の部品交換日から時間が経過するにしたがって危険度を加算することができる。さらに、ハードウェア部品に障害が起こった場合に、同ロットの他の部品や、製造日時が近い他の部品について、危険度を加算することができる。ソフトウェアについては、プログラムの修正作業を行った場合に異常が発生する可能性が高くなると考えられるため、修正直後に所定の初期値を設定し、ユーザジョブが実行される（すなわち実績を積む）たびに危険度を減算することができる。例えば、修正後の初期値を１００とし、ユーザジョブが実行されるたびに１ずつ危険度を減算する。
【００７７】
本実施の形態においては、ジョブＩＤ発行処理部１３１が、クラウドシステム上において一意にユーザジョブを識別することが出来るジョブＩＤを発行する。また、性能データベース１５１が、このジョブＩＤ毎に、ユーザジョブ実行時の性能データを蓄積する。これにより、ジョブ性能分析システム１００は、ユーザジョブがどの実行サーバで実行されたかに関わりなく、特定のユーザジョブの性能分析を実行することができる。
【００７８】
また、本実施の形態においては、ユーザジョブ性能劣化原因推定システム１４０が、ジョブＩＤをキーとして性能データを抽出し、想定原因リスト１５３を参照して異常原因を推定する。これにより、ジョブ性能分析システム１００は、ユーザジョブの性能劣化時の原因を自動的に推定することができる。
【００７９】
また、本実施の形態においては、実行サーバ性能比格納テーブル１５２が、各実行サーバの資源の性能比を格納する。そして、異常箇所発見処理部１４３が、異なる実行サーバで実行されたユーザジョブの性能データを、上記性能比を用いて補正する。これにより、ジョブ性能分析システム１００は、ユーザジョブが毎度異なる実行サーバで実行されるような場合であっても、実行サーバ間の性能格差を補正して適切に異常箇所を検知することができる。
【００８０】
＜その他の実施の形態＞
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施の形態では、本発明を主にハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００８１】
＜付記＞
本発明は、例えば以下のように記述し得る。
（付記１）
ユーザジョブの実行を制御するユーザジョブ実行管理処理部と、
前記ユーザジョブ固有のジョブＩＤを発行するジョブＩＤ発行処理部１３１と、
１以上の実行サーバを含み、前記ユーザジョブ実行管理処理部の指示に応じて、前記実行サーバのいずれかが前記ユーザジョブを実行する実行サーバ群と、
性能データベースと、を含み、
前記ユーザジョブを実行する前記実行サーバは、前記ユーザジョブ実行時の、前記実行サーバが有する資源の性能を示す性能値を、前記ユーザジョブの前記ジョブＩＤと関連付けて性能データベースに格納する
ジョブ性能分析システム。
（付記２）
１つの前記ジョブＩＤをキーとして、前記性能データベースから前記性能値を取得する性能データ検索処理部と、
前記性能値と所定の閾値を比較することにより前記性能値の異常を検出し、異常が検出された前記性能値にかかる前記資源を異常箇所として特定する異常箇所発見処理部と、をさらに有する
付記１記載のジョブ性能分析システム。
（付記３）
複数の前記ジョブＩＤをキーとして、前記性能データベースから前記性能値を含む複数の情報セットを取得する性能データ検索処理部と、
前記情報セットに含まれる前記性能値を比較することにより前記性能値の異常を検出し、異常が検出された前記性能値にかかる前記資源を異常箇所として特定する異常箇所発見処理部と、をさらに有する
付記１記載のジョブ性能分析システム。
（付記４）
複数の前記実行サーバそれぞれについて、前記実行サーバが有する前記資源の性能比を格納した実行サーバ性能比格納テーブルをさらに有し、
前記性能データベースは、前記ユーザジョブを実行した前記実行サーバを、前記ジョブＩＤと関連付けてさらに格納しており、
前記異常箇所発見処理部は、前記性能データベース及び前記実行サーバ性能比格納テーブルを参照し、前記性能値を前記性能比を用いて補正した後、前記性能値の異常を検出する処理を行う
付記３記載のジョブ性能分析システム。
（付記５）
前記異常箇所と関連付けて１以上の想定原因を格納した想定原因リストと、
前記想定原因リストを参照し、前記想定原因のいずれかを異常の原因として推定する原因推定処理部をさらに含む
付記２乃至４いずれか１項記載のジョブ性能分析システム。
（付記６）
前記想定原因リストは、前記想定原因に対応する危険度をさらに格納しており、
前記原因推定処理部は、前記危険度に基づいて、特定の前記想定原因を異常の原因として推定する
付記５記載のジョブ性能分析システム。
（付記７）
ユーザジョブ固有のジョブＩＤを発行するジョブＩＤ発行処理ステップと、
実行サーバ群にユーザジョブの実行を指示するユーザジョブ実行管理処理ステップと、
前記実行サーバ群に含まれる所定の実行サーバが、前記ユーザジョブを実行するステップと、
前記ユーザジョブ実行時の、前記実行サーバが有する資源の性能を示す性能値を、前記ユーザジョブの前記ジョブＩＤと関連付けて性能データベースに格納するステップと、を有する
ジョブ性能分析方法。
（付記８）
１つの前記ジョブＩＤをキーとして、前記性能データベースから前記性能値を取得する性能データ検索処理ステップと、
前記性能値と所定の閾値を比較することにより前記性能値の異常を検出し、異常が検出された前記性能値にかかる前記資源を異常箇所として特定する異常箇所発見処理ステップと、をさらに有する
付記７記載のジョブ性能分析方法。
（付記９）
複数の前記ジョブＩＤをキーとして、前記性能データベースから前記性能値を含む複数の情報セットを取得する性能データ検索処理ステップと、
前記情報セットに含まれる前記性能値を比較することにより前記性能値の異常を検出し、異常が検出された前記性能値にかかる前記資源を異常箇所として特定する異常箇所発見処理ステップと、をさらに有する
付記７記載のジョブ性能分析方法。
（付記１０）
前記性能データベースに格納するステップでは、ステップ前記ユーザジョブを実行した前記実行サーバを、前記ジョブＩＤと関連付けてさらに格納し、
前記異常箇所発見処理ステップでは、前記性能データベース、及び、複数の前記実行サーバそれぞれについて、前記実行サーバが有する前記資源の性能比を格納した実行サーバ性能比格納テーブルを参照し、前記性能値を前記性能比を用いて補正した後、前記性能値の異常を検出する処理を行う
付記９記載のジョブ性能分析方法。
（付記１１）
前記異常箇所と関連付けて１以上の想定原因を格納した想定原因リストを参照し、前記想定原因のいずれかを異常の原因として推定する原因推定処理ステップをさらに有する
付記８乃至１０いずれか１項記載のジョブ性能分析方法。
（付記１２）
前記想定原因リストは、前記想定原因に対応する危険度をさらに格納しており、
前記原因推定処理ステップでは、前記危険度に基づいて、特定の前記想定原因を異常の原因として推定する
付記１１記載のジョブ性能分析方法。
（付記１３）
付記７乃至１２いずれか１項記載のジョブ性能分析方法を、コンピュータに実行させるためのプログラム。
【符号の説明】
【００８２】
１００  ジョブ性能分析システム
１１０  システム管理サーバ
１１１  ユーザジョブ実行管理処理部
１２０  実行サーバ群
１２１  実行サーバＡ
１２２  実行サーバＢ
１２３  実行サーバＣ
１３０  システム性能監視サーバ
１３１  ジョブＩＤ発行処理部
１３２  ユーザジョブ実行結果返却時刻格納処理部
１４０  ユーザジョブ性能劣化原因推定システム
１４１  ジョブＩＤ受取処理部
１４２  性能データ検索処理部
１４３  異常箇所発見処理部
１４４  原因推定処理部
１５０  記憶装置
１５１  性能データベース
１５２  実行サーバ性能比格納テーブル
１５３  想定原因リスト
【図１】
2015141601.tif 000003
【図２】
2015141601.tif 000004
【図３】
2015141601.tif 000005
【図４】
2015141601.tif 000006
【図５Ａ】
2015141601.tif 000007
【図５Ｂ】
2015141601.tif 000008
【図６】
2015141601.tif 000009
【図７】
2015141601.tif 000010
【図８】
2015141601.tif 000011
【図９】
2015141601.tif 000012