(57)【要約】【課題】障害の原因究明を行うことを可能とする情報処理装置、情報収集プログラム及び情報収集方法を提供する。【解決手段】ファームウエアによって生成される複数のプロセスに関する情報を収集する情報処理装置であって、複数のプロセスのうちの第１プロセスにおける障害の発生を検知した場合、複数のプロセスによる処理負荷の状態を示す負荷情報を記憶した記憶部を参照し、複数のプロセスに、負荷状態が所定の状態である第２プロセスが存在するか否かを判定する負荷判定部と、第２プロセスが存在すると判定した場合、複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、複数のプロセスに対応する動作情報のうち、第１プロセス及び第２プロセスの動作情報を出力する情報出力部と、を有する。【選択図】図４
2019200517.tif 000002
【特許請求の範囲】
【請求項１】
ファームウエアによって生成される複数のプロセスに関する情報を収集する情報処理装置であって、
前記複数のプロセスのうちの第１プロセスにおける障害の発生を検知した場合、前記複数のプロセスによる処理負荷の状態を示す負荷情報を記憶した記憶部を参照し、前記複数のプロセスに、負荷状態が所定の状態である第２プロセスが存在するか否かを判定する負荷判定部と、
前記第２プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第２プロセスの前記動作情報を出力する情報出力部と、を有する、
ことを特徴とする情報処理装置。
【請求項２】
請求項１において、
前記所定の状態は、負荷状態を示す値が閾値以上である状態である、
ことを特徴とする情報処理装置。
【請求項３】
請求項２において、
前記負荷状態を示す値は、前記複数のプロセスが動作するＣＰＵの使用率である、
ことを特徴とする情報処理装置。
【請求項４】
請求項１において、
前記情報処理装置は、前記ファームウエアが動作するコンピュータである、
ことを特徴とする情報処理装置。
【請求項５】
請求項４において、
前記情報出力部は、前記情報処理装置において動作するオペレーティングシステムに対し、前記第１プロセス及び前記第２プロセスの前記動作情報を出力するまで、前記判定する処理において障害の発生が検知された前記第１プロセスの動作を停止させない旨の指示を行う、
ことを特徴とする情報処理装置。
【請求項６】
請求項１において、さらに、
前記第２プロセスが存在しないと判定した場合、前記複数のプロセス間における通信の状態を示す通信情報を記憶した記憶部を参照し、前記複数のプロセスに、前記第１プロセスと通信中である第３プロセスが存在するか否かを判定する通信判定部を有し、
前記情報出力部は、前記第３プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第３プロセスの前記動作情報を出力する、
ことを特徴とする情報処理装置。
【請求項７】
請求項６において、
前記複数のプロセスのそれぞれは、自プロセスと他プロセスとの間において新たな通信を開始した場合、開始した前記新たな通信に関する情報を前記通信情報に追加し、
前記複数のプロセスのそれぞれは、自プロセスと他プロセスとの間において行われていた通信を終了した場合、終了した前記通信に関する情報を前記通信情報から削除する、
ことを特徴とする情報処理装置。
【請求項８】
ファームウエアによって生成される複数のプロセスに関する情報を収集する情報処理装置であって、
前記複数のプロセスのうちの第１プロセスにおける障害の発生を検知した場合、前記複数のプロセス間における通信の状態を示す通信情報を記憶した記憶部を参照し、前記複数のプロセスに、前記第１プロセスと通信中である第３プロセスが存在するか否かを判定する通信判定部と、
前記第３プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第３プロセスの前記動作情報を出力する情報出力部と、を有する、
ことを特徴とする情報処理装置。
【請求項９】
ファームウエアによって生成される複数のプロセスに関する情報を収集する処理をコンピュータに実行させる情報収集プログラムであって、
前記複数のプロセスのうちの第１プロセスにおける障害の発生を検知した場合、前記複数のプロセスによる処理負荷の状態を示す負荷情報を記憶した記憶部を参照し、前記複数のプロセスに、負荷状態が所定の状態である第２プロセスが存在するか否かを判定し、
前記第２プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第２プロセスの前記動作情報を出力する、
処理を前記コンピュータに実行させることを特徴とする情報収集プログラム。
【請求項１０】
ファームウエアによって生成される複数のプロセスに関する情報を収集する処理をコンピュータに実行させる情報収集プログラムであって、
前記複数のプロセスのうちの第１プロセスにおける障害の発生を検知した場合、前記複数のプロセス間における通信の状態を示す通信情報を記憶した記憶部を参照し、前記複数のプロセスに、前記第１プロセスと通信中である第３プロセスが存在するか否かを判定し、
前記第３プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第３プロセスの前記動作情報を出力する、
処理を前記コンピュータに実行させることを特徴とする情報収集プログラム。
【請求項１１】
ファームウエアによって生成される複数のプロセスに関する情報を収集する情報収集方法であって、
前記複数のプロセスのうちの第１プロセスにおける障害の発生を検知した場合、前記複数のプロセスによる処理負荷の状態を示す負荷情報を記憶した記憶部を参照し、前記複数のプロセスに、負荷状態が所定の状態である第２プロセスが存在するか否かを判定し、
前記第２プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第２プロセスの前記動作情報を出力する、
ことを特徴とする情報収集方法。
【請求項１２】
ファームウエアによって生成される複数のプロセスに関する情報を収集する情報収集方法であって、
前記複数のプロセスのうちの第１プロセスにおける障害の発生を検知した場合、前記複数のプロセス間における通信の状態を示す通信情報を記憶した記憶部を参照し、前記複数のプロセスに、前記第１プロセスと通信中である第３プロセスが存在するか否かを判定し、
前記第３プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第３プロセスの前記動作情報を出力する、
ことを特徴とする情報収集方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報収集プログラム及び情報収集方法に関する。
【背景技術】
【０００２】
近年、ＨＰＣ（Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｉｎｇ）等において用いられるファームウエアを搭載する組み込み機器（以下、コントローラとも呼ぶ）は、従来よりも低コストでの製造が要求されている。そのため、このような組み込み機器には、製造コストを抑制する必要性から、各種処理を行うために最低限必要なメモリのみが搭載される場合がある（例えば、特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−００１７５５号公報
【特許文献２】特開２００９−０７５９９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、上記のようなファームウエアによって生成されたプロセスにおいて障害が発生した場合、障害の調査を行う担当者（以下、単に担当者とも呼ぶ）は、例えば、コントローラ内で動作するオペレーティングシステム（以下、ＯＳとも呼ぶ）から出力されるコアダンプを参照することにより、発生した障害の原因究明を行う。
【０００５】
しかしながら、例えば、コントローラに搭載されているメモリの量が不十分であり、コアダンプを保存することができない場合、コントローラ（コントローラで動作するＯＳ）は、コアダンプの生成及び保存を行うことができない。
【０００６】
また、コントローラにおけるコアダンプの生成は、その処理負担からコントローラにおける他の処理の動作に影響を及ぼす場合がある。そのため、例えば、他の処理の動作にリアルタイム性が要求されている場合、コントローラは、十分な量のメモリが搭載されている場合であってもコアダンプの生成を行うことができない。
【０００７】
そのため、担当者は、これらの場合、コアダンプを参照することができず、発生した障害の原因究明を行うことができない。
【０００８】
そこで、一つの側面では、本発明は、障害の原因究明を行うことを可能とする情報処理装置、情報収集プログラム及び情報収集方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
実施の形態の一態様では、ファームウエアによって生成される複数のプロセスに関する情報を収集する情報処理装置は、複数のプロセスのうちの第１プロセスにおける障害の発生を検知した場合、複数のプロセスによる処理負荷の状態を示す負荷情報を記憶した記憶部を参照し、複数のプロセスに、負荷状態が所定の状態である第２プロセスが存在するか否かを判定する負荷判定部と、第２プロセスが存在すると判定した場合、複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、複数のプロセスに対応する動作情報のうち、第１プロセス及び第２プロセスの動作情報を出力する情報出力部と、を有する。
【発明の効果】
【００１０】
一つの側面によれば、障害の原因究明を行うことを可能とする。
【図面の簡単な説明】
【００１１】
【図１】図１は、コントローラ１の構成を説明する図である。
【図２】図２は、コントローラ１におけるハードウエア１３の構成を示す図である。
【図３】図３は、コントローラ１の機能のブロック図である。
【図４】図４は、第１の実施の形態における情報収集処理の概略を説明するフローチャート図である。
【図５】図５は、第１の実施の形態における情報収集処理の概略を説明する図である。
【図６】図６は、第１の実施の形態における情報収集処理の概略を説明する図である。
【図７】図７は、第１の実施の形態における情報収集処理の概略を説明する図である。
【図８】図８は、第１の実施の形態における情報収集処理の詳細を説明するフローチャート図である。
【図９】図９は、第１の実施の形態における情報収集処理の詳細を説明するフローチャート図である。
【図１０】図１０は、第１の実施の形態における情報収集処理の詳細を説明するフローチャート図である。
【図１１】図１１は、第１の実施の形態における情報収集処理の詳細を説明するフローチャート図である。
【図１２】図１２は、第１の実施の形態における情報収集処理の詳細を説明するフローチャート図である。
【図１３】図１３は、第１の実施の形態における情報収集処理の詳細を説明するフローチャート図である。
【図１４】図１４は、第１の実施の形態における情報収集処理の詳細を説明するフローチャート図である。
【図１５】図１５は、退避情報１５１の具体例を説明する図である。
【図１６】図１６は、退避情報１５１の具体例を説明する図である。
【図１７】図１７は、退避情報１５１の具体例を説明する図である。
【図１８】図１８は、退避情報１５１の具体例を説明する図である。
【図１９】図１９は、負荷情報１４１の具体例を説明する図である。
【図２０】図２０は、通信情報１４２の具体例を説明する図である。
【発明を実施するための形態】
【００１２】
［情報処理システムの構成］
図１は、コントローラ１の構成を説明する図である。
【００１３】
図１に示すコントローラ１（以下、情報処理装置１とも呼ぶ）は、物理マシン１００内に取り付けられた組み込み機器である。図１に示すコントローラ１では、ＣＰＵやメモリ等のハードウエア１３と各種プログラムとが有機的に協働することによって、ＯＳ１１やファームウエア１２として動作する。
【００１４】
図１に示すファームウエア１２では、例えば、物理マシン１００のハードウエア（図示しない）の動作を制御するためのプロセスＰＳａ、プロセスＰＳｂ及びプロセスＰＳｃ（以下、これらを総称して単にプロセスＰＳとも呼ぶ）が動作している。そして、各プロセスＰＳは、例えば、物理マシン１００のハードウエアの動作を制御するための各種処理の実行に応じて、その実行状態を示す動作情報１３１を情報格納領域１３０に出力（記憶）する。
【００１５】
ここで、プロセスＰＳａ、プロセスＰＳｂ及びプロセスＰＳｃのうちのいずれかにおいて所定の障害が発生した場合、ＯＳ１１は、障害が発生したプロセスＰＳの強制終了を行う前に、コアダンプの生成を行う。これにより、担当者は、発生した障害の原因究明を行う際に、生成されたコアダンプの参照を行うことが可能になる。
【００１６】
しかしながら、例えば、コントローラ１に搭載されているメモリの量が不十分であり、コアダンプを保存することができない場合、ＯＳ１１は、コアダンプの生成を行うことができない。
【００１７】
また、コントローラ１におけるコアダンプの生成は、膨大な時間を要するため、コントローラ１において実行される他の処理に影響を及ぼす場合がある。したがって、動作のリアルタイム性が要求されている場合、ＯＳ１１は、十分な量のメモリが搭載されている場合であってもコアダンプの生成を行うことができない。
【００１８】
そのため、担当者は、これらの場合、コアダンプを参照することができず、発生した障害の原因究明を行うことができない。
【００１９】
そこで、本実施の形態におけるコントローラ１は、ファームウエア１２によって生成されたプロセスＰＳ（以下、第１プロセスＰＳ１とも呼ぶ）における障害の発生を検知した場合、各プロセスＰＳによる処理負荷の状態を示す負荷情報を記憶した記憶部を参照し、ファームウエア１２によって生成されたプロセスＰＳに、負荷状態が所定の状態であるプロセスＰＳ（以下、第２プロセスＰＳ２）が存在するか否かを判定する。
【００２０】
そして、第２プロセスＰＳ２が存在すると判定した場合、コントローラ１は、各プロセスＰＳの動作状態を示す動作情報１３１を記憶した記憶部を参照し、各プロセスＰＳに対応する動作情報１３１のうち、第１プロセスＰＳ１及ぶ第２プロセスＰＳ２の動作情報１３１を出力する。
【００２１】
すなわち、ファームウエア１２は、第１プロセスＰＳ１における障害の発生を検知した場合、ＯＳ１１によるコアダンプの生成に代わって、ファームウエア１２が定常的に出力している動作情報１３１の一部を収集する。
【００２２】
これにより、コントローラ１は、コアダンプを生成することができない場合であっても、コアダンプに含まれる情報の少なくとも一部に相当する情報である情報を出力することが可能になる。そのため、担当者は、ＯＳ１１がコアダンプを生成できない場合であっても、第１プロセスＰＳ１において発生した障害の原因究明を行うことが可能になる。
【００２３】
また、ファームウエア１２は、例えば、障害が発生した第１プロセスＰＳ１の動作がＯＳ１１によって停止される前に、動作情報１３１の出力を行う。
【００２４】
これにより、コントローラ１は、障害が発生した第１プロセスＰＳ１が動作を停止する前の状態に対応する動作情報１３１を、第１プロセスが動作を停止した後の動作情報１３１等によって上書きされる前に出力することが可能になる。そのため、担当者は、第１プロセスＰＳ１において発生した障害の原因究明を精度良く行うことが可能になる。
【００２５】
さらに、ファームウエア１２は、例えば、ファームウエア１２によって生成されたプロセスＰＳのうち、第１プロセスＰＳ１及び第１プロセスＰＳ１と関連性が高いと判定できる第２プロセスＰＳ２の動作情報１３１の出力を行う。
【００２６】
これにより、コントローラ１は、動作情報１３１の収集を行うために、障害の発生に伴う後続処理の実行を待機させる時間を短縮することが可能になる。そのため、コントローラ１は、動作情報１３１の収集が他の処理に及ぼす影響を抑えることが可能になる。
【００２７】
［コントローラのハードウエア構成］
次に、コントローラ１におけるハードウエア１３の構成について説明する。図２は、コントローラ１におけるハードウエア１３の構成を示す図である。
【００２８】
ハードウエア１３は、プロセッサであるＣＰＵ１０１と、メモリ１０２と、外部インターフェース（Ｉ／Ｏユニット）１０３と、記憶媒体１０４とを有する。各部は、バス１０５を介して互いに接続される。
【００２９】
記憶媒体１０４は、例えば、各プロセスＰＳの動作情報１３１の一部を収集する処理（以下、情報収集処理とも呼ぶ）を行うためのプログラム１１０を記憶するプログラム格納領域（図示しない）を有する。また、記憶媒体１０４は、例えば、情報収集処理を行う際に用いられる情報を記憶する情報格納領域１３０（以下、記憶部１３０とも呼ぶ）、情報格納領域１４０（以下、記憶部１４０とも呼ぶ）及び情報格納領域１５０（以下、記憶部１５０とも呼ぶ）を有する。なお、記憶媒体１０４は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）であってよい。
【００３０】
ＣＰＵ１０１は、記憶媒体１０４からメモリ１０２にロードされたプログラム１１０を実行して情報収集処理を行う。
【００３１】
外部インターフェース１０３は、例えば、図１で説明した物理マシン１００のハードウエア等と通信を行う。
【００３２】
［コントローラの機能］
次に、コントローラ１の機能について説明を行う。図３は、コントローラ１の機能のブロック図である。
【００３３】
コントローラ１は、ＣＰＵ１０１やメモリ１０２等のハードウエア１３とプログラム１１０とが有機的に協働することにより、ファームウエア１２の機能として、情報管理部１１１と、障害検知部１１２と、負荷判定部１１３と、通信判定部１１４と、情報出力部１１５とを含む各種機能を実現する。なお、以下、情報管理部１１１、障害検知部１１２、負荷判定部１１３、通信判定部１１４及び情報出力部１１５を総称して情報収集部１１０とも呼ぶ。
【００３４】
そして、コントローラ１は、図３に示すように、動作情報１３１と、負荷情報１４１と、通信情報１４２と、退避情報１５１とを記憶する。具体的に、コントローラ１は、動作情報１３１を情報格納領域１３０に記憶する。また、コントローラ１は、負荷情報１４１と、通信情報１４２とを情報格納領域１４０に記憶する。さらに、コントローラ１は、退避情報１５１を情報格納領域１５０に記憶する。
【００３５】
情報管理部１１１は、例えば、ファームウエア１２によって生成された各プロセスＰＳが、物理マシン１００のハードウエアの動作を制御するための各種処理を実行するごとに、実行した処理の内容を示す動作情報１３１を生成する。そして、情報管理部１１１は、生成した動作情報１３１を情報格納領域１３０に記憶する。
【００３６】
また、情報管理部１１１は、ファームウエア１２によって生成された各プロセスＰＳの負荷状態を示す負荷情報１４１を生成する。そして、情報管理部１１１は、生成した負荷情報１４１を情報格納領域１４０に記憶する。
【００３７】
さらに、情報管理部１１１は、ファームウエア１２によって生成されたプロセスＰＳ間における通信の状態を示す通信情報１４２を生成する。そして、情報管理部１１１は、生成した通信情報１４２を情報格納領域１４０に記憶する。
【００３８】
障害検知部１１２は、ファームウエア１２によって生成されたプロセスＰＳにおける障害の発生を検知する。具体的に、障害検知部１１２は、障害が発生したプロセスＰＳから、障害が発生したことを示す通知（以下、障害発生通知とも呼ぶ）を受け付けるまで待機する。
【００３９】
負荷判定部１１３は、例えば、障害検知部１１２が障害発生通知を受け付けた場合、負荷情報１３１を記憶した情報格納領域１３０を参照し、ファームウエア１２によって生成されたプロセスＰＳに、負荷状態が所定の状態である第２プロセスＰＳ２が存在するか否かを判定する。具体的に、負荷判定部１１３は、例えば、ＣＰＵ１０１に過半以上の負荷をかけている第２プロセスＰＳ２が存在するか否かを判定する。
【００４０】
通信判定部１１４は、例えば、第２プロセスＰＳ２が存在しないと負荷判定部１１３によって判定された場合、プロセスＰＳ間における通信の状態を示す通信情報１４２を記憶した情報格納領域１３０を参照し、ファームウエア１２によって生成されたプロセスＰＳに、障害が発生したことを障害検知部１１２が検知した第１プロセスＰＳ１と通信中であるプロセスＰＳ（以下、第３プロセスＰＳ３とも呼ぶ）が存在するか否かを判定する。
【００４１】
情報出力部１１５は、例えば、第２プロセスが存在すると負荷判定部１１３によって判定された場合、動作情報１３１を記憶した情報格納領域１３０を参照し、各プロセスＰＳに対応する動作情報１３１のうち、第１プロセスＰＳ１及ぶ第２プロセスＰＳ２の動作情報１３１を出力する。具体的に、情報出力部１１５は、この場合、第１プロセスＰＳ１及ぶ第２プロセスＰＳ２の動作情報１３１を、退避情報１５１として情報格納領域１５０に記憶（退避）する。
【００４２】
また、情報出力部１１５は、例えば、第２プロセスが存在しないと負荷判定部１１３によって判定された場合であって、第３プロセスが存在すると通信判定部１１４によって判定された場合、動作情報１３１を記憶した情報格納領域１３０を参照し、各プロセスＰＳに対応する動作情報１３１のうち、第１プロセスＰＳ１及び第３プロセスＰＳ３の動作情報１３１を出力する。具体的に、情報出力部１１５は、この場合、第１プロセスＰＳ１及ぶ第３プロセスＰＳ３の動作情報１３１を、退避情報１５１として情報格納領域１５０に記憶（退避）する。
【００４３】
［第１の実施の形態の概略］
次に、第１の実施の形態の概略について説明する。図４は、第１の実施の形態における情報収集処理の概略を説明するフローチャート図である。また、図５から図７は、第１の実施の形態における情報収集処理の概略を説明する図である。
【００４４】
ファームウエア１２は、図４に示すように、第１プロセスＰＳ１における障害の発生を検知するまで待機する（Ｓ１のＮＯ）。
【００４５】
そして、第１プロセスＰＳ１における障害の発生を検知した場合（Ｓ１のＹＥＳ）、ファームウエア１２は、複数のプロセスＰＳによる処理負荷の状態を示す負荷情報１４１を記憶した情報格納領域１３０を参照し、複数のプロセスＰＳに、負荷状態が所定の状態である第２プロセスＰＳ２が存在するか否かを判定する（Ｓ２）。
【００４６】
具体的に、ファームウエア１２（情報収集部１１０）は、例えば、図５に示すように、プロセスＰＳａからの障害発生通知を受け付けることによってプロセスＰＳａにおける障害の発生を検知した場合、負荷状態が所定の状態であるプロセスＰＳが存在するか否かを判定する。
【００４７】
その結果、第２プロセスＰＳ２が存在すると判定した場合（Ｓ３のＹＥＳ）、ファームウエア１２は、複数のプロセスＰＳの動作状態を示す動作情報１３１を記憶した情報格納領域１３０を参照し、複数のプロセスＰＳに対応する動作情報１３１のうち、第１プロセスＰＳ１及ぶ第２プロセスＰＳ２の動作情報１３１を出力する（Ｓ４）。
【００４８】
一方、第２プロセスＰＳ２が存在しないと判定した場合（Ｓ３のＮＯ）、ファームウエア１２は、Ｓ４の処理を行わない。
【００４９】
具体的に、例えば、図５に示すように、負荷状態が所定の状態であるプロセスＰＳｃが存在すると判定した場合、ファームウエア１２は、図６に示すように、障害が発生したプロセスＰＳａ及び負荷状態が所定の状態であるプロセスＰＳｃについての動作情報１３１を、退避情報１５１として情報格納領域１５０に退避する。
【００５０】
その後、退避情報１５１の退避が完了した後、ＯＳ１１は、図７に示すように、障害が発生したプロセスＰＳａを終了させる。
【００５１】
すなわち、ファームウエア１２は、第１プロセスＰＳ１における障害の発生を検知した場合、ＯＳ１１によるコアダンプの生成に代わって、ファームウエア１２が定常的に出力している動作情報１３１の一部を収集する。
【００５２】
これにより、コントローラ１は、コアダンプを生成することができない場合であっても、コアダンプに含まれる情報の少なくとも一部に相当する情報である情報を出力することが可能になる。そのため、担当者は、ＯＳ１１がコアダンプを生成できない場合であっても、第１プロセスＰＳ１において発生した障害の原因究明を行うことが可能になる。
【００５３】
また、ファームウエア１２は、例えば、障害が発生した第１プロセスＰＳ１の動作がＯＳ１１によって停止される前に、動作情報１３１の出力を行う。
【００５４】
これにより、コントローラ１は、障害が発生した第１プロセスＰＳ１が動作を停止する前の状態に対応する動作情報１３１を、第１プロセスＰＳ１が動作を停止した後の動作情報１３１によって上書きされる前に出力することが可能になる。そのため、担当者は、第１プロセスＰＳ１において発生した障害の原因究明を精度良く行うことが可能になる。
【００５５】
さらに、ファームウエア１２は、例えば、ファームウエア１２によって生成されたプロセスＰＳのうち、第１プロセスＰＳ１及び第１プロセスＰＳ１と関連性が高いと判定できる第２プロセスＰＳ２の動作情報１３１の出力を行う。
【００５６】
これにより、コントローラ１は、動作情報１３１の収集を行うために、障害の発生に伴う後続処理の実行を待機させる時間を短縮することが可能になる。そのため、コントローラ１は、動作情報１３１の収集が他の処理に及ぼす影響を抑えることが可能になる。
【００５７】
［第１の実施の形態の詳細］
次に、第１の実施の形態の詳細について説明する。図８から図１４は、第１の実施の形態における情報収集処理の詳細を説明するフローチャート図である。また、図１５から図２０は、第１の実施の形態における情報収集処理の詳細を説明する図である。
【００５８】
［負荷情報を参照する場合の情報収集処理］
初めに、負荷情報１４１を参照することによって行われる情報収集処理の詳細について説明を行う。
【００５９】
ファームウエア１２の障害検知部１１２は、図８に示すように、プロセスＰＳのうちのいずれかから障害発生通知を受け付けるまで待機する（Ｓ１１のＮＯ）。
【００６０】
そして、障害発生通知を受け付けた場合（Ｓ１１のＹＥＳ）、障害検知部１１２は、例えば、ＯＳ１１に対し、Ｓ１１の処理で受け付けた障害発生通知を送信したプロセスＰＳ（第１プロセスＰＳ１）を終了させる処理の実行を中止する旨の指示を送信する（Ｓ１２）。
【００６１】
続いて、情報管理部１１１は、例えば、Ｓ１１の処理で受け付けた障害発生通知に含まれるプロセスＩＤを取得する（Ｓ１３）。具体的に、情報管理部１１１は、Ｓ１１の処理で受け付けた障害発生通知を送信したプロセスのプロセスＩＤを取得する。
【００６２】
その後、ファームウエア１２の情報管理部１１１は、情報格納領域１３０に記憶された動作情報１３１のうち、Ｓ１３の処理で取得したプロセスＩＤに対応する情報を特定する（Ｓ１４）。
【００６３】
そして、ファームウエア１２の情報出力部１１５は、Ｓ１４の処理で特定した情報を退避情報１５１として出力（退避）する（Ｓ１５）。具体的に、情報出力部１１５は、情報格納領域１３０に記憶された動作情報１３１のうち、Ｓ１３の処理で取得したプロセスＩＤに対応する情報を、情報格納領域１３０とは異なる領域である情報格納領域１５０に退避する。
【００６４】
すなわち、情報出力部１１５は、ＯＳ１１が障害発生通知を送信したプロセスＰＳを終了する前に、動作情報１３１の退避を行う。
【００６５】
これにより、コントローラ１は、障害が発生したプロセスＰＳ１が動作を停止する前の状態に対応する動作情報１３１を、そのプロセスＰＳが動作を停止した後の動作情報１３１によって上書きされる前に出力することが可能になる。そのため、担当者は、第１プロセスＰＳ１において発生した障害の原因究明を精度良く行うことが可能になる。以下、退避情報１５１（動作情報１３１の一部）の具体例について説明を行う。
【００６６】
［退避情報の具体例］
図１５から図１８は、退避情報１５１の具体例を説明する図である。具体的に、図１５は、障害発生通知を送信したプロセスＰＳの起動に用いられたコマンドラインを示す第１退避情報１５１ａの具体例を説明する図である。また、図１６は、障害発生通知を送信したプロセスＰＳに関連する実行可能ファイル及びライブラリファイルのメモリマップを示す第２退避情報１５１ｂの具体例を説明する図である。また、図１７は、障害発生通知を送信したプロセスＰＳの状態（メモリ１０２の使用状態）を示す第３退避情報１５１ｃの具体例を説明する図である。さらに、図１８は、障害発生通知を送信したプロセスＰＳの待ち状態を示す第４退避情報１５１ｄの具体例を説明する図である。
【００６７】
なお、以下、Ｓ１１の処理において、「プロセス名」が「ＰＳａ」であって「プロセスＩＤ」が「３５１５」であるプロセスＰＳから障害発生通知が送信されたものとして説明を行う。
【００６８】
［第１退避情報の具体例］
初めに、第１退避情報１５１ａの具体例について説明を行う。
【００６９】
図１５に示す第１退避情報１５１ａは、第１退避情報１５１ａに含まれる各情報を識別する「項番」と、障害発生通知を送信したプロセスＰＳの起動に用いられたコマンドラインのファイルパスが設定される「内容」とを項目として有する。
【００７０】
具体的に、図１５に示す第１退避情報１５１ａにおいて、「項番」が「１」である情報には、「内容」として「／ｕｓｅｒ／ｌｏｃａｌ／ｂｉｎ／ＸＸＸＸＸ」が設定されている。
【００７１】
［第２退避情報の具体例］
次に、第２退避情報１５１ｂの具体例について説明を行う。
【００７２】
図１６に示す第２退避情報１５１ｂは、第２退避情報１５１ｂに含まれる各情報を識別する「項番」と、障害発生通知を送信したプロセスＰＳに関連する実行可能ファイル及びライブラリファイルのメモリマップの内容（各ファイルの格納位置やアクセス権等を含む情報）が設定される「内容」とを項目として有する。
【００７３】
具体的に、図１６に示す第２退避情報１５１ｂにおいて、「項番」が「１」である情報には、「内容」として「０８０４８０００−０８０５６０００  ｒ−ｘｐ  ００００００００  ０３：０ｃ  ６４５９３  ／ｕｓｒ／ｓｂｉｎ／ｇｐｍ」が設定され、「項番」が「２」である情報には、「内容」として「０８０５６０００−０８０５８０００  ｒｗ−ｐ  ００００ｄ０００  ０３：０ｃ  ６４５９３  ／ｕｓｒ／ｓｂｉｎ／ｇｐｍ」が設定され、「項番」が「３」である情報には、「内容」として「０８０５８０００−０８０５ｂ０００  ｒｗｘｐ  ００００００００  ００：００  ０」が設定されている。
【００７４】
また、図１６に示す第２退避情報１５１ｂにおいて、「項番」が「４」である情報には、「内容」として「４０００００００−４００１３０００  ｒ−ｘｐ  ００００００００  ０３：０ｃ  ４１６５  ／ｌｉｂ／ｌｄ−２．２．４．ｓｏ」が設定され、「項番」が「５」である情報には、「内容」として「４００１３０００−４００１５０００  ｒｗ−ｐ  ０００１２０００  ０３：０ｃ  ４１６５  ／ｌｉｂ／ｌｄ−２．２．４．ｓｏ」が設定され、「項番」が「６」である情報には、「内容」として「４００１ｆ０００−４０１３５０００  ｒ−ｘｐ  ００００００００  ０３：０ｃ  ４５４９４  ／ｌｉｂ／ｌｄ−２．２．４．ｓｏ」が設定されている。
【００７５】
さらに、図１６に示す第２退避情報１５１ｂにおいて、「項番」が「７」である情報には、「内容」として「４０１３５０００−４０１３ｅ０００  ｒｗ−ｐ  ００１１５０００  ０３：０ｃ  ４５４９４  ／ｌｉｂ／ｌｄ−２．２．４．ｓｏ」が設定され、「項番」が「８」である情報には、「内容」として「４０１３ｅ０００−４０１４２０００  ｒｗ−ｐ  ００００００００  ００：００  ０」が設定されている。図１６に含まれる他の情報についての説明は省略する。
【００７６】
［第３退避情報の具体例］
次に、第３退避情報１５１ｃの具体例について説明を行う。
【００７７】
図１７に示す第３退避情報１５１ｃは、第３退避情報１５１ｃに含まれる各情報を識別する「項番」と、障害発生通知を送信したプロセスＰＳの状態の項目名が設定される「項目名」と、障害発生通知を送信したプロセスＰＳの状態を示す情報が設定される「内容」とを項目として有する。
【００７８】
具体的に、図１７に示す第３退避情報１５１ｃにおいて、「項番」が「１」である情報には、「項目名」として、障害発生通知を送信したプロセスＰＳの現在の動作状態を示す「Ｓｔａｔｅ」が設定され、「内容」として「Ｓｌｅｅｐｉｎｇ」が設定されており、「項番」が「２」である情報には、「項目名」として、障害発生通知を送信したプロセスＰＳのＩＤを示す「Ｔｇｉｄ」が設定され、「内容」として「３５１５」が設定されている。
【００７９】
また、図１７に示す第３退避情報１５１ｃにおいて、「項番」が「３」である情報には、「項目名」として、障害発生通知を送信したプロセスＰＳの親プロセスＰＳのＩＤを示す「ＰＰｉｄ」が設定され、「内容」として「３４５２」が設定されており、「項番」が「４」である情報には、「項目名」として、障害発生通知を送信したプロセスＰＳのトレースを行っているプロセスのＩＤを示す「ＴｒａｃｅｒＰｉｄ」が設定され、「内容」として「０」が設定されている。
【００８０】
さらに、図１７に示す第３退避情報１５１ｃにおいて、「項番」が「５」である情報には、「項目名」として、メモリ１０２における仮想メモリサイズを示す「ＶｍＳｉｚｅ」が設定され、「内容」として「７８９６（ＫＢ）」が設定されており、「項番」が「６」である情報には、「項目名」として、メモリ１０２における実メモリ上に存在するページサイズを示す「ＶｍＲＳＳ」が設定され、「内容」として「６３１６（ＫＢ）」が設定されている。図１７に含まれる他の情報についての説明は省略する。
【００８１】
［第４退避情報の具体例］
次に、第４退避情報１５１ｄの具体例について説明を行う。
【００８２】
図１８に示す第４退避情報１５１ｄは、第４退避情報１５１ｄに含まれる各情報を識別する「項番」と、障害発生通知を送信したプロセスＰＳが発生を待っているイベントを示す情報が設定される「内容」とを項目として有する。
【００８３】
具体的に、図１８に示す第４退避情報１５１ｄにおいて、「項番」が「１」である情報には、「内容」として「ｐｏｌｌ＿ｓｃｈｅｄｕｌｅ＿ｔｉｍｅｏｕｔ」が設定されている。
【００８４】
なお、Ｓ１４の処理において出力される退避情報１５１は、図１５から図１８で説明した情報の他、例えば、障害発生通知を送信したプロセスＰＳに対応するメモリ１０２内のページの内容を示す情報等を含むものであってよい。
【００８５】
図８に戻り、ファームウエア１２の負荷判定部１１３は、ファームウエア１２によって生成された各プロセスＰＳの負荷を示す負荷情報１４１を取得する（Ｓ１６）。具体的に、負荷判定部１１３は、例えば、ＣＰＵ１０１等にアクセスすることによって負荷情報１４１の取得を行う。そして、情報管理部１１１は、例えば、Ｓ１６の処理において負荷判定部１１３が取得した負荷情報１４１を情報格納領域１４０に記憶する。以下、負荷情報１４１の具体例について説明を行う。
【００８６】
［負荷情報の具体例］
次に、負荷情報１４１の具体例について説明を行う。図１９は、負荷情報１４１の具体例を説明する図である。
【００８７】
図１９に示す負荷情報１４１は、負荷情報１４１に含まれる各情報を識別する「項番」と、プロセスＩＤが設定される「プロセスＩＤ」と、「プロセスＩＤ」に対応するプロセスＰＳのプロセス名が設定される「プロセス名」と、「プロセスＩＤ」に対応するプロセスＰＳによるＣＰＵ１０１の使用率が設定される「ＣＰＵ使用率」とを項目として有する。
【００８８】
具体的に、図１９に示す負荷情報１４１において、「項番」が「１」である情報には、「プロセスＩＤ」として「３５１５」が設定され、「プロセス名」として「ＰＳａ」が設定され、「ＣＰＵ使用率」として「１２（％）」が設定されている。
【００８９】
また、図１９に示す負荷情報１４１において、「項番」が「２」である情報には、「プロセスＩＤ」として「３８２１」が設定され、「プロセス名」として「ＰＳｂ」が設定され、「ＣＰＵ使用率」として「５３（％）」が設定されている。図１９に含まれる他の情報についての説明は省略する。
【００９０】
図９に戻り、負荷判定部１１３は、負荷が所定の状態であるプロセスＰＳ（第２プロセスＰＳ２）が存在するか否かを判定する（Ｓ２１）。
【００９１】
具体的に、負荷判定部１１３は、例えば、図１９で説明した負荷情報１４１を参照し、「ＣＰＵ使用率」に「５０（％）」以上の値が設定されている情報が存在するか否かを判定する。
【００９２】
その結果、負荷が所定の状態であるプロセスＰＳが存在すると判定した場合（Ｓ２１のＹＥＳ）、情報管理部１１１は、Ｓ１６の処理で取得した負荷情報１４１を参照し、Ｓ２１の処理で存在すると判定したプロセスＰＳに対応するプロセスＩＤを取得する（Ｓ２２）。
【００９３】
具体的に、図１９で説明した負荷情報１４１において、「プロセスＩＤ」が「３８２１」である情報（「項番」が「２」である情報）の「ＣＰＵ使用率」には、「５３（％）」が設定されている。そのため、情報管理部１１１は、Ｓ２２の処理において、例えば、「３８２１」を取得する。
【００９４】
続いて、情報管理部１１１は、情報格納領域１３０に記憶された動作情報１３１のうち、Ｓ２２の処理で取得したプロセスＩＤに対応する情報を特定する（Ｓ２３）。
【００９５】
すなわち、情報管理部１１１は、Ｓ２２の処理において取得したプロセスＩＤに対応するプロセスＰＳについての退避情報１５１（例えば、図１５から図１８で説明した退避情報１５１と同様の情報）を特定する。
【００９６】
その後、情報出力部１１５は、Ｓ２３の処理で特定した情報を退避情報１５１として出力する（Ｓ２４）。
【００９７】
そして、情報出力部１１５は、例えば、ＯＳ１１に対し、Ｓ１１の処理で受け付けた障害発生通知を送信したプロセスＰＳを終了させる処理の実行を再開する旨の指示を送信する（Ｓ２５）。なお、情報出力部１１５は、Ｓ２１の処理において、負荷が所定の状態であるプロセスＰＳが存在しないと判定した場合についても同様に（Ｓ２１のＮＯ）、Ｓ２５の処理を行う。
【００９８】
すなわち、情報出力部１１５は、例えば、ファームウエア１２によって生成された全てのプロセスＰＳの動作情報１３１ではなく、障害発生通知を送信したプロセスＰＳ（第１プロセスＰＳ１）と、障害発生通知を受け付けた際に高負荷であったプロセスＰＳ（第２プロセスＰＳ２）についての動作情報１３１の出力を行う。
【００９９】
これにより、コントローラ１は、動作情報１３１の収集を行うために、障害の発生に伴う後続処理の実行を待機させる時間を短縮することが可能になる。そのため、コントローラ１は、動作情報１３１の収集が他の処理に及ぼす影響を抑えることが可能になる。
【０１００】
［通信情報を参照する場合の情報収集処理］
次に、通信情報１４２を参照することによって行われる情報収集処理の詳細について説明を行う。
【０１０１】
障害検知部１１２は、図１０に示すように、プロセスＰＳのうちのいずれかから障害発生通知を受け付けるまで待機する（Ｓ３１のＮＯ）。
【０１０２】
そして、障害発生通知を受け付けた場合（Ｓ３１のＹＥＳ）、障害検知部１１２は、例えば、ＯＳ１１に対し、Ｓ３１の処理で受け付けた障害発生通知を送信したプロセスＰＳ（第１プロセスＰＳ１）を終了させる処理の実行を中止する旨の指示を送信する（Ｓ３２）。
【０１０３】
続いて、情報管理部１１１は、例えば、Ｓ３１の処理で受け付けた障害発生通知に含まれるプロセスＩＤを取得する（Ｓ３３）。
【０１０４】
その後、情報管理部１１１は、情報格納領域１３０に記憶された動作情報１３１のうち、Ｓ３３の処理で取得したプロセスＩＤに対応する情報を特定する（Ｓ３４）。
【０１０５】
そして、情報出力部１１５は、Ｓ３４の処理で特定した情報を退避情報１５１として出力（退避）する（Ｓ３５）。
【０１０６】
さらに、ファームウエア１２の通信判定部１１４は、情報格納領域１４０に記憶された通信情報１４２を参照し、Ｓ３３の処理で取得したプロセスＩＤに対応するプロセスＰＳと通信中であるプロセスＰＳが存在するか否かを判定する（Ｓ３６）。
【０１０７】
ここで、通信情報１４２は、例えば、各プロセスＰＳがそれぞれ生成して予め情報格納領域１４０に記憶するものであってよい。
【０１０８】
具体的に、各プロセスＰＳは、例えば、自プロセスＰＳの動作の開始に応じて、自プロセスＰＳのプロセスＩＤ及びプロセス名を含む情報を通信情報１４２として情報格納領域１４０に記憶するものであってよい。また、各プロセスＰＳは、例えば、他のプロセスＰＳとの通信を開始したことに応じて、自プロセスＰＳと通信を開始した他のプロセスＰＳのプロセスＩＤ及びプロセス名を含む情報を通信情報１４２として情報格納領域１４０に記憶するものであってよい。また、各プロセスＰＳは、例えば、他のプロセスＰＳとの通信が終了したことに応じて、自プロセスＰＳとの通信が終了した他のプロセスＰＳのプロセスＩＤ及びプロセス名を含む通信情報１４２を情報格納領域１４０から削除するものであってよい。さらに、各プロセスＰＳは、例えば、自プロセスＰＳの動作の終了に応じて、自プロセスＰＳのプロセスＩＤ及びプロセス名を含む通信情報１４２を情報格納領域１４０から削除するものであってよい。以下、通信情報１４２の具体例について説明を行う。
【０１０９】
［通信情報の具体例］
図２０は、通信情報１４２の具体例を説明する図である。具体的に、図２０は、Ｓ３１の処理で受け付けた障害発生通知を送信したプロセスＰＳが記憶した通信情報１４２の具体例を説明する図である。
【０１１０】
図２０に示す通信情報１４２は、通信情報１４２に含まれる各情報を識別する「項番」と、プロセスＩＤが設定される「プロセスＩＤ」と、「プロセスＩＤ」に対応するプロセスＰＳのプロセス名が設定される「プロセス名」とを項目として有する。
【０１１１】
具体的に、図２０に示す通信情報１４２において、「項番」が「１」である情報には、「プロセスＩＤ」として「３５１５」が設定され、「プロセス名」として「ＰＳａ」が設定されている。また、図２０に示す通信情報１４２において、「項番」が「２」である情報には、「プロセスＩＤ」として「３１５６」が設定され、「プロセス名」として「ＰＳｄ」が設定されている。さらに、図２０に示す通信情報１４２において、「項番」が「３」である情報には、「プロセスＩＤ」として「３０９１」が設定され、「プロセス名」として「ＰＳｆ」が設定されている。
【０１１２】
すなわち、図２０に示す通信情報１４２は、Ｓ３１の処理で受け付けた障害発生通知を送信したプロセスＰＳ（プロセスＩＤが「３５１５」であるプロセスＰＳ）と通信中であったプロセスＰＳのプロセスＩＤが、「３１５６」及び「３０９１」であったことを示している。
【０１１３】
図１１に戻り、通信判定部１１４は、Ｓ３１の処理で受け付けた障害発生通知を送信したプロセスＰＳと通信中であると判定したプロセスＰＳ（第３プロセスＰＳ３）が存在するか否かを判定する（Ｓ４１）。
【０１１４】
その結果、Ｓ３１の処理で受け付けた障害発生通知を送信したプロセスＰＳと通信中であると判定したプロセスＰＳが存在すると判定した場合（Ｓ４１のＹＥＳ）、情報管理部１１１は、情報格納領域１４０に記憶された通信情報１４２を参照し、Ｓ４１の処理で存在すると判定したプロセスＰＳに対応するプロセスＩＤを取得する（Ｓ４２）。
【０１１５】
続いて、情報管理部１１１は、情報格納領域１３０に記憶された動作情報１３１のうち、Ｓ４２の処理で取得したプロセスＩＤに対応する情報を特定する（Ｓ４３）。
【０１１６】
すなわち、情報管理部１１１は、Ｓ４２の処理において取得したプロセスＩＤに対応するプロセスについての退避情報１５１（例えば、図１５から図１８で説明した退避情報１５１と同様の情報）を特定する。
【０１１７】
その後、情報出力部１１５は、Ｓ４３の処理で特定した情報を退避情報１５１として出力する（Ｓ４４）。
【０１１８】
そして、情報出力部１１５は、例えば、ＯＳ１１に対し、Ｓ３１の処理で受け付けた障害発生通知を送信したプロセスＰＳを終了させる処理の実行を再開する旨の指示を送信する（Ｓ４５）。なお、情報出力部１１５は、Ｓ４１の処理において、Ｓ３１の処理で受け付けた障害発生通知を送信したプロセスＰＳと通信中であったと判定したプロセスＰＳが存在しないと判定した場合についても同様に（Ｓ４１のＮＯ）、Ｓ４５の処理を行う。
【０１１９】
すなわち、情報出力部１１５は、ファームウエア１２によって生成された全てのプロセスＰＳの動作情報１３１ではなく、障害発生通知を送信したプロセスＰＳ（第１プロセスＰＳ１）と、障害発生通知を送信したプロセスＰＳと通信を行っていたプロセスＰＳ（第３プロセスＰ３）についての動作情報１３１の出力を行う。
【０１２０】
これにより、コントローラ１は、動作情報１３１の収集を行うために、障害の発生に伴う後続処理の実行を待機させる時間を短縮することが可能になる。そのため、コントローラ１は、動作情報１３１の収集が他の処理に及ぼす影響を抑えることが可能になる。
【０１２１】
［負荷情報及び通信情報を参照する場合の情報収集処理］
次に、負荷情報１４１及び通信情報１４２を参照することによって行われる情報収集処理の詳細について説明を行う。
【０１２２】
障害検知部１１２は、図１２に示すように、プロセスＰＳのうちのいずれかから障害発生通知を受け付けるまで待機する（Ｓ５１のＮＯ）。
【０１２３】
そして、障害発生通知を受け付けた場合（Ｓ５１のＹＥＳ）、障害検知部１１２は、例えば、ＯＳ１１に対し、Ｓ５１の処理で受け付けた障害発生通知を送信したプロセスＰＳ（第１プロセスＰＳ１）を終了させる処理の実行を中止する旨の指示を送信する（Ｓ５２）。
【０１２４】
続いて、情報管理部１１１は、例えば、Ｓ５１の処理で受け付けた障害発生通知に含まれるプロセスＩＤを取得する（Ｓ５３）。
【０１２５】
そして、情報管理部１１１は、情報格納領域１３０に記憶された動作情報１３１のうち、Ｓ５３の処理で取得したプロセスＩＤに対応する情報を特定する（Ｓ５４）。
【０１２６】
その後、ファームウエア１２の情報出力部１１５は、Ｓ１４の処理で特定した情報を退避情報１５１として出力（退避）する（Ｓ５５）。
【０１２７】
次に、負荷判定部１１３は、ファームウエア１２によって生成された各プロセスＰＳの負荷を示す負荷情報１４１を取得する（Ｓ５６）。そして、情報管理部１１１は、例えば、Ｓ５６の処理において負荷判定部１１３が取得した負荷情報１４１を情報格納領域１４０に記憶する。
【０１２８】
その後、負荷判定部１１３は、図１３に示すように、負荷が所定の状態であるプロセスＰＳ（第２プロセスＰＳ２）が存在するか否かを判定する（Ｓ６１）。
【０１２９】
その結果、負荷が所定の状態であるプロセスＰＳが存在すると判定した場合（Ｓ６１のＹＥＳ）、情報管理部１１１は、Ｓ５６の処理で取得した負荷情報１４１を参照し、Ｓ６１の処理で存在すると判定したプロセスＰＳに対応するプロセスＩＤを取得する（Ｓ６２）。
【０１３０】
続いて、情報管理部１１１は、情報格納領域１３０に記憶された動作情報１３１のうち、Ｓ６２の処理で取得したプロセスＩＤに対応する情報を特定する（Ｓ６３）。
【０１３１】
その後、情報出力部１１５は、Ｓ６３の処理で特定した情報を退避情報１５１として出力する（Ｓ６４）。
【０１３２】
そして、情報出力部１１５は、例えば、ＯＳ１１に対し、Ｓ１１の処理で受け付けた障害発生通知を送信したプロセスＰＳを終了させる処理の実行を再開する旨の指示を送信する（Ｓ６５）。
【０１３３】
一方、Ｓ６１の処理において、負荷が所定の状態であるプロセスＰＳが存在しないと判定した場合（Ｓ６１のＮＯ）、通信判定部１１４は、図１４に示すように、Ｓ５１の処理で受け付けた障害発生通知を送信したプロセスＰＳと通信中であったと判定したプロセスＰＳ（第３プロセスＰＳ３）が存在するか否かを判定する（Ｓ７１）。
【０１３４】
その結果、Ｓ５１の処理で受け付けた障害発生通知を送信したプロセスＰＳと通信中であったと判定したプロセスＰＳが存在すると判定した場合（Ｓ７１のＹＥＳ）、情報管理部１１１は、情報格納領域１４０に記憶された通信情報１４２を参照し、Ｓ７１の処理で存在すると判定したプロセスＰＳに対応するプロセスＩＤを取得する（Ｓ７２）。
【０１３５】
続いて、情報管理部１１１は、情報格納領域１３０に記憶された動作情報１３１のうち、Ｓ７２の処理で取得したプロセスＩＤに対応する情報を特定する（Ｓ７３）。
【０１３６】
その後、情報出力部１１５は、Ｓ７３の処理で特定した情報を退避情報１５１として出力する（Ｓ７４）。
【０１３７】
そして、Ｓ７４の処理の後、または、Ｓ７１の処理において障害発生通知を送信したプロセスＰＳと通信中であったと判定したプロセスＰＳが存在しないと判定した場合（Ｓ７１のＮＯ）、情報出力部１１５は、Ｓ６５の処理を行う。
【０１３８】
すなわち、情報出力部１１５は、Ｓ７５の処理において、障害発生通知を受け付けた際に高負荷であったプロセスＰＳについての動作情報１３１と、障害発生通知を送信したプロセスＰＳと通信を行っていたプロセスＰＳについての動作情報１３１とのうち、発生した障害の原因究明を行う際により有効であると判断できる情報の出力を行う。
【０１３９】
これにより、コントローラ１は、動作情報１３１の収集を行うために、障害の発生に伴う後続処理の実行を待機させる時間を短縮しながら、発生した障害の原因究明を行うために有用な情報の出力を行うことが可能になる。
【０１４０】
このように、本実施の形態におけるコントローラ１は、ファームウエア１２によって生成された第１プロセスＰＳ１における障害の発生を検知した場合、各プロセスＰＳによる処理負荷の状態を示す負荷情報１４１を記憶した情報格納領域１４０を参照し、ファームウエア１２によって生成されたプロセスＰＳに、負荷状態が所定の状態である第２プロセスＰＳ２が存在するか否かを判定する。
【０１４１】
そして、第２プロセスＰＳ２が存在すると判定した場合、コントローラ１は、各プロセスＰＳの動作状態を示す動作情報１３１を記憶した情報格納領域１３０を参照し、各プロセスＰＳに対応する動作情報１３１のうち、第１プロセスＰＳ１及ぶ第２プロセスＰＳ２の動作情報１３１を出力する。
【０１４２】
すなわち、ファームウエア１２は、第１プロセスＰＳ１における障害の発生を検知した場合、ＯＳ１１によるコアダンプの生成に代わって、ファームウエア１２が定常的に出力している動作情報１３１の一部を収集する。
【０１４３】
これにより、コントローラ１は、コアダンプを生成することができない場合であっても、コアダンプに含まれる情報の少なくとも一部に相当する情報である情報を出力することが可能になる。そのため、担当者は、ＯＳ１１がコアダンプを生成できない場合であっても、第１プロセスＰＳ１において発生した障害の原因究明を行うことが可能になる。
【０１４４】
また、ファームウエア１２は、例えば、障害が発生した第１プロセスＰＳ１の動作がＯＳ１１によって停止される前に、動作情報１３１の出力を行う。
【０１４５】
これにより、コントローラ１は、障害が発生した第１プロセスＰＳ１が動作を停止する前の状態に対応する動作情報１３１を、第１プロセスＰＳ１が動作を停止した後の動作情報１３１によって上書きされる前に出力することが可能になる。そのため、担当者は、第１プロセスＰＳ１において発生した障害の原因究明を精度良く行うことが可能になる。
【０１４６】
さらに、ファームウエア１２は、例えば、ファームウエア１２によって生成されたプロセスＰＳのうち、第１プロセスＰＳ１及び第１プロセスＰＳ１と関連性が高いと判定できる第２プロセスＰＳ２の動作情報１３１のみの出力を行う。
【０１４７】
これにより、コントローラ１は、動作情報１３１の収集を行うために、障害の発生に伴う後続処理の実行を待機させる時間を短縮することが可能になる。そのため、コントローラ１は、動作情報１３１の収集が他の処理に及ぼす影響を抑えることが可能になる。
【０１４８】
なお、コントローラ１は、第１プロセスＰＳ１における障害の発生を検知した場合、各プロセスＰＳに対応する動作情報１３１のうち、第１プロセスＰＳ１の動作情報１３１を出力するものであってもよい。すなわち、コントローラ１は、第１プロセスＰＳ１における障害の発生を検知した場合であっても、第２プロセスＰＳ２の動作情報１３１の出力を行わないものであってもよい。
【０１４９】
これにより、コントローラは、障害の発生に伴う後続処理の実行を待機させる時間をより短縮することが可能になる。
【０１５０】
以上の実施の形態をまとめると、以下の付記のとおりである。
【０１５１】
（付記１）
ファームウエアによって生成される複数のプロセスに関する情報を収集する情報処理装置であって、
前記複数のプロセスのうちの第１プロセスにおける障害の発生を検知した場合、前記複数のプロセスによる処理負荷の状態を示す負荷情報を記憶した記憶部を参照し、前記複数のプロセスに、負荷状態が所定の状態である第２プロセスが存在するか否かを判定する負荷判定部と、
前記第２プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第２プロセスの前記動作情報を出力する情報出力部と、を有する、
ことを特徴とする情報処理装置。
【０１５２】
（付記２）
付記１において、
前記所定の状態は、負荷状態を示す値が閾値以上である状態である、
ことを特徴とする情報処理装置。
【０１５３】
（付記３）
付記２において、
前記負荷状態を示す値は、前記複数のプロセスが動作するＣＰＵの使用率である、
ことを特徴とする情報処理装置。
【０１５４】
（付記４）
付記１において、
前記情報処理装置は、前記ファームウエアが動作するコンピュータである、
ことを特徴とする情報処理装置。
【０１５５】
（付記５）
付記４において、
前記情報出力部は、前記情報処理装置において動作するオペレーティングシステムに対し、前記第１プロセス及び前記第２プロセスの前記動作情報を出力するまで、前記判定する処理において障害の発生が検知された前記第１プロセスの動作を停止させない旨の指示を行う、
ことを特徴とする情報処理装置。
【０１５６】
（付記６）
付記１において、さらに、
前記第２プロセスが存在しないと判定した場合、前記複数のプロセス間における通信の状態を示す通信情報を記憶した記憶部を参照し、前記複数のプロセスに、前記第１プロセスと通信中である第３プロセスが存在するか否かを判定する通信判定部を有し、
前記情報出力部は、前記第３プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第３プロセスの前記動作情報を出力する、
ことを特徴とする情報処理装置。
【０１５７】
（付記７）
付記６において、
前記複数のプロセスのそれぞれは、自プロセスと他プロセスとの間において新たな通信を開始した場合、開始した前記新たな通信に関する情報を前記通信情報に追加し、
前記複数のプロセスのそれぞれは、自プロセスと他プロセスとの間において行われていた通信を終了した場合、終了した前記通信に関する情報を前記通信情報から削除する、
ことを特徴とする情報処理装置。
【０１５８】
（付記８）
ファームウエアによって生成される複数のプロセスに関する情報を収集する情報処理装置であって、
前記複数のプロセスのうちの第１プロセスにおける障害の発生を検知した場合、前記複数のプロセス間における通信の状態を示す通信情報を記憶した記憶部を参照し、前記複数のプロセスに、前記第１プロセスと通信中である第３プロセスが存在するか否かを判定する通信判定部と、
前記第３プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第３プロセスの前記動作情報を出力する情報出力部と、を有する、
ことを特徴とする情報処理装置。
【０１５９】
（付記９）
ファームウエアによって生成される複数のプロセスに関する情報を収集する処理をコンピュータに実行させる情報収集プログラムであって、
前記複数のプロセスのうちの第１プロセスにおける障害の発生を検知した場合、前記複数のプロセスによる処理負荷の状態を示す負荷情報を記憶した記憶部を参照し、前記複数のプロセスに、負荷状態が所定の状態である第２プロセスが存在するか否かを判定し、
前記第２プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第２プロセスの前記動作情報を出力する、
処理を前記コンピュータに実行させることを特徴とする情報収集プログラム。
【０１６０】
（付記１０）
付記９において、さらに、
前記第２プロセスが存在しないと判定した場合、前記複数のプロセス間における通信の状態を示す通信情報を記憶した記憶部を参照し、前記複数のプロセスに、前記第１プロセスと通信中である第３プロセスが存在するか否かを判定する、
処理を前記コンピュータに実行させ、
前記出力する処理では、前記第３プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第３プロセスの前記動作情報を出力する、
ことを特徴とする情報収集プログラム。
【０１６１】
（付記１１）
ファームウエアによって生成される複数のプロセスに関する情報を収集する処理をコンピュータに実行させる情報収集プログラムであって、
前記複数のプロセスのうちの第１プロセスにおける障害の発生を検知した場合、前記複数のプロセス間における通信の状態を示す通信情報を記憶した記憶部を参照し、前記複数のプロセスに、前記第１プロセスと通信中である第３プロセスが存在するか否かを判定し、
前記第３プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第３プロセスの前記動作情報を出力する、
処理を前記コンピュータに実行させることを特徴とする情報収集プログラム。
【０１６２】
（付記１２）
ファームウエアによって生成される複数のプロセスに関する情報を収集する情報収集方法であって、
前記複数のプロセスのうちの第１プロセスにおける障害の発生を検知した場合、前記複数のプロセスによる処理負荷の状態を示す負荷情報を記憶した記憶部を参照し、前記複数のプロセスに、負荷状態が所定の状態である第２プロセスが存在するか否かを判定し、
前記第２プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第２プロセスの前記動作情報を出力する、
ことを特徴とする情報収集方法。
【０１６３】
（付記１３）
付記１２において、さらに、
前記第２プロセスが存在しないと判定した場合、前記複数のプロセス間における通信の状態を示す通信情報を記憶した記憶部を参照し、前記複数のプロセスに、前記第１プロセスと通信中である第３プロセスが存在するか否かを判定し、
前記出力する工程では、前記第３プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第３プロセスの前記動作情報を出力する、
ことを特徴とする情報収集方法。
【０１６４】
（付記１４）
ファームウエアによって生成される複数のプロセスに関する情報を収集する情報収集方法であって、
前記複数のプロセスのうちの第１プロセスにおける障害の発生を検知した場合、前記複数のプロセス間における通信の状態を示す通信情報を記憶した記憶部を参照し、前記複数のプロセスに、前記第１プロセスと通信中である第３プロセスが存在するか否かを判定し、
前記第３プロセスが存在すると判定した場合、前記複数のプロセスの動作状態を示す動作情報を記憶した記憶部を参照し、前記複数のプロセスに対応する前記動作情報のうち、前記第１プロセス及び前記第３プロセスの前記動作情報を出力する、
ことを特徴とする情報収集方法。
【符号の説明】
【０１６５】
１：コントローラ            １１：ＯＳ
１２：ファームウエア        １３：ハードウエア
１３０：情報格納領域        １３１：動作情報
ＰＳａ：プロセス            ＰＳｂ：プロセス
ＰＳｃ：プロセス
【図１】
2019200517.tif 000003
【図２】
2019200517.tif 000004
【図３】
2019200517.tif 000005
【図４】
2019200517.tif 000006
【図５】
2019200517.tif 000007
【図６】
2019200517.tif 000008
【図７】
2019200517.tif 000009
【図８】
2019200517.tif 000010
【図９】
2019200517.tif 000011
【図１０】
2019200517.tif 000012
【図１１】
2019200517.tif 000013
【図１２】
2019200517.tif 000014
【図１３】
2019200517.tif 000015
【図１４】
2019200517.tif 000016
【図１５】
2019200517.tif 000017
【図１６】
2019200517.tif 000018
【図１７】
2019200517.tif 000019
【図１８】
2019200517.tif 000020
【図１９】
2019200517.tif 000021
【図２０】
2019200517.tif 000022