JP2008310470A - 計算機システムの異常監視方法 - Google Patents

計算機システムの異常監視方法 Download PDF

Info

Publication number
JP2008310470A
JP2008310470A JP2007156148A JP2007156148A JP2008310470A JP 2008310470 A JP2008310470 A JP 2008310470A JP 2007156148 A JP2007156148 A JP 2007156148A JP 2007156148 A JP2007156148 A JP 2007156148A JP 2008310470 A JP2008310470 A JP 2008310470A
Authority
JP
Japan
Prior art keywords
load
input data
actual load
unit
actual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007156148A
Other languages
English (en)
Inventor
Wataru Yumita
亙 弓田
Akihiro Hirose
昭廣 廣瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Hitachi Information and Control Systems Inc
Hitachi Information and Control Solutions Ltd
Original Assignee
Hitachi Ltd
Hitachi Information and Control Systems Inc
Hitachi Information and Control Solutions Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Hitachi Information and Control Systems Inc, Hitachi Information and Control Solutions Ltd filed Critical Hitachi Ltd
Priority to JP2007156148A priority Critical patent/JP2008310470A/ja
Publication of JP2008310470A publication Critical patent/JP2008310470A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】 計算機システムのシステム異常を監視するについて、システム異常を検出した場合にそのシステム異常の原因を容易に特定可能とする計算機システムの異常監視方法の提供。
【解決手段】 異常監視方法を実行するための異常監視システム1は、入力データ11の入力量に応じて演算処理装置に通常的に生じる負荷の実績を入力データ量対応実績負荷として収集する実績負荷収集部5を備え、また実績負荷収集部が収集した入力データ量対応実績負荷を格納する実績負荷格納部6を備え、さらに実績負荷格納部から取り出した入力データ量対応実績負荷で演算処理装置の現在負荷を評価することでシステム異常の有無を判定する負荷監視部7を備えている。
【選択図】 図2

Description

