(57)【要約】      （修正有）【課題】カーネルパニック発生時に、限られた容量の記憶領域上に有益な情報を残すことが可能な情報処理装置を提供する。【解決手段】情報処理装置１は、カーネルに異常が発生した場合に、第１メモリ１１に格納されているデータをダンプファイルとして第２メモリ１２に出力する出力部２１と、第２メモリに２以上の同じ種類のダンプファイルがあるか否かの判断を行う判断部２２と、同じ種類のダンプファイルの出力回数をカウントするカウント部２３と、第２メモリの空き容量が所定値を下回った場合、出力回数に応じて、第２メモリに格納されたダンプファイルのうち削除するダンプファイルを決定する決定部２４と、決定部が決定したダンプファイルを削除する削除部２５と、を備える。【選択図】図１
2020140529.tif 000002
【特許請求の範囲】
【請求項１】
第１記憶部と、
第２記憶部と、
前記第１記憶部に格納されているデータをダンプ情報として前記第２記憶部に出力する出力部と、
所定条件が成立したときに、前記第２記憶部への出力回数に基づいて削除対象とされたダンプ情報を前記第２記憶部から削除する削除部と、
を備えることを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記削除部は、カーネルに異常が発生した場合、前記出力回数に基づいて削除対象とされたダンプ情報を前記第２記憶部から削除することを特徴とする情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置において、
前記削除部は、前記第２記憶部の空き容量が所定値を下回った場合、前記出力回数に基づいて削除対象とされたダンプ情報を前記第２記憶部から削除することを特徴とする情報処理装置。
【請求項４】
請求項２又は３に記載の情報処理装置において、
前記削除部は、新規に出力されたダンプ情報以外のダンプ情報を削除することを特徴とする情報処理装置。
【請求項５】
請求項２又は３に記載の情報処理装置において、
前記削除部は、前記出力回数が所定値以下であるダンプ情報を削除することを特徴とする情報処理装置。
【請求項６】
請求項１乃至５の何れか一項に記載の情報処理装置において、
前記出力部は、前記削除部がダンプ情報を削除したあとで、前記ダンプ情報を前記第２記憶部に新規に出力することを特徴とする情報処理装置。
【請求項７】
請求項６に記載の情報処理装置において、
前記出力部が新規に出力したダンプ情報と同じダンプ情報が前記第２記憶部に格納されていた場合、当該ダンプ情報の出力回数をカウントするカウント手段を備えたことを特徴とする情報処理装置。
【請求項８】
請求項７に記載の情報処理装置において、
前記同じダンプ情報のうち、一のダンプ情報以外を前記第２記憶部から削除することを特徴とする情報処理装置。
【請求項９】
前記ダンプ情報は固定長であることを特徴とする請求項１乃至８の何れか一項に記載の情報処理装置。
【請求項１０】
出力部と、削除部と、を備える情報処理装置の情報処理方法であって、
前記出力部が、第１記憶部に格納されているデータをダンプ情報として第２記憶部に出力するステップと、
前記削除部が、前記第２記憶部への出力回数に基づいて削除対象とされたダンプ情報を前記第２記憶部から削除するステップと、
を備えることを特徴とする情報処理方法。
【請求項１１】
請求項１０に記載の情報処理方法を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カーネルパニック発生時にメインメモリのダンプファイルを出力する情報処理装置に関する。
【背景技術】
【０００２】
情報処理装置において、ＯＳのコアであるカーネルの実行に致命的な支障が生じ、正常な動作継続が出来なくなる状態、所謂カーネルパニックが発生すると、メインメモリ上のデータをダンプファイルとして他の記憶装置に出力する処理（パニックダンプ）を実行することが知られている。
ダンプファイルを活用することで、カーネルやドライバの不具合修正や改良に役立てることができる。
【０００３】
しかしコスト面の事情等からハードディスク等大容量の記憶装置を搭載できない機器などでは、十分なダンプ領域を記憶装置に確保できず、有益なダンプ情報を残せないという問題があった。パニックダンプが複数回発生したときに、記憶装置に空き領域がない場合には古いデータを上書きするほかなく、必要なダンプ情報を残すことが出来ない。すなわちパニックダンプの出力に際しては、ダンプファイルの縮小や、必要なデータの抽出が求められる。
それに対し特許文献１には、メモリダンプのサイズを縮小するために、予め設定した保存サイズに適したコアファイル（ダンプファイル）を生成することが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、引用文献１の手法では、個々のダンプファイルのサイズを縮小するために、元のダンプファイルの一部の情報だけを選択的に保存するため、有益なダンプ情報が失われる虞がある。
また、有益なダンプ情報とする履歴リストの作成方法が開示されておらず、特許文献１の手法によっても、必ずしも有益な情報を残すことが出来ていない。
本発明は、上記の問題を鑑みてなされたものであり、限られた容量の記憶領域上に有益なダンプ情報を残すことが可能な情報処理装置を実現することを目的とする。
【課題を解決するための手段】
【０００５】
上記の課題を解決するために、請求項１に係る本発明は、第１記憶部と、第２記憶部と、前記第１記憶部に格納されているデータをダンプ情報として前記第２記憶部に出力する出力部と、所定条件が成立したときに、前記第２記憶部への出力回数に基づいて削除対象とされたダンプ情報を前記第２記憶部から削除する削除部と、を備える情報処理装置を特徴とする。
【発明の効果】
【０００６】
上記のように構成したので、本発明によれば、限られた容量の記憶領域上に有益なダンプ情報を残すことが可能な情報処理装置を実現することができる。
【図面の簡単な説明】
【０００７】
【図１】本実施形態に係る情報処理装置の機能構成を示す概略図である。
【図２】情報処理装置におけるカーネルパニック発生時の処理を説明するフローチャートである。
【図３】図２におけるデータ削除処理を説明するフローチャートである。
【図４】機械学習を用いて不揮発性メモリ上のデータを判断するデータ判断処理を説明するフローチャートである。
【図５】機械学習モデルの構築、学習モデルの使用を説明する図である。
【図６】ＰＣ（サーバ）のハードウェア構成図である。
【図７】ＭＦＰのハードウェア構成図である。
【発明を実施するための形態】
【０００８】
以下に、図面を参照して本発明の実施の形態を詳細に説明する。
本発明の情報処理装置は、カーネルパニックが発生したとき、予め用意された学習モデル（機械学習）を使用して新規でダンプされたダンプファイル（ダンプ情報）の種類を判別する。
そして、判別された種類のダンプファイルと同種のダンプファイルが記憶領域に既に格納されている場合には、同種のもののうち片方のダンプファイル（新規のダンプファイルまたは既存のダンプファイル）を削除することにより、記憶領域の空き容量を増やす。
これにより、本発明の情報処理装置は保存可能なダンプファイルの種類を増やし、有益なダンプ情報を記憶領域に残すことができる。
【０００９】
図１は、本実施形態に係る情報処理装置の機能構成を示す概略図であり、（ａ）は、ハードウェアによる機能構成を示す図であり、（ｂ）はソフトウェアによる機能構成を示す図である。
図１（ａ）に示すように、情報処理装置（以下、第１情報処理装置と呼称する場合がある）１は、ＣＰＵ（Central Processing Unit）１０と、メインメモリ１１としてのＲＡＭ（Random Access Memory）と、不揮発性メモリ１２と、ＲＯＭ（Read Only Memory）１３と、ネットワークＩ／Ｆ１４を備えている。
本実施形態の情報処理装置１は、それを制御するＯＳ（Operating System）のコアであるカーネルの実行に致命的な支障が生じ、正常な動作継続が出来なくなる状態、所謂カーネルパニックが発生すると、メインメモリ１１上のデータをダンプファイルとして他の記憶装置、すなわち不揮発性メモリ１２に出力する処理（パニックダンプ）を実行する。
【００１０】
ＣＰＵ１０は、コアとしてのカーネル２０を含むＯＳによって制御されてプログラムを実行する。
メインメモリ１１は、プログラムが展開されるとともに一時データが記憶されるワークエリアとして機能する。
ＯＳの動作中、メインメモリ１１には、カーネル２０やその他のソフトウェアからコールされた関数名やコールされた関数の順序や、コールされたタイミングなどの情報が記録され、カーネルパニック発生時には、これらの情報を含む「ログデータ」がダンプファイル３０として不揮発性メモリ１２に出力される。ダンプファイル３０には、例えばドライバのログやカーネルデバッガのログなども含まれる。
【００１１】
不揮発性メモリ１２は、電源を供給せずとも記憶を保持するメモリであり、上記のようにカーネルパニック発生時にメインメモリ１１上の「ログデータ」がダンプファイルとしてダンプされる。
ＲＯＭ１３は、情報処理装置１を制御するＯＳのコアであるカーネル２０、ＣＰＵ１０によって実行されるプログラムや各種のデータが格納される。
さらにＲＯＭ１３には、予め教師データによって学習された学習済みモデル（プログラム）４０も格納されている。学習モデル４０はＲＯＭ１３ではなく、不揮発性メモリ１２に格納されてもよい。
カーネル２０を含むＯＳは、不揮発性メモリ１２に格納され、この不揮発性メモリ１２からメインメモリ１１に展開されてもよい。
ネットワークＩ／Ｆ１４は、情報処理装置１をネットワークに接続するための通信モジュールであり、他の情報処理装置とネットワークを介して通信し、例えば学習モデルの供給を受けることを可能とする。
【００１２】
カーネルを含むＯＳは、情報処理装置１の起動時にＲＯＭ１３からメインメモリ１１に展開される。
情報処理装置１は、ＨＤＤ（Hard Disk Drive）等の大容量記憶装置を搭載しておらず、またネットワーク・ストレージ等の外部記憶装置にも接続されていない。それらに替わり、情報処理装置１は小容量の不揮発性メモリ１２を備える。
【００１３】
上記のように、カーネルパニック発生時に不揮発性メモリ１２にダンプされるメインメモリ１１上のデータは、ダンプファイルと呼ばれる。ダンプファイル３０は、例えばドライバのログやカーネルデバッガのログなどである。ダンプファイル３０は固定長のデータであってもよいし、可変長のデータであってもよい。
不揮発性メモリ１２には、ダンプファイル３０のほか、後述するように機械学習によって判断したダンプファイルの種類や、判断された種類に基づくダンプファイルの種類別の削除回数（カウント値）も保存される。
【００１４】
図１（ｂ）に示すように、ＣＰＵ１０は、情報処理装置１が備える処理部５０として、出力部２１と、判断部２２と、カウント部２３と、決定部２４と、削除部２５と、再起動部２６と、を実行する。
出力部２１は、カーネル２０に異常が発生した場合に(カーネルパニック発生時に)、メインメモリ１１に格納されている（メインメモリ１１上の）データ（ログデータ）をダンプファイル３０として不揮発性メモリ１２に出力する処理を行う。
【００１５】
判断部２２は、機械学習を利用して、不揮発性メモリ１２上に、同じ種類の２以上のダンプファイル３０があるか否かの判断を行う処理を行う。より詳しくは、新規のダンプファイル３０が不揮発性メモリ１２上に書き込まれたときに、新規のダンプファイルと同じ種類のダンプファイル３０が不揮発性メモリ１２に存在しているかを判断する。
種類が同じダンプファイルは、同じ障害など情報を示すファイルであり、基となるログファイルの内容が一部異なっていても、同じダンプファイルとして扱うことが出来る。従って、「種類が同じダンプファイル」とは「同じダンプファイル」と実質的に同義である。
カウント部２３は、同じ種類のダンプファイル３０の出力回数（出現回数）をカウントする処理を行う。
後述するように、同じ種類のダンプファイルの出現は、その種類のダンプファイルについて新規又は既存の何れかのファイルの削除を伴うため、出力回数のカウントはその種類のダンプファイルの削除回数であるとも言える。
【００１６】
決定部２４は、不揮発性メモリ１２の空き容量が所定値を下回った場合、あるいはカーネルパニック発生時）に、カウント部２３によってカウントされている同じ種類のダンプファイル３０の出力回数に応じて、不揮発性メモリ１２から削除する削除対象のダンプファイル３０を決定する処理を行う。
削除部２５は、決定部２４が決定した削除対象のダンプファイルを実際に削除する処理を行う。
再起動部２６は、カーネルパニックが発生した時に、出力部２１によるダンプファイル３０の出力後に情報処理装置１を再起動する処理を行う。
【００１７】
図２は、情報処理装置１におけるカーネルパニック発生時の処理を説明するフローチャートである。
ＣＰＵ１０（出力部２１）は、カーネルパニック発生時に、ダンプファイル３０を不揮発性メモリ１２に書き込む。複数のダンプファイル３０が不揮発性メモリ１２に保存されている場合もある。
ＣＰＵ１０（出力部２１）は、ステップＳ１０１において情報処理装置１においてカーネルパニックが発生したか否かを判定する。
カーネルパニックが発生していないと判定した場合（ステップＳ１０１でＮｏ）、ＣＰＵ１０（出力部２１）は、そのまま処理を終了する。
【００１８】
カーネルパニックが発生したと判断した場合（ステップＳ１０１でＹｅｓ）、ＣＰＵ１０（出力部２１）は、ステップＳ１０２において、不揮発性メモリ１２に十分な空き領域があるか（不揮発性メモリ１２の空き容量が所定値以上あるか）否かを判定する。
不揮発性メモリ１２に十分な空き領域がある（不揮発性メモリ１２の空き容量が所定値以上ある）と判定した場合（ステップＳ１０２でＹｅｓ）、ＣＰＵ１０（出力部２１）は、ステップＳ１０３において、ダンプファイルを不揮発性メモリ１２の空き領域に書き込む。
ダンプファイルの書き込みが済むと、ＣＰＵ１０（再起動部２６）は、ステップＳ１０４において情報処理装置１を再起動する処理を行う。
【００１９】
ステップＳ１０２において不揮発性メモリ１２に十分な空き領域がない（不揮発性メモリ１２の空き容量が所定値を下回った）と判定された場合（ステップＳ１０２でＮｏ）、ＣＰＵ１０（削除部２５）は、ステップＳ１０５において、所定の条件に基づいて不揮発性メモリ１２上のダンプファイルのデータを削除するデータ削除処理（図３において詳説する）を行う。
そして、ＣＰＵ１０（出力部２１）は、ステップＳ１０３において、（データ削除処理の結果確保された）不揮発性メモリ１２の空き領域に、新たなダンプファイルを書き込む。
ダンプファイルの書き込みが済むと、ＣＰＵ１０（再起動部２６）は、ステップＳ１０４において、情報処理装置１を再起動する処理を行う。
【００２０】
上記の例では、カーネルパニックが発生し、且つ不揮発性メモリ１２の空き容量が少ないときに、ステップＳ１０５のデータ削除処理を行うようにしている。
カーネルパニックの発生時に不揮発性メモリの空き容量を確保することで、確実に、当該カーネルパニックに関するダンプファイルを不揮発性メモリ１２に残すことが出来る。
ただし、不揮発性メモリ１２の空き容量いかんに関わらず、カーネルパニックの発生によるパニックダンプ時には、データ削除処理を常に行っても良い。
ダンプファイルを出力するための不揮発性メモリ１２の空き容量を常に確保して、有益なダンプ情報を不揮発性メモリ１２に確実に残すことができる。
【００２１】
また、カーネルパニックが発生せずとも、不揮発性メモリ１２の空き容量が一定量以下となったときには、データ削除処理を行うようにしてもよい。
ダンプファイルを出力するための不揮発性メモリ１２の空き容量が少なくなったときに、ダンプ情報を書き込むための不揮発性メモリ１２の空き容量を確保することで、次にカーネルパニックが起きたときに、有益なダンプ情報を確実に不揮発性メモリ１２に残すことができる。
【００２２】
図３は、図２におけるデータ削除処理を説明するフローチャートである。
図２で説明したように、不揮発性メモリ１２に十分な空き領域がない場合に、ＣＰＵ１０（削除部２５）は、不揮発性メモリ１２上に保存されているダンプファイルを削除して不揮発性メモリ１２に空き領域を確保する。
このデータ削除処理において、ＣＰＵ１０（削除部２５）は、後述する図４の処理でカウントされるカウント値をチェックし、不揮発性メモリ１２に格納されているダンプファイルのうち最もカウント値が小さいものを削除する。このカウント値は、後述の機械学習により同じ種類のダンプファイルがあると判断された回数である。
【００２３】
このカウント値が大きいほどログデータがダンプファイルとして書き込まれた頻度が高く、頻繁に生じる障害であると考えられ、重要度が高いダンプファイル（ログデータ）であるといえる。
そこで、カウント値が小さい重要度が低いダンプファイル（ログデータ）から不揮発性メモリ１２から削除していくことで、カウント値が大きい、すなわち重要度が高いと考えられるダンプファイルを残しつつ、不揮発性メモリ１２に有益な情報を残すことができる。
【００２４】
カウント値が示す不揮発性メモリ１２への出力回数に基づく重要度に応じて決定された（重要度が低い）ダンプ情報を削除して、容量が限られた不揮発性メモリ１２の空き容量を確保することにより、有益なダンプ情報を不揮発性メモリ１２に残すことができる。
なお、最もカウント値が小さいダンプファイルが複数存在する場合には、ＣＰＵ１０（削除部２５）は、これらのダンプファイルのうちで最も古いものを削除する（新しいダンプファイルを残す）。
カウント値が少ない（重要度が低い）ダンプファイルであっても、より新しいダンプファイルを不揮発性メモリ１２に残すことで、直近に発生しているエラーの状態が把握可能なダンプファイルを残すことができる。
【００２５】
ＣＰＵ１０（削除部２５）は、ステップＳ１１１において、不揮発性メモリ１２に格納されているダンプファイルからから最もカウント値が小さいファイルを選択する。
ＣＰＵ１０（削除部２５）は、ステップＳ１１２において、選択された最もカウント値が小さいダンプファイルが複数あるか否かを判定する。
【００２６】
最もカウント値が小さいダンプファイルが複数あると判定した場合（ステップＳ１１２でＹｅｓ）、ＣＰＵ１０（削除部２５）は、ステップＳ１１３において、それらの中で最も古いダンプファイルを削除して処理を終了する。
最もカウント値が小さいデータが１つであると判定した場合（ステップＳ１１２でＹｅｓ）、ＣＰＵ１０（削除部２５）は、ステップＳ１１４において、ステップＳ１１１で選択された１つのデータを削除して処理を終了する。
ＣＰＵ１０は、不揮発性メモリ１２に空き領域がない場合、同じ種類のダンプファイルの出力回数に応じて、不揮発性メモリ１２に格納されたダンプファイルのうち上書きされるダンプファイルを決定し、決定されたダンプファイルを新たなダンプファイルで上書きするようにしてもよい。
【００２７】
図４は、機械学習を用いて不揮発性メモリ上のデータを判断するデータ判断処理を説明するフローチャートである。
上記したように、本実施形態の情報処理装置１は、カーネルパニックが発生した場合、図２、図３の処理を行ってダンプファイルを不揮発性メモリ１２に書き込むが、その後、情報処理装置１が再起動したあとには、書き込まれたダンプファイルに対して機械学習を用いた判断処理を行う。
すなわち、情報処理装置１は、カーネルパニックによる再起動後、不揮発性メモリ１２上に新規のダンプファイルが存在する場合には機械学習の処理を行う。
【００２８】
この機械学習には、予め教師データが与えられた学習モデルが用意されている。
教師データとしては、例えばダンプ情報から取得できるバックトレースでの関数名（カーネルパニックするまでにコールされる関数名）が考えられる。正解ラベルとしては、例えば障害の種類やドライバの種類が考えられる。この場合、機械学習では、コールされる関数の流れからダンプファイルの種類を判別できるものとする。
情報処理装置１は、このように、ダンプファイルとその種類を紐づけておき、不揮発性メモリに１２保存された新規のダンプファイルを入力データとして機械学習を行う。
【００２９】
機械学習の結果、得られたダンプファイルの種類とすでに学習済みで保存されているダンプファイルの種類とを比較し、同じ種類のダンプファイルが存在した場合、新規のダンプファイルを削除する。
そして、ダンプファイルの種類別に管理されたカウンタ（カウント値）に１を加算する。このカウンタは同じファイルが存在すると判断された回数である。
一方、同じ種類のダンプファイルが存在しなかった場合、機械学習の結果であるダンプファイルの種類を、不揮発性メモリ１２に保存する。
【００３０】
以下に具体的な処理を説明する。
情報処理装置１の再起動後、ＣＰＵ１０は、ステップＳ１２１において、不揮発性メモリ１２に新規のダンプファイルが書き込まれているか否かを判定する。
新規のダンプファイルが書き込まれていると判定された場合、ＣＰＵ１０は、ステップＳ１２２において、そのダンプファイルについて上記に説明した方法で機械学習を実行する。
ＣＰＵ１０（判断部２２）は、ステップＳ１２３において、機械学習の結果、新規のダンプファイルと同じ種類のダンプファイルがあるか否かを判定する。同じ種類のダンプファイルがあると判定した場合（ステップＳ１２３でＹｅｓ）、ＣＰＵ１０（削除部２５）は、ステップＳ１２４において新規のダンプファイルを削除し、ＣＰＵ１０（カウント部２３）は、ステップＳ１２５においてカウント値を１つ加算して処理を終了する。
ここで、ＣＰＵ１０（削除部２５）は、新規のダンプファイル以外のダンプファイルを削除してもよい。
同じ種類のファイルがないと判定した場合（ステップＳ１２３でＮｏ）、ＣＰＵ１０は、ステップＳ１２６において、種類を保存して処理を終了する。
【００３１】
このように、ＣＰＵ１０（判断部２２）は、情報処理装置１が再起動された後、不揮発性メモリ１２に同じ種類の２以上のダンプファイルがあるか否か（新規に出力されたダンプファイルと同じ種類のダンプファイルが不揮発性メモリ１２にあるか否か）の判断を行う。
同じ種類の２以上のダンプファイルが存在する（（新規に出力されたダンプファイルと同じ種類のダンプファイルが不揮発性メモリ１２にある）と判断された場合、ＣＰＵ１０（カウント部２３）は、その種類のダンプファイルの出力回数をカウントする。そして、同じ種類のダンプファイルのうち１のダンプファイル以外は削除される。
【００３２】
同じ種類のダンプ情報については一つのみを残して削除することで、不揮発性メモリ１２の空き容量を確保しつつ、有益なダンプ情報を残すことができる。
不揮発性メモリ１２への出力回数であるカウント値に基づく重要度に応じてダンプファイルを削除し、不揮発性メモリ１２への空き容量を確保することにより、有益なダンプ情報を残すことができる。
【００３３】
図５は、機械学習モデルの構築、学習モデルの使用を説明する図である。
機械学習の学習モデルは、障害発生時などの過去のログを使用して構築する。ここでは教師あり学習の例を示す。
まず、情報処理装置１に適用する学習モデルを作成する。学習モデルは、第１情報処理装置としての情報処理装置１とは異なる、第２情報処理装置としてのサーバやパーソナルコンピューターなどで作成する。
第２情報処理装置には、予め取得又は生成されたログデータが記憶されている。
【００３４】
ログデータは、それぞれ異なる複数の種類の障害が発生した場合に取得されたログデータである。またログデータは、例えば、情報処理装置１と機種が同じ他の情報処理装置（第３情報処理装置）で障害が発生した場合に取得されたログデータであっても良いし、障害を想定してサーバによって生成されたログデータであっても良い。
第２情報処理装置は、これら予め用意されたログデータを学習に用いて機械学習によって学習モデルを生成する。
【００３５】
図５（ａ）に示すように、学習に使用するログデータに対し、ログの種類（教師データ）を付与しておく。図５ではログの種類として障害の種類を挙げている。
例えば、ログデータ（１）には障害（１）、ログデータ（２）には障害（２）、ログデータ（３）には障害（３）、というようにログデータに対して該ログデータがどのような種類の障害発生時に取得されたログデータであるのか（又はどのような種類の障害発生を想定して生成されたログデータであるのか）を対応付けておく。
【００３６】
なお、ログデータの種類及び障害の種類の数は３つに限定されない。ログデータと障害種類の対応付けは、第２情報処理装置の記憶部においてログデータと障害種類を対応させたテーブルデータを記憶させることで管理しても良いし、ログデータ中に障害種類の情報を付与しても良い。
これらのデータのセットを複数用意し、機械学習アルゴリズムを適用し、学習モデル４０を構築する。
第２情報処理装置で構築された学習モデル４０は、第２情報処理装置から有線／無線通信によって直接的に、又は記録媒体や管理装置などの他の装置を介して間接的に、情報処理装置１（第１情報処理装置）へ送信されてＲＯＭ１３や不揮発性メモリ１２などに記憶される。
【００３７】
図４に示した機械学習が判断するフェーズでは、図５（ｂ）に示すように、ログデータからログの種類が判断される。この処理は、上記の判断部２２によって行われる処理である。
情報処理装置１（第１情報処理装置）の判断部２２は、第２情報処理装置が作成した学習モデルを用いてログデータを解析する。
学習モデルが作成されたときの教師データとして使用された複数種類の障害（図５（ａ）を例にすると、判断部２２は、障害（１）、障害（２）、障害（３））のうち、いずれの種類の障害が情報処理装置１（第１情報処理装置）で発生したのかを判断する。
【００３８】
図５（ｂ）の例では、学習モデルによって、障害の種類が障害（２）であると判断する。これにより、第１情報処理装置で新規に取得されたダンプファイルは、障害（２）に対応するログデータであると判断することができたため、判断部２２は、不揮発性メモリ１２に記憶されたダンプファイルの中に、同じく障害（２）に対応するログデータが存在するか否かを判断する。
障害（２）に対応するダンプファイルが存在する場合は、新規に取得されたダンプファイルは削除し、存在しない場合は新規のダンプファイルを削除せずに保持する。
【００３９】
図５（ａ）で使用する機械学習のアルゴリズムには、教師あり学習である「分類（Ｃｌａｓｓｉｆｉｃａｔｉｏｎ）」が使用される。
学習アルゴリズムは、ログデータに含まれる情報（一例として、カーネルやその他のソフトウェアからコールされた関数名及びコールされた関数の順序やコールされたタイミングなど）に基づいて、障害種類を複数パターンに分類することができる。
学習させるデータは保存されているすべてのログデータではなく、一部を指す場合もありうる。
例えば、バックトレースの関数名やログの種類（ＡＡＡドライバ、ＥＥＥライブラリ）を学習データとして使用する。
【００４０】
なお、上記では機械学習モデルを用いて、障害種類を判断する場合について説明したが、これに限定されない。例えば、ログデータのうち最後にコールされた関数名などによって一意に障害種類が判断できる場合には、機械学習モデルを用いずに障害種類を判断しても良い。
この場合、障害が発生した場合であっても、一部の種類の障害については、学習モデルを使用した障害種類の解析を省略することができるため、情報処理装置１（第１情報処理装置）のメモリやＣＰＵの負荷を抑制することができる。
【００４１】
本実施形態の情報処理装置１は、予め用意された学習モデル（機械学習）を使用し、カーネルパニック発生後の再起動時（または正常動作時）にダンプファイルの種類を判別し、ダンプファイルが同様の種類と判断した場合、片方のダンプファイルを削除する。
また、ダンプ領域に空きがなく、異なる種類のダンプファイルしかない場合、出現頻度の低いダンプファイルから削除する。これらにより、保存可能なダンプファイルの種類を増やすことができる。
このようにして不要なダンプファイルを削除することにより、不揮発性メモリ１２の限られた領域に有益なダンプファイルのみを残すことができる。
【００４２】
なお、本実施形態に係る情報処理装置の構成は、ＰＣ（サーバ）やＭＦＰに適用することができる。
本実施形態に係る情報処理装置の構成は、例えば、ＰＪ（Projector：プロジェクタ）、ＩＷＢ（Interactive White Board：相互通信が可能な電子式の黒板機能を有する白板）、デジタルサイネージ等の出力装置、ＨＵＤ（Head Up Display）装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車（Connected Car）、ノートＰＣ（Personal Computer）、携帯電話、スマートフォン、タブレット端末、ゲーム機、ＰＤＡ（Personal Digital Assistant）、デジタルカメラ、ウェアラブルＰＣまたはデスクトップＰＣ等に適用することもできる。
【００４３】
以下に、本実施形態を適用可能な、ＰＣとＭＦＰのハードウェア構成を説明する。
図６は、ＰＣ（サーバ）のハードウェア構成図である。ここでは、サーバ５のハードウェア構成について説明する。
図６に示されているように、サーバ５は、コンピュータによって構築されており、図５に示されているように、ＣＰＵ５０１、ＲＯＭ５０２、ＲＡＭ５０３、ＨＤ５０４、ＨＤＤ(Hard Disk Drive)コントローラ５０５、ディスプレイ５０６、外部機器接続Ｉ／Ｆ(Interface)５０８、ネットワークＩ／Ｆ５０９、データバス５１０、キーボード５１１、ポインティングデバイス５１２、ＤＶＤ−ＲＷ(Digital Versatile Disk Rewritable)ドライブ５１４、メディアＩ／Ｆ５１６を備えている。
【００４４】
これらのうち、ＣＰＵ５０１は、サーバ５全体の動作を制御する。ＲＯＭ５０２は、ＩＰＬ等のＣＰＵ５０１の駆動に用いられるプログラムを記憶する。ＲＡＭ５０３は、ＣＰＵ５０１のワークエリアとして使用される。ＨＤ５０４は、プログラム等の各種データを記憶する。ＨＤＤコントローラ５０５は、ＣＰＵ５０１の制御にしたがってＨＤ５０４に対する各種データの読み出し又は書き込みを制御する。ディスプレイ５０６は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続Ｉ／Ｆ５０８は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、ＵＳＢ(Universal Serial Bus)メモリやプリンタ等である。ネットワークＩ／Ｆ５０９は、通信ネットワーク１００を利用してデータ通信をするためのインターフェースである。バスライン５１０は、図５に示されているＣＰＵ５０１等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【００４５】
また、キーボード５１１は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス５１２は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。ＤＶＤ−ＲＷドライブ５１４は、着脱可能な記録媒体の一例としてのＤＶＤ−ＲＷ５１３に対する各種データの読み出し又は書き込みを制御する。なお、ＤＶＤ−ＲＷに限らず、ＤＶＤ−Ｒ等であってもよい。メディアＩ／Ｆ５１６は、フラッシュメモリ等の記録メディア５１５に対するデータの読み出し又は書き込み（記憶）を制御する。
【００４６】
サーバ５のＣＰＵ５０１は、図１のＣＰＵ１０と同様に、サーバ５を制御するＯＳに含まれるカーネルの不具合時（カーネルパニック発生時）に、上記の実施形態で説明した方法でダンプファイルをＨＤ５０４等に出力して、有益なダンプ情報を残すことができる。
【００４７】
図７は、ＭＦＰのハードウェア構成図である。図９に示されているように、ＭＦＰ(Ｍultifunction Peripheral/Product/Printer)９は、コントローラ９１０、近距離通信回路９２０、エンジン制御部９３０、操作パネル９４０、ネットワークＩ／Ｆ９５０を備えている。
これらのうち、コントローラ９１０は、コンピュータの主要部であるＣＰＵ９０１、システムメモリ（ＭＥＭ−Ｐ）９０２、ノースブリッジ（ＮＢ）９０３、サウスブリッジ（ＳＢ）９０４、ＡＳＩＣ(Application Specific Integrated Circuit)９０６、記憶部であるローカルメモリ（ＭＥＭ−Ｃ）９０７、ＨＤＤコントローラ９０８、及び、記憶部であるＨＤ９０９を有し、ＮＢ９０３とＡＳＩＣ９０６との間をＡＧＰ(Accelerated Graphics Port)バス９２１で接続した構成となっている。ただし、コントローラ９１０の構成はこれに限定されない。例えば、ＣＰＵ９０１、ＮＢ９０３、ＳＢ９０４などの２以上の構成要素をＳｏＣ（System on Chip）によって実現してもよい。この場合、ＳｏＣとＡＳＩＣ９０６との間をPCI-express（登録商標） バスで接続してもよい。
【００４８】
これらのうち、ＣＰＵ９０１は、ＭＦＰ９の全体制御を行う制御部である。ＮＢ９０３は、ＣＰＵ９０１と、ＭＥＭ−Ｐ９０２、ＳＢ９０４、及びＡＧＰバス９２１とを接続するためのブリッジであり、ＭＥＭ−Ｐ９０２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩ(Peripheral Component Interconnect)マスタ及びＡＧＰターゲットとを有する。
ＭＥＭ−Ｐ９０２は、コントローラ９１０の各機能を実現させるプログラムやデータの格納用メモリであるＲＯＭ９０２ａ、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるＲＡＭ９０２ｂとからなる。なお、ＲＡＭ９０２ｂに記憶されているプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【００４９】
ＳＢ９０４は、ＮＢ９０３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。ＡＳＩＣ９０６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ(Integrated Circuit)であり、ＡＧＰバス９２１、ＰＣＩバス９２２、ＨＤＤ９０８およびＭＥＭ−Ｃ９０７をそれぞれ接続するブリッジの役割を有する。このＡＳＩＣ９０６は、ＰＣＩターゲットおよびＡＧＰマスタ、ＡＳＩＣ９０６の中核をなすアービタ（ＡＲＢ）、ＭＥＭ−Ｃ９０７を制御するメモリコントローラ、ハードウェアロジックなどにより画像データの回転などを行う複数のＤＭＡＣ(Direct Memory Access Controller)、並びに、スキャナ部９３１及びプリンタ部９３２との間でＰＣＩバス９２２を介したデータ転送を行うＰＣＩユニットとからなる。なお、ＡＳＩＣ９０６には、ＵＳＢ(Universal Serial Bus)のインターフェースや、ＩＥＥＥ１３９４(Institute of Electrical and Electronics Engineers 1394）のインターフェースを接続するようにしてもよい。
【００５０】
ＭＥＭ−Ｃ９０７は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。ＨＤ９０９は、画像データの蓄積、印刷時に用いるフォントデータの蓄積、フォームの蓄積を行うためのストレージである。ＨＤ９０９は、ＣＰＵ９０１の制御にしたがってＨＤ９０９に対するデータの読出又は書込を制御する。ＡＧＰバス９２１は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、ＭＥＭ−Ｐ９０２に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速にすることができる。
【００５１】
また、近距離通信回路９２０には、近距離通信回路９２０ａが備わっている。近距離通信回路９２０は、ＮＦＣ、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の通信回路である。
更に、エンジン制御部９３０は、スキャナ部９３１及びプリンタ部９３２によって構成されている。また、操作パネル９４０は、現在の設定値や選択画面等を表示させ、操作者からの入力を受け付けるタッチパネル等のパネル表示部９４０ａ、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなる操作パネル９４０ｂを備えている。コントローラ９１０は、ＭＦＰ９全体の制御を行い、例えば、描画、通信、操作パネル９４０からの入力等を制御する。スキャナ部９３１又はプリンタ部９３２には、誤差拡散やガンマ変換などの画像処理部分が含まれている。
【００５２】
なお、ＭＦＰ９は、操作パネル９４０のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリンタ機能、およびファクシミリ機能を順次に切り替えて選択することが可能となる。ドキュメントボックス機能の選択時にはドキュメントボックスモードとなり、コピー機能の選択時にはコピーモードとなり、プリンタ機能の選択時にはプリンタモードとなり、ファクシミリモードの選択時にはファクシミリモードとなる。
また、ネットワークＩ／Ｆ９５０は、通信ネットワーク１００を利用してデータ通信をするためのインターフェースである。近距離通信回路９２０及びネットワークＩ／Ｆ９５０は、ＰＣＩバス９２２を介して、ＡＳＩＣ９０６に電気的に接続されている。
【００５３】
ＭＦＰ９のＣＰＵ９０１は、図１のＣＰＵ１０と同様に、ＭＦＰ９を制御するＯＳに含まれるカーネルの不具合時（カーネルパニック発生時）に、上記の実施形態で説明した方法でダンプファイルをＨＤ９０９等に出力して、有益なダンプ情報を残すことができる。
【００５４】
なお、上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC（Application Specific Integrated Circuit）、DSP（digital signal processor）、FPGA（field programmable gate array）や従来の回路モジュール等のデバイスを含むものとする。
本実施形態において、機械学習とは、コンピュータに人のような学習能力を獲得させるための技術であり、コンピュータが、データ識別等の判断に必要なアルゴリズムを、事前に取り込まれる学習データから自律的に生成し、新たなデータについてこれを適用して予測を行う技術のことをいう。機械学習のための学習方法は、教師あり学習、教師なし学習、半教師学習、強化学習、深層学習のいずれかの方法でもよく、さらに、これらの学習方法を組み合わせた学習方法でもよく、機械学習のための学習方法は問わない。
【００５５】
［第１の発明］
第１の発明に係る情報処理装置１は、第１記憶部１１と、第２記憶部１２と、第１記憶部１１に格納されているデータをダンプ情報として第２記憶部１２に出力する出力部２１と、所定条件が成立したときに、第２記憶部１２への出力回数に基づいて削除対象とされたダンプ情報を第２記憶部１２から削除する削除部と、を備える。
このように構成することにより、第２記憶部１２への出力回数に基づく重要度に応じて決定された(重要度が低い)ダンプ情報を削除して、容量が限られた第２記憶部１２の空き容量を確保することにより、有益なダンプ情報を残すことができる。
【００５６】
［第２の発明］
第２の発明の係る情報処理装置１では、削除部２５は、カーネル２０に異常が発生した場合に、出力回数に基づいて削除対象とされた種類のダンプ情報を、第２記憶部１２から削除する。
このように構成することにより、カーネルパニックの発生時に（カーネルに異常が発生した場合に）、ダンプ情報を出力するための第２記憶部１２の空き容量を確保して、有益なダンプ情報を残すことができる。
【００５７】
［第３の発明］
第３の発明に係る情報処理装置１では、削除部２５は、第２記憶部１２の空き容量が所定値を下回った場合、出力回数に基づいて削除対象とされた種類のダンプ情報を、第２記憶部１２から削除する。
このように構成することにより、ダンプ情報を出力するための第２記憶部１２の空き容量が少なくなっても、次にカーネルパニックが発生したときにダンプ情報を書き込むための第２記憶部１２の空き容量を確保して、有益なダンプ情報を残すことができる。
【００５８】
［第４の発明］
第４の発明に係る情報処理装置１では、削除部２５は、新規のダンプ情報以外のダンプ情報を削除する。
最新のダンプ情報を残しながら、ダンプ情報を出力するための第２記憶部１２の空き容量を確保して有益なダンプ情報を残すことができる。
このように構成することにより、より新しいダンプファイルを不揮発性メモリ１２に残して、最近に発生しているエラーの状態が把握可能なダンプファイルを残すことができる。
【００５９】
［第５の発明］
第５の発明に係る情報処理装置１では、削除部２５は、出力回数が所定値以下であるダンプ情報を削除する。
このように構成することにより、出力回数が少ない（重要度が低い）ダンプ情報を削除してダンプ情報を出力するための第２記憶部１２の空き容量を確保して、有益なダンプ情報を残すことができる。
【００６０】
［第６の発明］
第６の発明に係る情報処理装置１では、出力部２１は、削除部がダンプ情報を削除したあとで、ダンプ情報を第２記憶部１２に出力する。
このように構成することにより、第２記憶部１２の空き容量を確保して、有益なダンプ情報を残すことができる。
【００６１】
［第７の発明］
第７の発明に係る情報処理装置１では、出力部２１が新規に出力したダンプ情報と同じダンプ情報が第２記憶部１２に格納されていた場合、当該ダンプ情報の出力回数をカウントするカウント手段を備える。
このように構成することにより、過去に第２記憶部１２に出力したダンプ情報が新たに出力された場合には、出力回数をカウントし、出力回数に基づくダンプ情報の重要度を決定することができる。
そして、第２記憶部１２への出力回数に基づく重要度に応じて決定された(重要度が低い)ダンプ情報を削除して第２記憶部１２の空き容量を確保することにより、有益なダンプ情報を残すことができる。
【００６２】
［第８の発明］
第８の発明に係る情報処理装置１は、同じダンプ情報のうち、一のダンプ情報以外を第２記憶部１２から削除する。
同じダンプ情報については一つのみを残して削除することで、第２記憶部１２の空き容量を確保しつつ、有益なダンプ情報を残すことができる。
【符号の説明】
【００６３】
１  情報処理装置、１０  ＣＰＵ、１１  メインメモリ、１２  不揮発性メモリ、２０  カーネル、２１  出力部、２２  判断部、２３  カウント部、２４  決定部、２５  削除部、２６  再起動部、３０  ダンプファイル、４０  学習モデル
【先行技術文献】
【特許文献】
【００６４】
【特許文献１】特開２００７−１７２４１４公報
【図１】
2020140529.tif 000003
【図２】
2020140529.tif 000004
【図３】
2020140529.tif 000005
【図４】
2020140529.tif 000006
【図５】
2020140529.tif 000007
【図６】
2020140529.tif 000008
【図７】
2020140529.tif 000009