(57)【要約】【課題】計算機システムを連続して使用する場合に、メモリリークによる計算機のデッドロックなどを回避する。【解決手段】情報取得処理部１０２はＯＳ管理テーブルからメモリ使用量とＣＰＵ負荷を定期的に取得し、メモリ負荷履歴情報領域１０３とＣＰＵ負荷履歴情報領域に取得時間と共に記憶する。情報解析処理部１０５はメモリ負荷履歴情報２０４からメモリリークの発生を検知すると、メモリ使用限界のしきい値に達する到達時間を予測し、さらにＣＰＵ負荷履歴情報２０５から上記到達時間の直前で負荷の少ない時間帯を予測し、この時間帯に回復処理を行なうよう回復処理実行部１０６をセットする。【選択図】　図１
2004005305.tif 000002
【特許請求の範囲】
【請求項１】
連続運転している計算機システムのメモリ使用容量を監視する方法において、
前記計算機システムのメモリ使用容量とＣＰＵ負荷を定期的に取得し、これら情報を取得時間と共に時系列に蓄積し、前記メモリ使用容量の時系列データに基づいてメモリ使用量限界しきい値に達する到達時間を予測し、前記ＣＰＵ負荷の時系列データに基づいて前記到達時間の直前でＣＰＵ負荷が低下する時間帯を求めることを特徴とするメモリ使用量の監視方法。
【請求項２】
連続運転している計算機システムのメモリ使用容量を監視する方法において、
前記計算機システムのメモリ使用容量とプロセス数またはスレッド数を定期的に取得し、これら情報を取得時間と共に時系列に蓄積し、前記メモリ使用容量の時系列データに基づいてメモリ使用量限界しきい値に達する到達時間を予測し、前記プロセス数またはスレッド数の時系列データに基づいて前記到達時間の直前で前記プロセス数またはスレッド数が低下する時間帯を求めることを特徴とするメモリ使用量の監視方法。
【請求項３】
請求項１または２において、
プロセス毎に蓄積されているメモリ使用量からメモリリークが発生しているプロセスを判断し、前記時間帯に当該プロセスを停止し、再起動する回復処理を設定することを特徴とするメモリ使用量の監視方法。
【請求項４】
請求項１または２において、
前記到達時間の予測は、前記メモリ使用容量の時系列データによるメモリ使用量増加比率からメモリリークが発生していると判断できた時に行うことを特徴とするメモリ使用量の監視方法。
【請求項５】
連続運転している計算機システムのメモリ使用容量を監視し、メモリの使用量回復処理を行なう計算機システムにおいて、
メモリ使用量とＣＰＵ負荷を測定するＯＳ管理テーブルと、前記ＯＳ管理テーブルから定期的にメモリ使用量とＣＰＵ負荷を取得し、それぞれメモリ負荷履歴情報領域とＣＰＵ負荷履歴情報領域に取得時間と共に蓄積する情報取得処理部と、前記メモリ負荷履歴情報領域の時系列データに基づいてメモリ使用量限界しきい値に達する到達時間を予測し、前記ＣＰＵ負荷履歴情報領域の時系列データに基づいて前記到達時間の直前でＣＰＵ負荷が低下する時間帯を求める情報解析処理部と、前記時間帯に前記回復処理を行なう回復処理実行部を有することを特徴とする計算機システム。
【請求項６】
連続運転している計算機システムのメモリ使用容量を監視し、メモリの使用量回復処理を行なう計算機システムにおいて、
メモリ使用量とプロセス数またはスレッド数を測定するＯＳ管理テーブルと、前記ＯＳ管理テーブルから定期的にメモリ使用量とプロセス数またはスレッド数を取得し、それぞれメモリ負荷履歴情報領域とプロセス数履歴情報領域に取得時間と共に蓄積する情報取得処理部と、前記メモリ負荷履歴情報領域の時系列データに基づいてメモリ使用量限界しきい値に達する到達時間を予測し、前記プロセス数履歴情報領域の時系列データに基づいて前記到達時間の直前でプロセス数またはスレッド数が低下する時間帯を求める情報解析処理部と、前記時間帯に前記回復処理を行なう回復処理実行部を有することを特徴とする計算機システム。
【請求項７】
請求項５または６において、
前記到達時間の予測は、前記メモリ使用容量の時系列データからメモリリークが発生していると判断できた時点に行い、前記到達時間の予測値、前記時間帯の予測値の少なくとも一つをメッセージとして表示することを特徴とする計算機システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリ使用量の監視方法とその計算機システムに関する。特に、メモリリークによる計算機デッドロックやスラッシングによる処理応答性の低下を回復する方式に関する。
【０００２】
【従来の技術】
計算機システムにおけるシステム監視装置はリソース監視プログラムとして製品化されている。従来の技術では、メモリ使用量などにしきい値を設定しておき、しきい値を超えたときに管理者にメイル、ポップアップメッセージなどを通知し、表示する。あるいは、しきい値を超えた場合に設定してあるシャットダウン処理やプロセスの終了処理などを実行し、回復処理を行う方式である。
【０００３】
【発明が解決しようとする課題】
計算機システムがメモリ使用量限界まで達する前に安全に回復処理を行うことが１つの課題である。ところが、メモリ使用量に対するしきい値を超えた時点で、直ちにリブートなどの回復処理をおこなうと、プラントなどの制御を行っていた場合、プラントの制御が中断して問題が発生する可能性がある。また、計算機システムの管理者に通知した場合は回復処理を行うまでの時間的余裕がなく、安全なシステムの停止や切り替え計画が十分に検討できないという問題がある。
【０００４】
本発明の目的は、上記従来技術の問題に鑑み、プラント制御などに悪影響を与えず、また、システムの停止や切り替えを計画的に実行できる計算機システムを提供することにある。また、計画的な回復処理のために、メモリ使用量限界に達する前にその予測情報を出力できるメモリ使用量の監視方法を提供することにある。
【０００５】
【課題を解決するための手段】
上記課題を解決するための本発明は、連続運転している計算機システムのメモリ使用容量を監視する方法において、前記計算機システムのメモリ使用容量とＣＰＵ負荷を定期的に取得し、これら情報を取得時間と共に時系列に蓄積し、前記メモリ使用容量の時系列データに基づいてメモリ使用量限界しきい値に達する到達時間を予測し、前記ＣＰＵ負荷の時系列データに基づいて前記到達時間の直前でＣＰＵ負荷が低下する時間帯を求めることを特徴とする。
【０００６】
また、前記ＣＰＵ負荷に代えて、前記計算機システムのプロセス数またはスレッド数を定期的に取得し、これら情報を取得時間と共に時系列に蓄積し、前記メモリ使用容量の時系列データに基づいてメモリ使用量限界しきい値に達する到達時間を予測し、前記プロセス数またはスレッド数の時系列データに基づいて前記到達時間の直前で前記プロセス数またはスレッド数が低下する時間帯を求めることを特徴とする。
【０００７】
そして、前記時間帯に計算機システムの回復処理を行なうことを特徴とする。このメモリの使用量回復処理は、前記メモリ使用量をプロセス毎に蓄積し、メモリリークが発生しているプロセスを判断し、当該プロセスを停止して再起動する。
【０００８】
また、前記到達時間の予測は、前記メモリ使用容量の時系列データによるメモリ使用量増加比率からメモリリークが発生していると判断できた時点に行うことを特徴とする。
【０００９】
本発明の作用を説明する。計算機の業務は日常業務の終了時の纏め処理、日や週の最後に行われる纏め処理などが定期的に行われるので、ＣＰＵ負荷はある周期で変動する。このため、制御プログラムなどの定期的処理が終了した後は、制御対象の機器からのイベントやデータ待ち状態となり、計算機はＣＰＵ負荷が低い状態となる。したがって、メモリ使用量がその限界しきい値に達する到達時間を予測するとともに、その到達時間の直前でＣＰＵ負荷が最もまたは所定以下となる時間帯に回復処理のタイミングを設定する。これにより、シャットダウンなどの回復処理を安全に実行できる。また、予測した時間から前記到達時間までは十分な時間的余裕があるので、管理者の対応も容易になる。
【００１０】
また、制御プログラムは制御対象機器からのイベントやデータを受け付けて、実際に制御を行うプログラムを起動する方式となることが多い。このような場合に、メモリ負荷と共にプロセス数またはスレッド数のデータを収集し、前記到達時間の直前でプロセス数が低い時間帯を求めることでも、回復処理を行うタイミングを決定できる。
【００１１】
【発明の実施の形態】
本発明による計算機システムの実施例について詳細に説明する。実施例１はメモリ使用量とＣＰＵ負荷による回復処理例、実施例２はメモリ使用量とプロセス数による回復処理例である。
【００１２】
図１は実施例１による計算機システムの構成図である。計算機システム内のＯＳ管理テーブル１０１にはメモリ使用量とＣＰＵ負荷の最新情報が記憶されている。情報取得処理部１０２はこれらの情報を定期的に取り出し、メモリ負荷履歴情報領域１０３、ＣＰＵ負荷履歴情報領域１０４に取り出し時刻と共に記憶する。情報解析処理部１０５は時刻とともに記憶されたメモリ使用量とＣＰＵ負荷履歴を取り出して解析する。回復処理実行部１０６は情報解析処理部１０５の解析結果に基づいて回復処理を実行する。
【００１３】
情報設定参照コマンド１０７は測定開始・終了時刻や測定条件、測定結果、計算機システムの回復処理内容、メモリ使用量限界に到るまでの予測結果と時間、ＣＰＵ負荷の推移予測をそれぞれ設定、参照できるコマンドインタフェースである。表示装置１０８は情報解析処理部１０５の解析結果を、システム管理者が参照できるように表示する。
【００１４】
図２は実施例１による計算機システムの処理手順を示すフロー図である。Ｓ１０１でメモリ使用量とＣＰＵ負荷情報は情報取得処理により一定間隔で取り出し（２０１）、Ｓ１０２で現在時刻を取り込み、Ｓ１０３でメモリ負荷履歴情報領域及びＣＰＵ負荷履歴情報領域に時刻と共に記録する（２０２、２０３）。メモリ使用量はプロセス個別毎に取得し、システム全体のメモリ使用量と共に、プロセス別のメモリ使用量を記録しておく。
【００１５】
Ｓ１０４では、記録したメモリ使用量情報は、メモリ使用量とＣＰＵ負荷履歴の解析処理によりメモリ使用量が増加しているか、すなわちメモリリークが発生しているか検証する。リーク無しの場合は、Ｓ１０８で次に負荷情報を収集する期間スリープし、Ｓ１０１に戻る。
【００１６】
図３はメモリ負荷推移の予想曲線を示している。メモリ使用量は一定の割合で増加するとは限らないが、最初に記録したメモリ使用量（３０６）に比べ、最後に記録したメモリ使用量（３０７）が増加していれば、メモリリークが発生していると判断できる。
【００１７】
メモリリークが発生していると判断できた場合には、Ｓ１０５で、メモリ使用量限界（３０５）の容量に到達するまでの時間を計算する。実際には、メモリ使用量限界までメモリを使用してしまうとデッドロックなどが発生してしまうため、メモリ使用量限界に対してのしきい値（３０３）を設定する。メモリ使用量に対するしきい値（３０３）はメモリ使用量限界の７０％が目安である。なお、ここで言うメモリ使用量の限界やしきい値は、仮想メモリの限界やしきい値であってもよい。
【００１８】
メモリリークがメモリ使用量のしきい値（３０３）に到達するまでの時間（３０４）は以下のように求める。測定開始時のメモリ使用量（３０６）と測定開始からメモリリークが発生していると判断できるまでの時間（３０８）と、その時間で増加したメモリ使用容量（３０７）から、しきい値に到達するまでの時間（３０９）を求めることができる。メモリ使用量のしきい値（３０３）や、それに到達する時間（３０４）は情報設定参照コマンド１０７に設定され、情報解析処理部１０５や回復処理実行部１０６によって参照される。
【００１９】
同様にＳ１０６で、ＣＰＵ負荷の履歴情報からＣＰＵ負荷（率）についても解析を行い、ＣＰＵ負荷（率）がメモリ使用量のしきい値（３０３）に達する時刻（３０４）の直前に、ＣＰＵ負荷（率）が最小になる時間帯（４０１）を求める。なお、時間帯（４０１）は最小ではなく、一定値以下としてもよい。
【００２０】
図４はＣＰＵ負荷推移の予想曲線を示す。ＣＰＵ負荷は計算機システムの業務内容により増加したり減少したりする特性がある。この特性を利用して、ＣＰＵ負荷の変動特性を点線のように予想曲線として保持しておく。
【００２１】
通常計算機システムは時間単位、日単位、週単位、月単位で業務が行われる。また、人が操作するシステムでは、人が操作している時間帯はＣＰＵ負荷が高くなるが、深夜は計算機が操作待ちの状態でＣＰＵ負荷が低いのが通常である。このため、ＣＰＵ負荷が高くなる時間帯と低くなる時間帯が定期的に検出される。
【００２２】
この情報から計算機システムにおいて、ある時間帯におけるＣＰＵ負荷の変動を予想（４０２）する。たとえば、一時間毎に業務を行う計算機システムでは一回の業務が終了した後には、待ち状態となりＣＰＵ負荷は減少する。その後一時間後に業務が開始されればＣＰＵ負荷は高くなる。この状態を３回検出した時点でＣＰＵ負荷が変動するパターンを予想することができる。
【００２３】
Ｓ１０６では、このＣＰＵ負荷率を予想した情報から、メモリ使用量のしきい値（３０３）に至る時間（３０４）を基点として、その直前の１周期の範囲内（４０４）で、ＣＰＵ負荷が最も（又は一定値以下に）低くなる時間帯（４０１）を求める。この時間帯４０１は計算機システムが業務を行っていない時間帯であると予測され、回復処理実行部１０６はリブート処理などの回復処理を計算機業務に影響を与えることなく安全に実行できる。ステップＳ１０７では、この時間帯（４０１）に指定された回復処理が行なわれるように、情報設定参照コマンド１０７をセットする。
【００２４】
次に、メモリ使用量とＣＰＵ負荷による通知例を説明する。メモリリークが発生していると判断できた時点（３０７）で、計算機システム管理者またはユーザが設定したプログラムにイベントやメイルにより通知する。
【００２５】
図５は管理者へのメッセージ内容を示している。表示装置１０８に表示されるメッセージ５０１の内容としては、計算機システムがメモリ使用量限界またはしきい値に到達するまでの予想時間５０２、それに到達する以前のＣＰＵ負荷が最小になる時間５０３、及び現在のメモリ使用量５０４である。このメッセージは時間ととともに更新されるようにしてもよい。
【００２６】
通知を受けた設定プログラムは、これらの情報のほかにメモリ負荷履歴情報１０３、ＣＰＵ負荷履歴情報１０４を参照することができる。メモリ負荷履歴情報１０３には、プロセス毎の履歴情報も合わせて記録されているため、どのプロセスがメモリリークしているかを判断することができる。履歴移情報は測定時間と共に記録されているため、Ｅｘｃｅｌなどの表計算ソフトウェアにより、詳細情報をグラフ表示により視覚的に確認することも可能である。
【００２７】
メモリリークが発生していると判断できた時点３０７から、実際にメモリ使用量しきい値（３０３）に至るまでには時間的余裕３０９がある。このため、計算機システム管理者はメモリ負荷履歴情報１０３、ＣＰＵ負荷履歴情報１０４から、リブート処理などの回復処理を何時、行えばよいかを検討することが可能である。
【００２８】
プロセス毎のメモリ負荷履歴情報からメモリリークが発生しているプロセスが特定できた場合には、メモリリークしているプロセスを停止させ、再起動することで他制御プログラムへの影響を最小限にして回復処理を行うことができる。
【００２９】
また、メモリ使用量限界のしきい値に達した時点で、管理者へのメッセージ５０１を通知するときは、まだメモリ使用量限界には達していないため、計算機システム管理者は時間的に余裕ができ安全に回復処理を行うことが可能である。
【００３０】
次に、本発明の実施例２として、メモリ使用量とプロセス数による回復処理例を説明する。図６は実施例２による計算機システムの構成図である。図１との相違は、ＯＳ管理テーブル１０１がＣＰＵ負荷に代えてプロセス数またはスレッド数の情報を記憶している点である。
【００３１】
メモリ使用量とプロセス数により回復処理を行うケースは、Ｉ／Ｏ処理などが多い計算機システムにおいて有効である。Ｉ／Ｏ処理が多いシステムにおいては、Ｉ／Ｏ処理中のＣＰＵ待ちが発生し、ＣＰＵ負荷の変動が明確に現れてこない。これを解決する方法として、その時に起動されて動作しているプロセス数またはスレッド数の情報を利用する。
【００３２】
計算機システムのＯＳ管理テーブル１０１に記憶されているメモリ使用量とプロセス数またはスレッド数を定期的に取り出し、取り出し時刻と共にメモリ負荷履歴情報１０３、プロセス数履歴情報６０１にそれぞれ記録する。
【００３３】
通常、計算機システムが業務を行う時には、業務プログラムを起動して処理を実行するか、スレッドを生成して業務を行う。このため、ＣＰＵ負荷を使用した場合と同様に、プロセス数またはスレッド数の情報を収集することにより、計算機システムが業務を実施しているかどうかの判断ができる。
【００３４】
そこで、実施例１のＣＰＵ負荷推移予想曲線に代えて、プロセス数またはスレッド数の推移予想曲線を用意する。この予想曲線からメモリ使用量のしきい値（３０３）に至る時間（３０４）を基点として、それ以前の１周期の範囲内で、プロセス数またはスレッド数が最も低くなる時間帯を求め、この時間帯に回復処理を実行させる。
【００３５】
【発明の効果】
本発明によれば、計算機システムを連続して使用する場合に、メモリリークによるメモリ不足の限界時期を予測できるので、限界以前に回復処理を行なうことで、安定した計算機システムの運用ができる効果がある。
【００３６】
また、メモリ負荷履歴情報をプロセス毎に収集して、メモリリークが発生しているプロセスを特定するので、当該プロセス処理のみリブートなどの回復処理を行うので、計算機システムが実施している他プロセスへの影響を最小限にできる効果がある。
【図面の簡単な説明】
【図１】本発明の一実施例による計算機システムの構成図。
【図２】図１の計算機システムの処理動作を示すフロー図。
【図３】メモリ負荷推移の予想曲線図。
【図４】ＣＰＵ負荷推移の予想曲線図。
【図５】管理者へのメッセージのデータ構成図。
【図６】本発明の他の実施例による計算機システムの構成図。
【符号の説明】
１０１…ＯＳ管理テーブル、１０２…情報取得処理部、１０３…メモリ負荷履歴情報領域、１０４…ＣＰＵ負荷履歴情報領域、１０５…情報解析処理部、１０６…回復処理実行部、１０７…情報設定参照コマンド、１０８…表示装置、３０１…メモリ使用量実測履歴、３０２…メモリ使用量予測曲線、３０３…メモリ使用量しきい値、３０４…メモリ使用限界時刻、３０５…メモリ使用量限界点、３０６〜３０７…メモリ使用量実測点、４０１…ＣＰＵ負荷最少予測点、４０２…ＣＰＵ負荷予想曲線、５０１…管理者へのメッセージ、６０１…プロセス数履歴情報領域。
【図１】
2004005305.tif 000003
【図２】
2004005305.tif 000004
【図３】
2004005305.tif 000005
【図４】
2004005305.tif 000006
【図５】
2004005305.tif 000007
【図６】
2004005305.tif 000008