本発明は、様々な分野でのシステムの制御や運用あるいは監視などに用いられる計算機システムについて、それに発生する可能性のあるシステム異常を監視する技術に関する。
例えば列車運行などのように規模が大きく公共性も高い分野での各種システムの制御や運用あるいは監視などに用いられる計算機システムは、それにシステム異常を生じてシステムダウンを来たした場合の影響がきわめて大きなものとなる。このため、システムダウンにつながるようなシステム異常を事前に検出し、システムダウンが実際に発生するのを防止できるようにすることが望まれる。
こうした要望について、例えば特許文献1や特許文献2に開示のような技術が知られている。特許文献1の技術では、CPU負荷を定常負荷とイベント負荷から求め、最も高い負荷がかかる事象を想定して負荷管理を行なうことを可能としている。また、イベント負荷をイベント数×イベント毎の該当プログラム処理時間から求めることを提案している。一方、特許文献2の技術では、CPUやメモリなどのリソースの使用量、使用率およびトランザクションデータとスループットを取得して相関関係を求め、複数の計算機の障害発生を検知または予測する性能監視について提案している。
特開2001−34590号公報 特開2005−327261号公報
計算機システムのシステム異常には、入力データが過剰となることにより負荷が計算機システムの許容負荷を超えることになること、つまり入力データ量による負荷の過剰化が大きなものとしてあるが、この他に入力データやプログラムの異常でもたらされるシステム異常もある。
入力データやプログラムに異常が発生すると、それに起因して計算機システムの負荷が異常に増大するのが一般的である。したがって上記のような従来技術でも入力データやプログラムの異常に起因するシステム異常を検出することは可能である。すなわち上記従来技術は、計算機システムの許容負荷と現在における計算機システムの負荷の関係でシステム異常を監視する手法であるといえるが、入力データやプログラムの異常によりもたらされる負荷の過剰化を通じて入力データやプログラムの異常に起因するシステム異常も検出することができる。
ところで、計算機システムにシステム異常が発生した場合には、それへの対処が必要となる。この場合、システム異常をもたらした原因を特定できるか否かは、システム異常の対処への迅速性に大きく影響する。つまりシステム異常が入力データの増大に起因する負荷の過剰化なのか、それとも入力データやプログラムの異常に起因するものなのかを特定できれば、より迅速な対処が可能になるということである。
こうしたことから計算機システムのシステム異常監視については、システム異常を検出した場合にシステム異常の原因を特定できることが望まれる。しかるに、従来技術では、許容負荷と現在負荷の関係だけでシステム異常を監視するため、システム異常の原因を特定することが容易でない。
本発明は以上のような事情を背景になされたものであり、その課題は、計算機システムのシステム異常を監視するについて、システム異常を検出した場合にそのシステム異常の原因を容易に特定可能とする計算機システムの異常監視方法の提供にある。
上述のように計算機システムのシステム異常には、入力データの増大に起因する負荷の過剰化があり、また入力データやプログラムの異常に起因するシステム異常がある。そしてこれら各システム異常ではいずれの場合にも負荷の過剰化を生じる。ただ、その負荷の過剰化の原因は、各システム異常により異なる。すなわちシステム異常が入力データ量による負荷の過剰化であれば、入力データの異常増大が原因としてあり、一方、システム異常の原因が入力データやプログラムの異常にある場合には、入力データやプログラムの異常に起因して負荷が異常に増大することになることから、入力データの異常増大を伴うことなく負荷の過剰化がもたらされる。
こうした負荷の過剰化原因の特性に着目すると、入力データの入力量に応じて通常的に生じる負荷の実績に関する情報として入力データ量対応実績負荷を取得し、この入力データ量対応実績負荷に基づいて現在の負荷を評価してシステム異常を判定するようにすることで、システム異常の原因が入力データの異常な増大にあるのか、それとも入力データやプログラムの異常にあるのかを容易に特定することが可能となる。つまり、入力データが或る入力量での状態における現在の負荷がその入力データ量に対応する実績負荷に比べて一定以上に大きく、そのために負荷過剰としてシステム異常を生じている場合には、その負荷過剰つまりシステム異常が入力データ量によるものでなく、入力データやプログラムの異常に起因すると判定することが容易である。
本発明は以上のような考え方で上記課題を解決する。具体的には、入力データを処理して出力データを生成する演算処理装置を備えた計算機システムについて、前記入力データの処理に際し前記演算処理装置に生じる負荷に基づいてシステム異常を監視する計算機システムの異常監視方法において、前記演算処理装置で前記入力データの入力量に応じて通常的に生じる負荷の実績を測定することで入力データ量対応実績負荷を収集する過程、前記演算処理装置における現在の負荷を測定して現在負荷を取得する過程、および前記現在負荷が前記入力データ量対応実績負荷よりも一定以上大きいか否かとしてシステム異常の有無を判定する過程を含むことを特徴としている。
以上のような計算機システムの異常監視方法については、前記入力データに種別がある場合に、前記入力データ種別とその種別ごとの入力データの入力数により前記入力データをクラスに分けるクラス分けを行い、そして前記入力データ量対応実績負荷を前記クラス分けに対応させて管理し、前記現在負荷と前記入力データ量対応実績負荷の比較に際しては、前記入力データ量対応実績負荷として、前記現在負荷の測定時における入力データのクラスと対応するクラスの入力データ量対応実績負荷を用いるようにするのが好ましい。このような入力データのクラス分けを行うことにより、入力データ量対応実績負荷による現在負荷の評価をより効果的に行うことができるようになる。
また以上のような計算機システムの異常監視方法については、任意の時間間隔で順次的に入力する前記入力データについて、所定の入力時間間隔を条件として前記入力データ量対応実績負荷の収集のための連続受信を行い、その連続受信により前記入力データ量対応実績負荷の収集における単位の収集サイクルとするものとし、そして前記入力データに関するダミーデータを作成することで前記収集サイクルの終了を区切れるようにするのが好ましい。
このようにダミーデータで入力データ量対応実績負荷の収集における単位収集サイクルの終了を区切れるようにすることにより、入力データ量対応実績負荷の収集処理をより容易に行えるようになる。
以上のような計算機システムの異常監視方法は、上述のように、システム異常の原因が入力データ量による負荷過剰にあるのか、それとも入力データやプログラムの異常にあるのかを容易に特定できるという特徴がある。したがって、以上のような計算機システムの異常監視方法については、システム異常を検出した場合に、その時点で動作しているアプリケーションプログラムの動作をトレースするようにするのが好ましい。
このようにすることにより上記のような特徴をより効果的に活用することができる。つまり、演算処理装置の現在負荷が入力データ量対応実績負荷よりも一定以上大きいとして検出されるシステム異常は、入力データの異常かプログラムの異常のいずれかによると高い確度をもって判定できるので、行わせたトレースが無駄になることが少なく、その実効性をより高めることができるということである。
以上のような本発明によれば、計算機システムのシステム異常を監視するについて、システム異常を検出した場合にそのシステム異常の原因を容易に特定することが可能となる。
以下、本発明を実施するための形態について説明する。図1に示すのは、本発明を適用した計算機システムで構成した監視システムの例である。本例の監視システムは、それぞれ複数で設けられる監視対象K(K1〜Kn)、サーバ用計算機システムS(S1〜Sm)、およびクライアント用計算機システムT(T1〜Tm)を含んでいる。監視対象K1〜Knは、例えば数百〜数万に及ぶ数で設けられており、それぞれ所定の監視データを収集して出力する。サーバ用計算機システムS1〜Smは、監視対象K1〜KnからLANなどの通信ネットワークを介して送信されてくる監視データを入力データとして監視のための処理を行い、その処理で監視結果としての出力データを生成して出力する。クライアント用計算機システムT1〜Tmは、サーバ用計算機システムS1〜Smそれぞれが出力する監視結果を監視員などによる視認のためにそれぞれのディスプレイD1〜Dmに表示する処理を行う。またサーバ用計算機システムSとクライアント用計算機システムTは、それぞれ異常監視システムを備え、それぞれに発生する可能性のあるシステム異常をその異常監視システムで常時的に監視できるようにされ、この異常監視により、システムダウンにつながるようなシステム異常を事前に検出し、システムダウンが実際に発生するのを防止できるようにされている。
図2に、サーバ用計算機システムSやクライアント用計算機システムTが備える異常監視システムの一実施形態における基本的な構成を示す。本実施形態の異常監視システム1は、サーバ用計算機システムSやクライアント用計算機システムTで発生する可能性のあるシステム異常を監視するのに機能する。その異常監視は、入力データの入力量に応じてサーバ用計算機システムSやクライアント用計算機システムTにおけるCPU(演算処理装置:図示を省略)に通常的に生じる負荷の実績に関する情報として入力データ量対応実績負荷(以下実績負荷と略称する)を収集し、その収集した実績負荷に基づいて現在のCPU負荷を評価してシステム異常を判定するようにしてなされる。
また異常監視システム1は、システム異常を検出した場合のアプリケーションプログラムトレースデータ取得機能も有する。すなわち異常監視システム1は、システム異常を検出した場合に、そのシステム異常時に動作しているアプリケーションプログラムの動作を後のシステム異常解析に際してトレースできるようにするためのトレースデータを取得できるようにされている。
以上のように機能する異常監視システム1は、それぞれコンピュータプログラムとして構成される入力部2、出力部3、CPU負荷測定部(演算処理装置負荷測定部)4、実績負荷収集部5、実績負荷格納部6、負荷監視部7、動作タスク検出部8、およびトレースデータ格納部9を備えている。
入力部2は、図1の監視対象Kから送信されてくる監視データを入力データ11として取り込む。入力データ11には、A1入力データやA2入力データなどとして種別がある。この入力データ種別は、データの種類(監視データの場合であれば監視内容など)や1つの入力データにおけるデータ長(データ量)などに基づいて決められる。入力データ11は、任意の時間間隔で順次的に入力部2に入力する。入力部2は、この任意の時間間隔で順次的に入力する入力データ11について所定の入力時間間隔を条件として連続受信を行う。
具体的には、1つの入力データを受信するごとに一定の連続受信用の入力時間間隔Tmaxをタイマ(図示を省略)で設定し、その入力時間間隔Tmaxの間に次の入力データが入力することを条件にその次入力データを連続受信の入力データとする。このような連続受信は、実績負荷収集における収集サイクルを与えることになる。つまり実績負荷収集は、入力データの種別と入力数に応じた実績負荷の収集としてなされ、あるサイクルを単位として実績負荷を繰返し的に収集することでなされるが、その収集サイクルは、入力データの連続受信範囲とされる。
こうした連続受信ないし収集サイクルについては、その終了を区切るためにダミーデータを用いる。具体的には、入力時間間隔Tmaxの間に次ぎの入力データの入力がなかった場合に、当該の連続受信における入力データの種別と同じ種別のダミーデータを作成し、このダミーデータにより連続受信ないし収集サイクルの終了を区切るようにする。
出力部3は、CPUでの入力データ11の処理で生成される出力データ12の外部への出力を行う。また出力部3は、上記のダミーデータを受け取ることで現在の収集サイクルの終了を判定する。つまり出力部3は、ダミーデータを受け取った際に、その時刻を現在の収集サイクルの終了時刻とし、それを実績負荷収集部5に提供する。
CPU負荷測定部4は、単位時間当たりのCPUの動作率としてCPU負荷を測定する。CPU負荷の測定は、実績負荷収集と負荷監視それぞれのために行われる。実績負荷収集のためのCPU負荷測定は、収集サイクルを単位として行われ、実績負荷収集部5からの負荷測定開始指令で開始され、実績負荷収集部5からの負荷測定終了指令で終了する。負荷監視のためのCPU負荷測定は、所定の監視周期で繰り返すようにしてなされる。
実績負荷収集部5は、実績負荷収集開始部15、実績負荷収集終了部16、および実績負荷編集部17を含んでいる。
実績負荷収集開始部15は、実績負荷編集部17でなされる後述のような実績負荷編集に必要な入力データの管理的処理などを行い、またCPU負荷測定部4に負荷測定開始を指令する。その負荷測定開始指令は、1つの収集サイクルが終了した後の新たな入力データの入力があることを条件にしてなされる。こうした実績負荷収集開始部15での処理の詳細については後述する。
実績負荷収集終了部16は、収集サイクルの終了を管理し、CPU負荷測定部4に負荷測定終了を指令する。その負荷測定終了指令は、出力データがダミーデータとなることを条件にしてなされる。こうした実績負荷収集終了部16での処理の詳細については後述する。
実績負荷編集部17は、CPU負荷測定部4から渡されるCPU負荷データを編集して実績負荷格納部6に格納する。その編集処理には、クラス分け処理と統計処理が含まれる。
クラス分けは、入力データについてなされるものであり、実績負荷収集にあっては、実績負荷収集時の入力データについてなされる。すなわち1つの収集サイクルにおける連続受信の入力データを入力データ種別と連続受信での入力数により実績負荷収集時の入力データをクラスに分けるということである。こうした実績負荷収集におけるクラス分けのための処理は、実績負荷格納部6が有している実績負荷記録テーブル18にクラスごとに実績負荷を記録することでなされる。実績負荷格納部6の実績負荷記録テーブル18は、入力データの種別ごとに作成されており、これにより入力データ種別についてのクラス分けがなされている。また実績負荷記録テーブル18には、所定の入力数単位(図2の例では、ある数N1〜Nnについて0〜N1、N1〜N2、…Nn−1〜Nnとして入力数単位が区切られている)ごとに作成された実績負荷記録欄19が設けられており、この入力数単位ごとの実績負荷記録欄19により入力数によるクラス分けがなされている。つまり1つの収集サイクルで収集された実績負荷のデータは、その収集サイクルでの入力データの種別に対応する実績負荷記録テーブル18で、かつその収集サイクルでの入力数に対応した実績負荷記録欄19に記録される。
統計処理では、負荷平均を求める。負荷平均は、繰り返される収集サイクルについてクラスごとに求める平均値である。また統計処理では、負荷平均について負荷標準偏差を求める。したがって実績負荷格納部6における実績負荷記録テーブル18の実績負荷記録欄19には、負荷平均、負荷標準偏差、および負荷平均の基礎となる収集サイクル数、つまり1つの実績負荷記録欄19への実績負荷の格納回数が実績負荷に関するデータとして記録されることになる。以上のような実績負荷編集部17での処理の詳細については後述する。
実績負荷格納部6は、実績負荷収集部5が収集・編集した実績負荷データを格納保存し、またその実績負荷データを必要に応じて負荷監視部7に提供する。そのため実績負荷格納部6は、上述のように、入力データの種別ごとに作成された実績負荷記録テーブル18を有し、また実績負荷記録テーブル18に入力数のクラスによる実績負荷記録欄19が設けられている。
負荷監視部7は、CPUに生じている現在の負荷を監視することを通じてシステム異常を監視する。その異常監視は、上述のように、常時的に収集されて蓄えてある実績負荷に基づいてCPUの現在の負荷状態を判定することでシステム異常を検出するようにしてなされる。また負荷監視部7は、動作タスク検出部8とトレースデータ格納部9を用いたアプリケーションプログラムトレースデータの取得処理にも機能する。すなわち動作タスク検出部8は、CPUで動作中のアプリケーションプログラムを常時検出しており、負荷監視部7がシステム異常を検出した場合に、その時点で動作しているアプリケーションプログラムについての情報、つまりシステム異常検出時タスク情報を負荷監視部7に提供する。そしてシステム異常検出時タスク情報を受け取った負荷監視部7は、該当のアプリケーションプログラムについてトレース出力指示を行い、これを受けて、例えばアプリケーションプログラムに組み込まれているトレース機能により、該当のアプリケーションプログラムのトレースがなされてトレースデータがトレースデータ格納部9に格納される。より具体的にいうと、トレースデータ格納部9は、計算機システムで作動する複数のアプリケーションプログラムC1〜Cnのそれぞれごとに出力指定エリア(トレースデータ格納エリア)21を設けた構成とされており、該当のアプリケーションプログラムの出力指定エリア21を指定することで当該アプリケーションプログラムについてのトレース出力指示がなされ、それを受けてなされるトレースのトレースデータが当該出力指定エリア21に記録される。以上のような負荷監視部7での処理についてはさらに後述する。
次ぎに、異常監視システム1における実績負荷収集処理について図3を参照して全般的に説明する。入力データの入力が上述の入力時間間隔Tmax以上にわたって途切れた後、例えば入力データ種別がA1である入力データ(A1入力データ)11が入力部2に入力してきたとする。すると、入力部2は、入力データ情報として入力データ11の種別、その入力時刻(図の例ではTS1)、および入力データの入力数=1を実績負荷収集開始部15に提供するとともに、次の入力データが連続受信条件で入力するかをチェックするために入力時間間隔Tmaxをタイマにセットする。
連続受信用の入力時間間隔Tmaxの間に次の入力データが入力した場合には、入力部2は、実績負荷収集開始部15に入力数をプラス1でカウントアップするように連絡するとともに、タイマに再度、入力時間間隔Tmaxをセットする。こうした処理は、後述のタイムアウト処理がなされるまで繰り返される。
一方、入力時間間隔Tmaxの間に次の入力データが入力しなかった場合、つまりにタイムアウトとなった場合には、入力部2は、タイムアウト処理として、連続受信(ないし収集サイクル)の終了を区切るためのダミーデータ22をタイムアウト前に入力の入力データと同じ種別で作成し、そのダミーデータ22を次に動作するアプリケーションプログラムに渡す。こうしたタイムアウト処理がなされると1つの収集サイクルの終了となる。ここで、アプリケーションプログラムは、ダミーデータ22に対しては通常の入力データ11に対するような処理をなさないように設計されているものとする。つまり、ダミーデータ22は、その作成タイミングでのデータ入力順番だけを守った状態でCPUをいわば素通りするようになっており、アプリケーションプログラムによる処理を受けずに出力部3に出力されることになるということである。
以上のようにして入力データの連続受信がなされている間、実績負荷収集開始部15は、入力部2から受け取る入力データ情報(入力データ種別、入力時刻、入力数)を現在負荷格納部23におけるデータ種別格納欄24、負荷測定開始時刻格納欄25、入力数格納欄26のそれぞれに格納する。ただ、入力時刻については、1つの収集サイクルの最初の入力データの入力時刻だけを負荷測定開始時刻として負荷測定開始時刻格納欄25に格納する。また実績負荷収集開始部15は、受け取った入力データ情報が入力数=1を含む場合、その入力データ情報の受取りタイミングで負荷測定開始指令を発してCPU負荷測定部4を起動する。これにより起動してCPU負荷の測定を開始したCPU負荷測定部4は、実績負荷収集終了部16からの負荷測定終了指令があるまでCPU負荷の測定を継続する。
また以上のようにして入力部2を通じて入力してくる入力データ11はCPUにおいて所定のアプリケーションプログラムで処理され、その処理で生成された出力データ12が出力部3により外部に出力される。この間、上述のようにダミーデータ22はそのまま出力部3に到達する。出力部3にダミーデータ22が到達すると、出力部3は、実績負荷収集終了部16に負荷測定終了時刻(図の例ではダミーデータ22が到達した時刻TE3)を提供し、またダミーデータ22を廃棄する。負荷測定終了時刻を受け取った実績負荷収集終了部16は、その負荷測定終了時刻を現在負荷格納部23における負荷測定終了時刻格納欄27に格納するとともに、CPU負荷測定部4に負荷測定終了指令を発する。
負荷測定終了指令を受けたCPU負荷測定部4は、負荷測定開始指令から負荷測定終了指令までの間に測定したCPU負荷、より具体的には、負荷測定開始指令から負荷測定終了指令までの測定で得られるCPUにおける平均負荷を実績負荷編集部17に提供する。CPU負荷を受け取った実績負荷編集部17は、そのCPU負荷を現在負荷格納部23における実績負荷格納欄28に格納するとともに、CPU負荷に所定の編集を施して得られる実績負荷データを実績負荷格納部6に格納する。
次に、実績負荷収集開始部15でなされる処理の詳細について説明する。実績負荷収集開始部15における処理は、図4にその流れを示すように、ステップ101〜ステップ113の各処理過程を含む。ステップ101では、実績負荷収集開始部15の起動要因を判定する。具体的には、起動要因が上述のタイムアウトであるかを判定する。起動要因がタイムアウトであれば、上述のように出力部3によりダミーデータの作成がなされ、実績負荷収集開始部15での処理は終了となる。一方、起動要因がタイムアウトでなければ、ステップ102に進んで入力データの取込みを行う。続くステップ103では、新しい入力データが存在するかを判定する。ステップ103の判定結果が否定的な場合は処理終了となる。一方、ステップ103の判定結果が肯定的な場合はステップ104に進む。
ステップ104では、その時点で既にCPU負荷測定中となっているかを判定する。この判定は、図3の現在負荷格納部23に入力データ情報などが格納されているか否かで行われる。つまり、現在負荷格納部23に入力データ情報などが既に格納されていれば、「現在、CPU負荷測定中」となり、そうでなければ、「現在、CPU負荷非測定中」となる。
ステップ104の判定結果が肯定的な場合はステップ105に進む。ステップ105では、現在実行中の負荷測定における入力データの種別がステップ103における入力データの種別と同じかを判定する。ステップ105の判定結果が肯定的な場合はステップ106に進み、ダミーデータが作成済みかを判定する。ダミーデータ作成済みの場合は処理終了とし、ダミーデータ未作成の場合はステップ107に進んで現在負荷格納部23の入力数格納欄26における入力数を1つカウントアップし、ステップ101に戻る。
一方、ステップ105の判定結果が否定的な場合は、異なる種別の入力データが1つの収集サイクル中に混在することになる。そこで、ステップ108の処理を行った後に処理終了とする。ステップ108では、種別混在処理を行う。具体的には、現在負荷格納部23のデータ種別格納欄24、負荷測定開始時刻格納欄25、入力数格納欄26、実績負荷格納欄28、負荷測定終了時刻格納欄27の全てをクリアした後、入力データ種別混在記録欄29に「種別混在中」を記録するとともに、種別混在により収集サイクルを終了とするために新しい入力種別のダミーデータを作成してアプリケーションプログラムを起動する。
ここで、現在実行中の負荷測定における入力データの種別と異なる種別の入力データが連続受信された場合は、1つの収集サイクルに種別の異なる入力データが混在することになる。このような場合には、上述のクラス分けとの関係で有効な実績負荷収集をなすことができない。そこで、入力データ種別が混在している収集サイクルについては「種別混在中」とし、その収集サイクルにおける連続受信入力データが全て処理される、つまり連続受信入力データの処理でえられた出力データの全てが出力部3に到着するまで、CPU負荷の測定結果を採用しないようにする。つまり、実績負荷の収集は、1つの収集サイクルにおける連続受信入力データが全て同一種別であることを条件にして行うということである。
ステップ104の判定結果が否定的な場合はステップ109に進む。ステップ109では「種別混在中」であるかを判定する。「種別混在中」であれば処理終了とし、「種別混在中」でなければ、入力データ種別、負荷測定開始時刻、入力数=1の各入力データ情報の現在負荷格納部23への格納をステップ110、111、112として順次行い、さらにステップ113で負荷測定開始指令を発してCPU負荷測定部4を起動し、処理終了となる。
次に、実績負荷収集終了部16でなされる処理の詳細について説明する。実績負荷収集終了部16における処理は、図5にその流れを示すように、ステップ201〜ステップ208の各処理過程を含む。実績負荷収集終了部16は、1つの収集サイクルにおける連続受信入力データの計算機システム内での処理が全て終了して最後のダミーデータが出力部3に到達することで実効的に起動する。つまり実績負荷収集終了部16は、出力部3にダミーデータが到達することで起動した場合にのみ実績負荷収集終了についての実効的な処理を実行する。
ステップ201では、出力部3からの起動かを判定する。出力部3からの起動でなければ処理終了となり、出力部3からの起動であればステップ202に進む。ステップ202では入力データを取り込み、ステップ203でその入力データがダミーデータであるかを判定する。ダミーデータでなければ処理終了とし、ダミーデータであればステップ204に進む。
ステップ204では、そのダミーデータがそれまでの入力データと同じ種別かを判定する。ステップ204の判定結果が否定的な場合は、連続受信入力データについて異なる種別の混在が終了することになるので、ステップ205において現在負荷格納部23の入力データ種別混在記録欄29に格納されている「種別混在中」の記録をリセットし、ステップ108に進む。
一方、ステップ204の判定結果が肯定的な場合はステップ206に進み、その時点でCPU負荷測定中となっているかを判定する。ステップ206の判定結果が否定的であれば処理終了となり、肯定的であれば、ステップ207に進んで図3の現在負荷格納部23における負荷測定終了時刻格納欄27に負荷測定終了時刻を格納し、さらにステップ208でCPU負荷測定部4に負荷測定終了指令を発して処理終了となる。
ここで、ステップ205を経た場合には、ステップ207の処理がなされない。つまり現在負荷格納部23に負荷測定終了時刻が格納されない。このため、それまでにCPU負荷測定部4が取得した実績負荷は、実績負荷編集部17による後述するような処理において採用されないことになる。
次に、実績負荷編集部17でなされる処理の詳細について説明する。実績負荷編集部17における処理は、図6にその流れを示すように、ステップ301〜ステップ307の各処理過程を含む。上述のようにCPU負荷測定部4は、実績負荷収集終了部16から負荷測定終了指令を受け取ると、それまでに測定して得られた実績負荷(これは、上述のように、負荷測定開始指令から負荷測定終了指令までの測定で得られるCPUにおける平均負荷)を実績負荷編集部17に渡す。実績負荷編集部17は、このCPU負荷測定部4からの実績負荷のデータの提供を受けて実効的に起動する。
ステップ301では、CPU負荷測定部4からの起動かを判定する。CPU負荷測定部4からの起動でなければ処理終了となり、CPU負荷測定部4からの起動であればステップ302に進む。ステップ302ではCPU負荷測定部4から提供された実績負荷を取り込み、ステップ303でその実績負荷について判定する。具体的には、実績負荷が0〜100%の間にあるかを判定する。ステップ303の判定結果が否定的であれば処理終了となる。
一方、ステップ303の判定結果が肯定的な場合は、ステップ304に進む。ステップ304では、負荷測定終了時刻が設定済みかを判定する。この判定は、図3の現在負荷格納部23における負荷測定終了時刻格納欄27をチェックすることで行われる。ステップ304の判定結果が否定的であれば、つまり負荷測定終了時刻が設定されていない場合は、上述のように、1つの収集サイクルにおける連続受信入力データに異なる種別が混在する「種別混在中」となるので処理終了とする。
一方、ステップ304の判定結果が肯定的な場合は、ステップ305に進む。ステップ305では、ステップ302で取り込んだ実績負荷を現在負荷格納部23の実績負荷格納欄28に格納する。続くステップ306では、現在負荷格納部23に格納した実績負荷を編集して実績負荷格納部6に格納する。実績負荷の編集には、上述のようなクラス分け処理と統計処理が含まれる。ステップ306に続くステップ307では、現在負荷格納部23の各格納欄を全てクリアすることで次ぎの収集サイクルのための準備がなされ、これにより処理終了となる。
次に、図6のステップ306で実績負荷編集部17が行う実績負荷の編集処理における統計処理の詳細について説明する。実績負荷統計処理は、図7にその流れを示すように、ステップ401〜ステップ410の各処理過程を含む。
上述のように、図2の実績負荷格納部6には、入力データの種別ごとに作成され実績負荷記録テーブル18が設けられており、その実績負荷記録テーブル18の実績負荷記録欄19に負荷平均、負荷標準偏差、および実績負荷の格納回数(これは負荷平均の基礎となる収集サイクル数でもある)が実績負荷についての編集済みデータとして記録されている。そしてこれらのデータは、1つの収集サイクルごとになされる編集での統計処理により順次更新される。
まずステップ401で、それまでの実績負荷収集で実績負荷格納部6に格納されている負荷平均Pave、負荷標準偏差Pdiv、格納回数Pnを取り込む。ここで、図2の実績負荷格納部6では、上述のように、入力データの種別ごとに実績負荷記録テーブル18が設けられ、これにより入力データ種別についてのクラス分けがなされ、また実績負荷記録テーブル18に所定の入力数単位で作成された実績負荷記録欄19が設けられ、これにより入力数によるクラス分けがなされている。したがって、ステップ401で取り込む負荷平均Pave、負荷標準偏差Pdiv、格納回数Pnは、今回の収集サイクルにおける入力データの種別に対応する実績負荷記録テーブル18で、かつ今回の収集サイクルにおける連続受信の入力データ数に対応する「入力数」の実績負荷記録欄19に記録されているデータとなる。
続くステップ402では、今回の収集サイクルにおける実績負荷Pnewを取り込む。それからステップ403で、格納回数Pnが所定の下限基準格納回数Pnmin以上であるかを判定する。格納回数が下限基準格納数Pnminに達している場合は、ステップ404において今までの統計処理結果の有効性を判定する。具体的には、今までの負荷平均と負荷標準偏差から「Pave+β・Pdiv」として求められる値について今回の負荷実績Pnewを「Pnew≦Pave+β・Pdiv」として比較する。ただし、βは調整値であり、1〜3の値が通常使用される。このステップ404の判定結果が否定的な場合は統計処理を行わず、処理終了とする。
一方、格納回数が下限基準格納数Pnminに達していない場合は、ステップ404を省略してステップ405に進む。ステップ405では、新しい負荷平均Pnaveを「Pnave=(Pnew+Pn×Pave)/(Pn+1)」として求める。新しい負荷平均Pnaveが求めたらステップ406に進む。ステップ406では、新しい負荷標準偏差Pndivを「Pndiv=〔Pn/(Pn+1)×{Pdiv+(Pave−Pnave)/(Pn+1)}〕1/2」として求める。続くステップ407では、それまでの格納回数Pnに今回の格納による1を加えることで新しい格納数Pnnを求め、さらにステップ408で、新たな格納数Pnnがオーバーフローとならないようにするために格納数Pnnが所定の上限基準格納数Pnmaxより大きいかを判定する。ここで、Pnmaxは統計処理上で必要とする充分な大きさの値として設定されるものとする。
格納数Pnnが上限基準格納数Pnmax以下であればすぐにステップ410に進み、格納数Pnnが上限基準格納数Pnmaxより大きければステップ409でPnn=Pnmaxとしてからステップ410に進む。ステップ410では、以上で求めた新しい負荷平均Pnave、負荷標準偏差Pndiv、格納数Pnnを今回の収集サイクルにおける入力データのクラスに対応させて実績負荷格納部6に格納し、これで処理終了となる。ステップ410での格納は、それまでの負荷平均Pave、負荷標準偏差Pdiv、格納回数Pnに新しい負荷平均Pnave、負荷標準偏差Pndiv、格納数Pnnを上書きすることで行う。
次に、負荷監視部7でなされる処理の詳細について説明する。負荷監視部7における処理は、図8にその流れを示すように、ステップ501〜ステップ513の各処理過程を含む。
負荷監視部7は、上述のように、CPUに現在生じている負荷を監視することを通じてシステム異常を監視し、その異常監視は、上述のような常時的な収集で実績負荷格納部6に蓄えてある実績負荷に基づいてCPUの現在負荷を評価することでシステム異常を検出するようにしてなされる。したがって、負荷監視部7は、CPU負荷測定部4により定周期で起動され、その都度CPU負荷測定部4から渡されるCPUの現在負荷を当該CPU現在負荷の測定時点での入力データのクラスについての実績負荷で評価することによりシステム異常を検出する。
まずステップ501で、CPU負荷測定部4からの起動かを判定する。CPU負荷測定部4からの起動でなければ処理終了となり、CPU負荷測定部4からの起動であればステップ502に進む。ステップ502では、CPU負荷測定部4からCPU現在負荷Paを取り込み、ステップ503で、そのCPU現在負荷Paについて判定する。具体的には、CPU現在負荷Paが0〜100%の間にあるかを判定する。ステップ503の判定結果が否定的であれば処理終了となる。一方、ステップ503の判定結果が肯定的であればステップ504に進む。
ステップ504では、CPU現在負荷Paの表示を行う。この表示は、計算機システムの利用者がCPU現在負荷Paを視認できるようになされるものであり、図1の監視システムの場合であれば、クライアント用計算機システムTのディスプレイDに、例えば図9の例のようにしてCPU現在負荷Paを表示することでなされる。
ステップ504に続くステップ505では、CPU現在負荷Paの測定時における入力データに種別の混在があるかを判定する。入力データ種別混在中であれば、上述のような実績負荷によるCPU現在負荷Paの評価を有効に行うことができないので、処理終了とする。一方、入力データ種別混在がなければ、ステップ506に進む。
ステップ506では、CPU現在負荷Paの測定時における入力データについてクラスを取得する。ここで、入力データのクラスは、上述した実績負荷収集でのクラス分けにおけるクラスに対応するものである。すなわち負荷監視のためのCPU現在負荷測定における入力データのクラスは、CPU現在負荷Paの測定時に入力した入力データの種別と入力数で与えられる。入力数に関しては、図2の例での実績負荷の格納における0〜N1、N1〜N2、…Nn−1〜Nnという入力数単位の区切りとの対応でいえば、CPU現在負荷Paの測定時の入力データの入力数が0〜N1、N1〜N2、…Nn−1〜Nnのいずれかとしてクラスが取得される。なお、負荷監視は入力データの入力がない状態でもなされる。したがってステップ506の入力データクラス取得では、入力数=0というクラスが取得されることもある。
ステップ506で入力データのクラスを取得したら、ステップ507に進む。ステップ507では、ステップ506で取得のクラスに対応する実績負荷データから格納回数Pnを取り出す。具体的には、図2の実績負荷格納部6に入力データ種別ごとで設けられている実績負荷記録テーブル18からステップ506で取得のクラスにおける入力データ種別に対応するものを選択し、さらにその選択した実績負荷記録テーブル18からステップ506で取得のクラスにおける入力数に対応する実績負荷記録欄19を選択し、その選択した実績負荷記録欄19から格納回数Pnを取り出す。
格納回数Pnを取り出したら、ステップ508でその格納回数Pnについて判定する。具体的には、格納回数Pnが所定の有効格納回数Pnef以上かを判定する。格納回数Pnが有効格納回数Pnefより小さい場合には、当該の実績負荷記録欄19に記録されている負荷平均Paveや負荷標準偏差Pdivが負荷監視に有効でないので、処理終了とする。一方、格納回数Pnが有効格納回数Pnef以上の場合にはステップ509に進む。
ステップ509では、格納回数Pnを取り出したのと同じ実績負荷記録欄19から負荷平均Paveと負荷標準偏差Pdivを取り出す。続くステップ510では、負荷平均Paveと負荷標準偏差Pdivを用いてCPU現在負荷Paを判定する。具体的には、Pa>Pave+αPdivであるかについて判定する。ただし、αは調整値であり、1〜3の値が通常使用される。なお、入力数=0のクラスの場合は、負荷平均Paveには予め用意してあるアプリケーションプログラム非動作時定常負荷を用いる。ここで、アプリケーションプログラム非動作時定常負荷とは、アプリケーションプログラムが動作していない状態でCPUに通常的に生じる負荷である。
ステップ510の判定結果が否定的な場合は、システム異常なしであるので処理終了とする。一方、ステップ510の判定結果が肯定的な場合は、システム異常ありとなる。この場合には、まずステップ511とステップ512でアプリケーションプログラムのトレース処理を行う。具体的には、システム異常検出時に動作しているアプリケーションプログラムを図2の動作タスク検出部8からの情報で特定し(ステップ511)、それから該当のアプリケーションプログラムについて上述のようにしてトレース出力指示を行う(ステップ512)。このトレース出力指示がなされると、該当のアプリケーションプログラムについてトレースがなされ、そのトレースデータが図2のトレースデータ格納部9に格納される。
こうしたトレース処理に続いて、ステップ513でシステム異常について表示を行う。この表示は、計算機システムの利用者にシステム異常の発生を警報するためになされるものであり、図1の監視システムの場合であれば、例えば図9の例のようにしてクライアント用計算機システムTのディスプレイDに表示されているCPU現在負荷の欄の表示色を変えたり点滅したりするなどして、「システム異常あり」を警報することができるようにしてなされる。
以上、本発明を実施するための形態について説明したが、これは代表的な例に過ぎず、本発明は、その趣旨を逸脱することのない範囲で様々な形態で実施することができる。例えば以上の実施形態における異常監視システムは、上述したような実績負荷による異常監視の他に、計算機システムにおけるCPUの許容負荷との関係で現在負荷を評価することでシステム異常を監視する機能を組み込むことも可能である。また以上の実施形態は、監視システムで用いる計算機システムに本発明を適用する場合であったが、これに限られず、様々な分野でのシステムの制御や運用で用いられる計算機システムについても適用可能である。
本発明による異常監視方法を適用する計算機システムで構成した監視システムの構成例を示す図である。 一実施形態による異常監視システムの構成を示す図である。 図2の異常監視システムにおける実績負荷収集処理を説明する図である。 実績負荷収集開始部における処理の流れを示す図である。 実績負荷収集終了部における処理の流れを示す図である。 実績負荷編集部における処理の流れを示す図である。 実績負荷統計処理の流れを示す図である。 負荷監視部における処理の流れを示す図である。 負荷監視結果の表示例を示す図である。
符号の説明
1 異常監視システム
2 入力部
3 出力部
4 CPU負荷測定部(演算処理装置負荷測定部)
5 実績負荷収集部
6 実績負荷格納部
7 負荷監視部
9 トレースデータ格納部
11 入力データ
12 出力データ
15 実績負荷収集開始部
16 実績負荷収集終了部
17 実績負荷編集部
S 計算機システム
T 計算機システム

