(57)【要約】【課題】負荷予測に基づき、好適にシステムを運用することを可能とする情報処理装置、情報処理方法、及びプログラムを提供する。【解決手段】各々の時刻と、各々の時刻において測定されたシステム負荷である実測システム負荷とが対応付けられた学習データの深層学習により生成される予測モデルを用いて、第１時刻までに検出された実測システム負荷に基づき、第１時刻よりも後の第２時刻におけるシステム負荷を予測した予測システム負荷を生成する第１予測部と、前記第２時刻における実測システム負荷を検出する検出部と、前記第２時刻における予測システム負荷と実測システム負荷との差分が閾値を超過する場合に、その旨を出力する出力部とを備える。【選択図】図１
2019079120.tif 000002
【特許請求の範囲】
【請求項１】
各々の時刻と、各々の時刻において測定されたシステム負荷である実測システム負荷とが対応付けられた学習データの深層学習により生成される予測モデルを用いて、第１時刻までに検出された実測システム負荷に基づき、第１時刻よりも後の第２時刻におけるシステム負荷を予測した予測システム負荷を生成する第１予測部と、
前記第２時刻における実測システム負荷を検出する検出部と、
前記第２時刻における予測システム負荷と実測システム負荷との差分が閾値を超過する場合に、その旨を出力する出力部と
を備える情報処理装置。
【請求項２】
前記第２時刻までに検出された実測システム負荷に基づき、前記予測モデルを用いて、前記第２時刻よりも後の第３時刻における予測システム負荷を生成する第２予測部
を更に備える、請求項１記載の情報処理装置。
【請求項３】
システム負荷に応じたオペレーションを管理する管理部と、
前記第２時刻における前記差分が前記閾値を超過する場合に、前記第３時刻における予測システム負荷に応じた前記オペレーションを実行する制御部と
を更に備える、請求項２記載の情報処理装置。
【請求項４】
第４時刻までの実測システム負荷に係る第１学習データにより生成された前記予測モデルを、前記第４時刻から第５時刻までの実測システム負荷に係る第２学習データを用いて、前記予測モデルを再学習させる、再学習部
を更に備える、請求項１乃至請求項３のいずれか１項記載の情報処理装置。
【請求項５】
各々の時刻と、各々の時刻において測定されたシステム負荷である実測システム負荷とが対応付けられた学習データの深層学習により生成される予測モデルを用いて、第１時刻までに検出された実測システム負荷に基づき、第１時刻よりも後の第２時刻におけるシステム負荷を予測した予測システム負荷を生成するステップと、
前記第２時刻における実測システム負荷を検出するステップと、
前記第２時刻における予測システム負荷と実測システム負荷との差分が閾値を超過する場合に、その旨を出力するステップと
を情報処理装置が行う、情報処理方法。
【請求項６】
各々の時刻と、各々の時刻において測定されたシステム負荷である実測システム負荷とが対応付けられた学習データの深層学習により生成される予測モデルを用いて、第１時刻までに検出された実測システム負荷に基づき、第１時刻よりも後の第２時刻におけるシステム負荷を予測した予測システム負荷を生成する処理と、
前記第２時刻における実測システム負荷を検出する処理と、
前記第２時刻における予測システム負荷と実測システム負荷との差分が閾値を超過する場合に、その旨を出力する処理と
をコンピュータに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
各種のサーバ等の機器を運用するシステムにおいては、負荷を予測し、当該予測負荷に基づいて最適化が図られることが多い（例えば、特許文献１参照）。特許文献１には、負荷実績データを定期的に収集した負荷実績データに基づいて負荷予測を行うことが記載されている。特許文献１に記載の負荷予測においては、１日の時間帯ごとに同じような変化を示す日パターンの変動等が考慮される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−０２１４９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、特許文献１には、予測精度を高めることについては開示されているものの、予測された負荷がどのように利用されるかについては十分な記載がない。
【０００５】
本発明のいくつかの態様は前述の課題に鑑みてなされたものであり、負荷予測に基づき、好適にシステムを運用することを可能とする情報処理装置、情報処理方法、及びプログラムを提供することを目的の１つとする。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る情報処理装置は、各々の時刻と、各々の時刻において測定されたシステム負荷である実測システム負荷とが対応付けられた学習データの深層学習により生成される予測モデルを用いて、第１時刻までに検出された実測システム負荷に基づき、第１時刻よりも後の第２時刻におけるシステム負荷を予測した予測システム負荷を生成する第１予測部と、前記第２時刻における実測システム負荷を検出する検出部と、前記第２時刻における予測システム負荷と実測システム負荷との差分が閾値を超過する場合に、その旨を出力する出力部とを備える。
【０００７】
本発明の一態様に係る情報処理方法は、各々の時刻と、各々の時刻において測定されたシステム負荷である実測システム負荷とが対応付けられた学習データの深層学習により生成される予測モデルを用いて、第１時刻までに検出された実測システム負荷に基づき、第１時刻よりも後の第２時刻におけるシステム負荷を予測した予測システム負荷を生成するステップと、前記第２時刻における実測システム負荷を検出するステップと、前記第２時刻における予測システム負荷と実測システム負荷との差分が閾値を超過する場合に、その旨を出力するステップとを情報処理装置が行う。
【０００８】
本発明の一態様に係るプログラムは、各々の時刻と、各々の時刻において測定されたシステム負荷である実測システム負荷とが対応付けられた学習データの深層学習により生成される予測モデルを用いて、第１時刻までに検出された実測システム負荷に基づき、第１時刻よりも後の第２時刻におけるシステム負荷を予測した予測システム負荷を生成する処理と、前記第２時刻における実測システム負荷を検出する処理と、前記第２時刻における予測システム負荷と実測システム負荷との差分が閾値を超過する場合に、その旨を出力する処理とをコンピュータに実行させる。
【０００９】
なお、本発明において、「部」や「手段」、「装置」、「システム」とは、単に物理的手段を意味するものではなく、その「部」や「手段」、「装置」、「システム」が有する機能をソフトウェアによって実現する場合も含む。また、１つの「部」や「手段」、「装置」、「システム」が有する機能が２つ以上の物理的手段や装置により実現されても、２つ以上の「部」や「手段」、「装置」、「システム」の機能が１つの物理的手段や装置により実現されても良い。
【図面の簡単な説明】
【００１０】
【図１】情報処理装置の実施形態であるシステム監視装置を含むシステムの機能構成を示す図である。
【図２】図１に示したシステム監視装置の処理の流れを示すフローチャートである。
【図３】図１に示したシステム監視装置の処理の流れを示すフローチャートである。
【図４】図１に示したシステム監視装置のハードウェア構成の具体例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。即ち、本発明は、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
【００１２】
［実施形態］
［１  概要］
複数台のサーバ等からなる情報処理システムを用いてウェブサービス等の各種情報処理サービスを提供する場合、ユーザ等からのリクエストが常時変化する等の理由から、情報処理システムの負荷（プロセッサの処理能力、ネットワークの通信容量、メモリの使用量、ストレージの使用量等）も時々刻々変化する。もしシステム負荷が情報処理システムの処理能力を超えるとサービス停止等の深刻な事態が生じかねないため、情報処理システムの負荷を計測し、異常を検知することは極めて重要である。
【００１３】
従来、情報処理システムの異常は、管理者が手動で静的な監視閾値を設定することにより行われてきた。この場合、システム負荷が監視閾値を超過した場合、又は下回った場合にシステム異常として検知される。しかしながら、近年、システム要件が複雑になっていることから、システム負荷に対して手動で基準となる監視閾値を設定したのでは、十分にシステム異常を検出しきれない事態が生じている。例えば、慣例的に監視閾値は高負荷時のみを検知するように設定されることが多いことから、低負荷時の異常、例えばキャッシュストレージの負荷の減少に伴うキャッシュヒット率の低下等のシステム異常の検知が遅れたり見逃されたりすることが多い。このような低負荷時の異常を検知できるような監視閾値の設定は、情報処理システム毎に特性を深く調査する必要があるため、全てのシステムにおいて適切な監視閾値を設定するのは困難である。
【００１４】
また、ウェブサービス等の多くのサービスは負荷傾向に季節要因が含まれるが、例えばシステム負荷が上昇又は低下した場合であっても、それがシステム異常によるものなのか季節要因なのかの判断は管理者の判断に委ねられるのが通常であるため、このことが運用コストの肥大化を招いている。加えて、システム負荷が高くなった際にはサーバ台数を増やす等の対応が取られるが、あくまでも負荷が高くなったことが検出された後の事後的な対応となるため、異常検知後、一時的にパフォーマンスが低下する等の事態が生じやすい。すなわち、負荷が高まること等を事前に検知して、サーバ台数の増加等の対処を取ることが望ましい。
【００１５】
そこで本実施形態にかかるシステム監視装置では、深層学習を用いた予測モデルを用いた負荷予測、及びそれに基づく異常検知を行う。システム監視装置が自動で異常を検知して管理者に報知することで、異常の検知が遅れたり見逃されたりすることを抑制し、また、管理者が調査を行う作業負荷を軽減することが可能である。また、未来のシステム負荷を予測することにより、予め高負荷に備えてサーバ台数を増やしてサービスのパフォーマンス低下を防ぐこともできる。
【００１６】
本実施形態におけるシステム監視装置の負荷予測では、ＬＳＴＭ（Ｌｏｎｇ  Ｓｈｏｒｔ  Ｔｅｒｍ  Ｍｅｍｏｒｙ）による予測モデルを利用する。ＬＳＴＭは、長期記憶が可能な再帰的ニューラルネットワークであるため、長期的な季節要因を考慮した高速な負荷予測が可能である。また、本実施形態にかかるシステム監視装置は、このような負荷予測と実測負荷とを比較して異常検知を行うことで、長期的な季節要因を考慮した上での高速な異常検知を可能としている。
【００１７】
また、ＬＳＴＭによる予測モデルを生成する際、長期的な季節要因を当該予測モデルに反映させるためには、長期間にわたる負荷情報を学習させる必要がある。すなわち、長期間に渡る負荷情報を、学習データとして全て保持する必要がある。しかしながら、過去の全ての負荷情報を保持しておくためには、膨大な記憶容量が必要であり、またそれを用いた学習にも膨大な時間を要する。よって、本実施形態におけるシステム監視装置では、学習済みの予測モデルに対し、学習以降に新たに得られた負荷情報のみの再学習を転移学習により行う。これにより、システム監視装置は、前回予測モデルを生成する際に用いた時点以降の負荷情報のみを保持し、それを学習させればよいことから、負荷情報の保持コスト及び再学習に要する時間の低減を図ることを可能としている。
【００１８】
また、本実施形態におけるシステム監視装置は、異常が検知された場合に、検知された異常や予測負荷に応じて、好適なオペレーション情報（ワークフロー）を実行する。これにより、管理者による運用負荷を低減することができる。
【００１９】
［２  機能構成］
［２．１  情報処理システム１の概要］
以下、図１を参照しながら、本実施形態にかかるシステム監視装置１００を含む情報処理システム１の全体構成を説明する。情報処理システム１は、大きく分けて、ウェブサービス等の各種サービスを提供するサーバ２００ａ乃至２００ｎ（以下、総称してサーバ２００という。）と、サーバ２００に係るシステム負荷状況を監視するシステム監視装置１００とを含む。
【００２０】
システム監視装置１００は、各々のサーバ２００と通信可能に接続され、少なくともサーバ２００のシステム負荷状況、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の処理状況、ネットワークの通信容量、メモリの使用量、ストレージの使用量等を逐次監視する。またシステム監視装置１００は、システム異常が検出された際に、当該システム異常に対応するための処置（オペレーション）、例えば新たなサーバ２００の稼働等の対処を行う。なお、サーバ２００が提供するサービスはウェブサービスに限られず、任意のものとすることができる。
【００２１】
図１に示すように、システム監視装置１００は、負荷検出部１０１、負荷情報ＤＢ（データベース）１０３、第１予測部１０７、第２予測部１０９、学習部１１１、異常判定部１１３、出力部１１５、対処部１１７、及びオペレーションＤＢ１１９を含む。
【００２２】
ここで、本実施形態に係るシステム監視装置１００では、現在時刻（例えば時刻Ｔとする）から一定時間前の時点（例えば時刻Ｔ−ｔ１。ｔ１＞０）までの負荷情報１０５を用いて、現在時刻Ｔのシステム負荷を第１予測部１０７で予測する（予測システム負荷）。一方、また負荷検出部１０１は現在時刻Ｔにおける実際のシステム負荷を検出する（実測システム負荷）。異常判定部１１３は、時刻Ｔにおける予測システム負荷と実測システム負荷とを比較し、もし両者の乖離が閾値よりも大きければ、予期しない異常が発生しているものとして、出力部１１５から管理者へ報知等する。
【００２３】
またこれと併せて、第２予測部１０９では、現在時刻Ｔまでの負荷情報１０５を用いて、現在時刻Ｔから一定時間後の時点（時刻Ｔ＋ｔ２。ｔ２＞０）のシステム負荷を予測する。対処部１１７は、異常判定部１１３で異常が検出された場合には、未来である時刻Ｔ＋ｔ２に生じると予想されるシステム負荷に応じたオペレーション情報１２１を読込み、当該オペレーション情報１２１に基づいて、検出されたシステム異常及び将来予想されるシステム負荷への対処を行うことができる。
【００２４】
なお、本実施形態では、現在時刻Ｔ＋ｔ２の予測システム負荷に応じたオペレーション情報１２１を読み込んで対処を行うが、これに限られるものではない。例えば、異常判定部１１３で検出された異常の種類に応じたオペレーション情報１２１を読み込んで対処を行うことも考えられる。この場合には、システム監視装置１００は第２予測部１０９を必ずしも備えている必要はない。
【００２５】
［２．２  システム監視装置１００の機能］
以下、システム監視装置１００が有する各機能を説明する。なお、図１に示したシステム監視装置１００の各機能は、必ずしも物理的に１台の装置として実現される必要はなく、複数台の協働するコンピュータにより実現することも考えられる。例えば第１予測部１０７及び第２予測部１０９が有する予測モデル１０７ａ及び予測モデル１０９ａを生成及び再学習するための学習部１１１と、他の機能とを異なる装置上に実現することも考えられる。
【００２６】
負荷検出部１０１は、各々のサーバ２００と通信可能に設けられ、サーバ２００の実際のシステム負荷を検出する。システム負荷の検出方法は種々考えられるが、例えば、サーバ２００からサーバ自身で測定した情報を受信する方法も考えられるし、負荷検出部１０１がサーバ２００の動作を観察することによりシステム負荷を測定することも考えられる。なお、負荷検出部１０１は、プロセッサの稼働状況やメモリの使用状況等、複数種類のシステム負荷を検出するように構成することができる。
【００２７】
負荷情報ＤＢ１０３は、負荷情報１０５を管理する。負荷情報１０５には、負荷検出部１０１で検出されたシステム負荷の値と、検出或いは測定された時刻（絶対時刻であるか、或いは所定の時点を基準とした相対時刻であるかは問わない）の情報とが少なくとも含まれる。ここで、もし監視対象の負荷が、例えばプロセッサの稼働状況、メモリの使用状況、ネットワーク帯域の使用状況など、複数種類あるのであれば、各々のシステム負荷の値が、時刻情報と対応付けられて負荷情報１０５として負荷情報ＤＢ１０３に格納される。
【００２８】
第１予測部１０７及び第２予測部１０９は、各々、予測モデル１０７ａ及び予測モデル１０９ａを用いて、負荷情報ＤＢ１０３から得られる負荷情報１０５に基づいて、例えば３０分後等の所定時間後の予測システム負荷を予測する。例えば、予測モデル１０７ａ及び予測モデル１０９ａは、時刻Ｔｘまでの負荷情報１０５に基づいて、時刻Ｔｘよりも時間ｔ（ｔ＞０。以下同じ）先のシステム負荷、すなわち時刻Ｔｘ＋ｔのシステム負荷を算出することができる。第１予測部１０７及び第２予測部１０９は、このようなシステム負荷の予測を、例えば６０秒毎等、定期的に行う。
【００２９】
なお、第１予測部１０７及び第２予測部１０９は、プロセッサの稼働状況やメモリの使用状況、ネットワーク帯域の使用状況等の、監視対象のシステム負荷の種類毎に、各々複数用意することもできるし、或いは複数のシステム負荷を併せて処理するものとして用意することもできる。ここでは、システム負荷毎に用意するものとする。その場合、後述の学習部１１１は、システム負荷の種類毎に、予測モデル１０７ａ及び予測モデル１０９ａの学習及び再学習を行う。
【００３０】
なお、予測モデル１０７ａ及び予測モデル１０９ａは同一であっても、異なるモデルであっても良い。もし異なるものとする場合には、予測モデル１０７ａでは時刻Ｔｘまでの負荷情報１０５に基づき時刻Ｔｘ＋ｔ１（ｔ１＞０）のシステム負荷が、予測モデル１０９ａでは時刻Ｔｘまでの負荷情報１０５に基づき時刻Ｔｘ＋ｔ２（ｔ２＞０）のシステム負荷が、それぞれ予測できる。ここでは、第１予測部１０７で使用される予測モデル１０７ａと、第２予測部１０９で使用される予測モデル１０９ａとは同一であるもの、つまり同じ負荷情報１０５を入力すれば、同一の予測システム負荷が得られるものとして説明する。予測モデル１０７ａ及び１０９ａを同一のものとすることにより、予測モデル１０７ａ及び予測モデル１０９ａを生成するための学習及び再学習は各々１回となるため、運用コストを下げることが可能である。
【００３１】
また、予測モデル１０７ａ及び予測モデル１０９ａが入力とする負荷情報１０５は、１つの時刻Ｔｘにおける負荷情報１０５のみとしても良いし、或いは、一定の時間幅にかかる負荷情報１０５、例えば時刻Ｔｘ−ｔから時刻Ｔｘまでの負荷情報１０５とすることも考えられる。
【００３２】
第１予測部１０７と第２予測部１０９とでは、入力される負荷情報１０５が異なる。例えば、第１予測部１０７は時刻Ｔ−ｔまでの負荷情報１０５を入力として時刻Ｔのシステム負荷を予測し、第２予測部１０９は時刻Ｔまでの負荷情報１０５を入力として時刻Ｔ＋ｔのシステム負荷を予測する。時刻Ｔを現在時刻として運用する場合には、第１予測部１０７では、過去である時刻Ｔ−ｔ（例えば現在時刻の３０分前）までのシステム稼働状況から予測される現在時刻Ｔのシステム負荷が算出される。一方、第２予測部１０９では、現在時刻Ｔまでのシステム稼働状況から、未来である時刻Ｔ＋ｔ（例えば現在時刻の３０分後）におけるシステム負荷が算出される。
【００３３】
学習部１１１は、予測モデル１０７ａ及び予測モデル１０９ａを生成するための学習、及びその再学習を行う。先述の通り、本実施形態においては予測モデル１０７ａ及び１０９ａは同一であるため、ここでは予測モデル１０７ａを生成／再学習するものとして説明する。なお、もし予測モデル１０７ａ及び予測モデル１０９ａを別のものとする場合には、各々について、下記の学習及び再学習の処理を行えば良い。
【００３４】
学習部１１１は、負荷情報ＤＢ１０３に格納される負荷情報１０５を学習データとして、ＬＳＴＭによる学習を行うことで予測モデル１０７ａを生成する。先述の通り、サーバ２００が提供するサービスは、季節や月、曜日、時間帯等の種々の季節要因に応じて変化する。よって、最初に予測モデル１０７ａを生成する際に用いる負荷情報１０５は、なるべく長期間のものとすることが好ましい。ＬＳＴＭは長期記憶が可能な再帰的ニューラルネットワークであるため、より長期間にわたる負荷情報１０５を学習させることで、長期的な季節要因を考慮した予測モデル１０７ａを生成することが可能となる。
【００３５】
また、学習部１１１は、既に生成されている予測モデル１０７ａに対し、転移学習により再学習を行う機能も有する。この際、例えば任意の時刻Ｔｎまでの負荷情報１０５を学習データとして予測モデル１０７ａが生成されているのであれば、例えば時刻Ｔｎ＋１（時間軸で時刻Ｔｎよりも先にある任意の時刻）〜時刻Ｔｎ＋ｘの負荷情報１０５を学習データとして、学習部１１１は予測モデル１０７ａの再学習を行えば良い。もし時刻Ｔｎ＋ｘまでの負荷情報１０５の再学習が終了し、予測モデル１０７ａにそれらの負荷情報１０５が反映されたのであれば、負荷情報ＤＢ１０３から、時刻Ｔｎ＋ｘまでの負荷情報１０５を削除することが可能である。これにより、負荷情報１０５を長期間保持する必要がなくなるため、システム監視装置１００の運営コストを抑制させることが可能となる。
【００３６】
なお、学習部１１１は、例えば１日に１回、１週間に１回等、定期的に自動で予測モデル１０７ａの再学習処理を行うことができる。定期的に学習部１１１が再学習を行うことで、１回の再学習に用いる学習データである負荷情報１０５の量が減るため、予測モデル１０７ａの再学習に要する１回あたりの時間を低減させることができる。
【００３７】
異常判定部１１３は、第１予測部１０７で予測された予測システム負荷の値と、負荷検出部１０１で検出された実際のシステム負荷（実測システム負荷）との差異に基づき、異常を検出する。すなわち、時刻Ｔ−ｔまでのシステム稼働状況から予測される時刻Ｔの予測システム負荷の値と、実際に観測された時刻Ｔのシステム負荷の値とが、例えば閾値以上乖離していれば、異常判定部１１３は異常と判定する。これは、第１予測部１０７で生成される予測システム負荷は、一定時間ｔ前までのシステム稼働状況から、季節要因を考慮して算出されるものであるため、この予測システム負荷の値と、実際の実測システム負荷の値とが大きく乖離している場合には、予期しない何らかの事態（想定しない大量の処理要求を受けている、サーバ２００の何らかの部位の稼動状態に問題がある等）と考えられるからである。
【００３８】
出力部１１５は、異常判定部１１３による異常判定結果を出力する。出力方法としては、例えば、表示装置へのメッセージの表示やスピーカからの音声出力、メールやメッセンジャーアプリケーション等のメッセージ通知を行うことにより、管理者へ報知すること、或いは、ログファイルとして、時刻及びその時刻における正常／異常状態を出力すること、等が考えられる。
【００３９】
対処部１１７は、異常判定部１１３により異常が検出された際に、当該異常に対する対処（オペレーション）を行う。この際、対処部１１７は、オペレーションＤＢ１１９に予め格納されたオペレーション情報１２１を参照することができる。オペレーション情報１２１に記載されるオペレーションの内容としては、例えば、異常が検知されたシステム負荷の種類に応じて、休止中のサーバ２００の稼働や一部のサーバ２００の稼働停止、サーバ２００の再起動等を行うためのものが考えられる。
【００４０】
なおこの際、対処部１１７は、予想される未来の予測システム負荷に応じた対処を行うことも考えられる。この場合には、対処部１１７は、異常判定部１１３から出力される現在時刻Ｔ時点での異常判定結果と、第２予測部１０９で生成される時刻Ｔ＋ｔの予測システム負荷とを用いてオペレーション情報１２１を参照すればよい。これにより、例えば現在時刻Ｔでの異常が異常判定部１１３により検出された場合に、第２予測部１０９で算出される時刻Ｔ＋ｔのシステム負荷に応じた対処を対処部１１７が行うことが可能となる。また、例えば時刻Ｔ＋ｔに予想される予測システム負荷が高ければサーバの新規稼働等を行うものの、時刻Ｔ＋ｔで予想される予測システム負荷は正常範囲内である場合には、何ら対処を行わない、といったオペレーションも可能となる。
【００４１】
［３  処理の流れ］
以下、図２及び図３を参照しながら、システム監視装置１００の処理の流れを説明する。図２及び図３は、システム監視装置１００の処理の流れを示すフローチャートである。
【００４２】
なお、後述の各処理ステップは、処理内容に矛盾を生じない範囲で、任意に順番を変更して若しくは並列に実行することができ、また、各処理ステップ間に他のステップを追加しても良い。更に、便宜上１つのステップとして記載されているステップは複数のステップに分けて実行することもでき、便宜上複数に分けて記載されているステップを１ステップとして実行することもできる。
【００４３】
［３．１  異常検出時の処理の流れ］
まず、図２を参照しながら、システム監視装置１００によるシステム異常検出にかかる処理を説明する。図２は、システム異常検出にかかるシステム監視装置１００の処理の流れを示すフローチャートである。
【００４４】
まず負荷検出部１０１は、現在時刻Ｔにおけるサーバ２００のシステム負荷（実測システム負荷）を検出する（Ｓ２０１）。先述の通り、負荷検出部１０１によるシステム負荷の検出方法は、サーバ２００等のシステム稼働状況を負荷検出部１０１を観測することにより検出しても良いし、或いは、サーバ２００側から受信することにより検出することも考えられる。検出された実測システム負荷は、時刻Ｔと対応付けられて負荷情報ＤＢ１０３に負荷情報１０５として格納される。
【００４５】
第１予測部１０７は、負荷情報ＤＢ１０３に格納された、時刻Ｔよりも時間ｔ（ｔ＞０）早い、時刻Ｔ−ｔまでの負荷情報１０５を読込み、当該負荷情報１０５を予測モデル１０７ａに入力することにより、時刻Ｔの予測システム負荷を算出する（Ｓ２０３）。
【００４６】
異常判定部１１３は、第１予測部１０７で算出された時刻Ｔの予測システム負荷の値と、負荷検出部１０１で検出された時刻Ｔにおける実測システム負荷の値との差異を算出する（Ｓ２０５）。この結果、予測システム負荷と実測システム負荷との差異が予め定められた閾値以上であった場合には（Ｓ２０７のＹｅｓ）、異常判定部１１３は異常が発生しているものとして判定し、その旨を出力部１１５から出力させる（Ｓ１１５）。管理者は、当該出力を見ることで、サーバ２００からなるシステムに何らかの異常が発生していることを把握することができるため、これに応じて異常への何らかの対処を行うことが可能である。
【００４７】
また、第２予測部１０９では、時刻Ｔまでの実測システム負荷である負荷情報１０５を読込み、当該負荷情報１０５を予測モデル１０９ａに入力することにより、時刻Ｔ＋ｔの予測システム負荷を算出する（Ｓ２１１）。対処部１１７は、異常判定部１１３で検出された異常と、当該時刻Ｔ＋ｔの予測システム負荷とに基づくオペレーション情報１２１をオペレーションＤＢ１１９から読出し、オペレーションを実行する（Ｓ２１５）。なお、主にシステム異常への対応を管理者が行う場合には、Ｓ２１１乃至Ｓ２１５の処理は必ずしも行う必要はない。
【００４８】
なお、Ｓ２０７において、予測システム負荷の値と実測システム負荷の値との乖離が閾値未満である場合には（Ｓ２０７のＮｏ）、Ｓ２０９乃至Ｓ２１５にかかる処理は不要である。
【００４９】
システム監視装置１００でのシステム管理を継続する場合には（Ｓ２１７のＮｏ）、システム監視装置１００は、時刻ＴをＴ＋１（時間軸で所定時間単位先にある任意の時刻。例えば時刻Ｔの３０秒後）に更新して（Ｓ２１９）、再度Ｓ２０１以降の処理を行えば良い。
【００５０】
［３．２  予測モデル１０７ａの学習に関する処理の流れ］
次に、図３を参照しながら、システム監視装置１００がシステム負荷を予測するために利用する予測モデル１０７ａの学習にかかる処理を説明する。図３は、予測モデル１０７ａの学習にかかるシステム監視装置１００の処理の流れを示すフローチャートである。なお、先述の通り、本実施形態においては、予測モデル１０９ａは予測モデル１０７ａと同一であるため、図３の処理により、予測モデル１０７ａ及び予測モデル１０９ａの両者が生成される。もし両者を違うものとするのであれば、学習データとする負荷情報１０５の相違はあるものの、同様の手順により予測モデル１０９ａも生成することができる。
【００５１】
まだ予測モデル１０７ａが生成されていない場合には、システム監視装置１００の学習部１１１は、予測モデル１０７ａを生成するために時刻Ｔｎまでの全ての負荷情報１０５を読込み（Ｓ３０１）、これを学習データとして、ＬＳＴＭにより予測モデル１０７ａを生成する（Ｓ３０３）。生成された予測モデル１０７ａを第１予測部１０７に読み込ませることで、第１予測部１０７は負荷情報１０５に基づいてシステム負荷を予測できるようになる。
【００５２】
その後、予め設定された、予測モデル１０７ａの再学習時刻が到来すると（Ｓ３０５のＹｅｓ）、学習部１１１は、時刻Ｔまでの負荷情報１０５による学習で生成された予測モデル１０７ａを読み込むとともに（Ｓ３０７）、時刻Ｔｎ＋１乃至Ｔｎ＋ｔ（Ｔｎ＋ｔ＞Ｔｎ＋１であり、ｔは任意の時間）までの負荷情報１０５を負荷情報ＤＢ１０３から読み込む（Ｓ３０９）。学習部１１１は、読み込んだ時刻Ｔｎ＋１乃至Ｔｎ＋ｔの負荷情報１０５を用いて、予測モデル１０７ａの転移学習による再学習を行う。これにより学習部１１１は、時刻Ｔｎまでの負荷情報１０５を考慮した予測モデル１０７ａを、時刻Ｔｎ＋ｔまでの負荷情報１０５を考慮したものとすることができる。よって学習部１１１は、予測モデル１０７ａに反映された最新の時刻を示す時刻Ｔｎを、時刻Ｔｎ＋ｔで更新する（Ｓ３１３）。またこのとき、学習部１１１は、負荷情報ＤＢ１０３に格納された時刻Ｔｎ＋ｔまでの負荷情報１０５を削除しても良い。
【００５３】
システム監視装置１００でのシステム管理を継続する場合には（Ｓ３１５のＮｏ）、システム監視装置１００は、Ｓ３０５乃至Ｓ３１３の処理を繰り返すことにより、予測モデル１０７ａの定期的な更新を行うことができる。
【００５４】
［４  ハードウェア構成］
以下、図４を参照しながら、システム監視装置１００を実現可能なコンピュータ（情報処理装置）のハードウェア構成を説明する。システム監視装置１００は、制御部４０１と、記憶部４０５と、通信インタフェース（Ｉ／Ｆ）部４１１と、入力部４１３と、表示部４１５とを含み、各部はバスライン４１７を介して接続される。
【００５５】
制御部４０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ。図示せず）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ。図示せず）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４０３等を含む。制御部４０１は、記憶部４０５に記憶される制御プログラム４０７を実行することにより、一般的なコンピュータとしての機能に加え、図１に示したシステム監視装置１００の各構成に関する処理を実行可能に構成される。例えば、図１に示した負荷検出部１０１、第１予測部１０７、第２予測部１０９、学習部１１１、異常判定部１１３、出力部１１５、及び対処部１１７は、ＲＡＭ４０３に一時記憶された上で、ＣＰＵ上で動作する制御プログラム４０７として実現可能である。
【００５６】
また、ＲＡＭ４０３は、制御プログラム４０７に含まれるコードの他、負荷情報１０５やオペレーション情報１２１、異常判定部１１３による判定結果等の一部又は全部を一時的に記憶する。更にＲＡＭ４０３は、ＣＰＵが各種処理を実行する際のワークエリアとしても使用される。
【００５７】
記憶部４０５は、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やフラッシュメモリ等の不揮発性の記憶媒体である。記憶部４０５は、一般的なコンピュータとしての機能を実現するためのオペレーティングシステム（ＯＳ）や制御プログラム４０７、及びその実行に必要となるデータであるＤＢ４０９を記憶する。ＤＢ４０９には、負荷情報ＤＢ１０３及びオペレーションＤＢ１１９を含みうる。
【００５８】
通信Ｉ／Ｆ部４１１は、必要に応じて、サーバ２００や、その他の情報処理装置と有線又は無線によるデータ通信を行うためのデバイスである。例えば、サーバ２００の負荷を検出するための負荷検出部１０１による負荷検出処理は、通信Ｉ／Ｆ部４１１を介して行うことが考えられる。
【００５９】
入力部４１３は、システム監視装置１００の管理者から各種入力操作を受け付けるためのデバイスである。入力部４１３の具体例としては、キーボードやマウス、タッチパネル等を挙げることができる。
【００６０】
表示部４１５は、システム監視装置１００を管理する管理者に各種情報を提示するためのディスプレイ装置である。表示部４１５の具体例としては、例えば液晶ディスプレイや有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等が挙げられる。例えば、異常判定部１１３によりシステム異常が検出された際には、出力部１１５が表示部４１５にその旨を表示させること等が考えられる。
【００６１】
［５  本実施形態の効果］
以上説明したように、本実施形態に係るシステム監視装置１００では、長期的な季節要因を考慮しうる予測モデル１０７ａを用いて、予測システム負荷を算出し、この予測システム負荷と、実測システム負荷とを比較することにより、異常を検出する。これにより、システム負荷が高くない場合であっても、予測と異なる状況にあれば異常が検出されるため、異常の検知漏れ等を抑制することができる。
【００６２】
また、監視対象となる時刻Ｔよりも先の時刻Ｔ＋ｔの予測システム負荷を算出し、これに基づく対処を可能とすることで、将来的に高負荷等によるパフォーマンス低下が見込まれる場合には、予めサーバを増強する等の措置をとることが可能である。
更に、異常の検知、及びその対処を自動的に行うことを可能とするため、管理者による運用コストの低減を図ることができる。
【００６３】
［６  付記］
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
【符号の説明】
【００６４】
１…情報処理システム、１００…システム監視装置、１０１…負荷検出部、１０３・・・負荷情報データベース（ＤＢ）、１０５…負荷情報、１０７…第１予測部、１０７ａ…予測モデル、１０９…第２予測部、１０９ａ…予測モデル、１１１…学習部、１１３…異常判定部、１１５…出力部、１１７…対処部、１１９…オペレーションＤＢ、１２１…オペレーション情報、２００…サーバ、４０１…制御部、４０３…ＲＡＭ、４０５…記憶部、４０７…制御プログラム、４１１…通信インタフェース（Ｉ／Ｆ）部、４１３…入力部、４１５…表示部、４１７…バスライン
【図１】
2019079120.tif 000003
【図２】
2019079120.tif 000004
【図３】
2019079120.tif 000005
【図４】
2019079120.tif 000006