Claims (4)

  1. 入力データを処理して出力データを生成する演算処理装置を備えた計算機システムについて、前記入力データの処理に際し前記演算処理装置に生じる負荷に基づいてシステム異常を監視する計算機システムの異常監視方法において、
    前記演算処理装置で前記入力データの入力量に応じて通常的に生じる負荷の実績を測定することで入力データ量対応実績負荷を収集する過程、前記演算処理装置における現在の負荷を測定して現在負荷を取得する過程、および前記現在負荷が前記入力データ量対応実績負荷よりも一定以上大きいか否かとしてシステム異常の有無を判定する過程を含むことを特徴とする計算機システムの異常監視方法。
  2. 前記入力データに種別がある場合に、前記入力データ種別とその種別ごとの入力データの入力数により前記入力データをクラスに分けるクラス分けを行い、そして前記入力データ量対応実績負荷を前記クラス分けに対応させて管理し、前記現在負荷と前記入力データ量対応実績負荷の比較に際しては、前記入力データ量対応実績負荷として、前記現在負荷の測定時における入力データのクラスと対応するクラスの入力データ量対応実績負荷を用いるようにしたことを特徴とする請求項1に記載の計算機システムの異常監視方法。
  3. 任意の時間間隔で順次的に入力する前記入力データについて、所定の入力時間間隔を条件として前記入力データ量対応実績負荷の収集のための連続受信を行い、その連続受信により前記入力データ量対応実績負荷の収集における単位の収集サイクルとするものとし、そして前記入力データに関するダミーデータを作成することで前記収集サイクルの終了を区切れるようにしたことを特徴とする請求項1または請求項2に記載の計算機システムの異常監視方法。
  4. システム異常を検出した場合に、その時点で動作しているアプリケーションプログラムの動作をトレースするようにしたことを特徴とする請求項1〜請求項3のいずれか1項に記載の計算機システムの異常監視方法。
JP2007156148A 2007-06-13 2007-06-13 計算機システムの異常監視方法 Pending JP2008310470A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007156148A JP2008310470A (ja) 2007-06-13 2007-06-13 計算機システムの異常監視方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007156148A JP2008310470A (ja) 2007-06-13 2007-06-13 計算機システムの異常監視方法

Publications (1)

Publication Number Publication Date
JP2008310470A true JP2008310470A (ja) 2008-12-25

Family

ID=40238031

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007156148A Pending JP2008310470A (ja) 2007-06-13 2007-06-13 計算機システムの異常監視方法

Country Status (1)

Country Link
JP (1) JP2008310470A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3267313A1 (en) 2016-07-05 2018-01-10 Fujitsu Limited Method and apparatus for load estimation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3267313A1 (en) 2016-07-05 2018-01-10 Fujitsu Limited Method and apparatus for load estimation
US10983837B2 (en) 2016-07-05 2021-04-20 Fujitsu Limited Method and apparatus for load estimation

Similar Documents

Publication Publication Date Title
CN105787248B (zh) 基于时间序列数据的分析的异常感测和预测系统及方法
US7444263B2 (en) Performance metric collection and automated analysis
US9451017B2 (en) Method and system for combining trace data describing multiple individual transaction executions with transaction processing infrastructure monitoring data
US7409316B1 (en) Method for performance monitoring and modeling
US10373065B2 (en) Generating database cluster health alerts using machine learning
US20140281726A1 (en) Bottleneck Detector Application Programming Interface
CN107992410B (zh) 软件质量监测方法、装置、计算机设备和存储介质
US20110218770A1 (en) Operation monitoring device, an operation monitoring method and a program storing medium
CN104541216A (zh) 用于检测机械系统|以及调整与所述机械系统关联的极限值以反映|机械系统的当前条件的监测系统和方法
CN110601900A (zh) 一种网络故障预警方法及装置
JP6777142B2 (ja) システム分析装置、システム分析方法、及び、プログラム
US8490062B2 (en) Automatic identification of execution phases in load tests
CN112346962B (zh) 一种应用于对照测试系统中的对照数据测试方法及装置
CN112256548B (zh) 异常数据的监听方法、装置、服务器及存储介质
JP2008108154A (ja) 稼働性能情報の管理システム
CN107451039B (zh) 一种对集群中执行设备评价的方法和设备
JP2008310470A (ja) 計算機システムの異常監視方法
JP2004348640A (ja) ネットワーク管理システム及びネットワーク管理方法
JP6375200B2 (ja) 計算機システムの異常予兆検出装置および方法
CN111368104A (zh) 信息处理方法、装置及设备
US8265906B2 (en) Automatic identification of execution phases in load tests
US8448028B2 (en) System monitoring method and system monitoring device
CN110928750A (zh) 数据处理方法、装置及设备
JP2011065337A (ja) トレーサビリティシステムおよび製造工程異常検出方法
JP2023036469A (ja) 外れ値検出装置及び方法