JP5445726B1 - ソフトウェア延命時期決定システム、ソフトウェア延命時期決定方法、およびプログラム - Google Patents

ソフトウェア延命時期決定システム、ソフトウェア延命時期決定方法、およびプログラム Download PDF

Info

Publication number
JP5445726B1
JP5445726B1 JP2013546520A JP2013546520A JP5445726B1 JP 5445726 B1 JP5445726 B1 JP 5445726B1 JP 2013546520 A JP2013546520 A JP 2013546520A JP 2013546520 A JP2013546520 A JP 2013546520A JP 5445726 B1 JP5445726 B1 JP 5445726B1
Authority
JP
Japan
Prior art keywords
software
state model
life extension
state
software life
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.)
Active
Application number
JP2013546520A
Other languages
English (en)
Other versions
JPWO2013146252A1 (ja
Inventor
文雄 町田
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2013546520A priority Critical patent/JP5445726B1/ja
Application granted granted Critical
Publication of JP5445726B1 publication Critical patent/JP5445726B1/ja
Publication of JPWO2013146252A1 publication Critical patent/JPWO2013146252A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

ソフトウェアのエージングによるソフトウェアの状態変化を表す第1の状態モデルを格納するエージング状態モデル記憶部と、ソフトウェア延命処理によるソフトウェアの状態変化を表す第2の状態モデルを格納するソフトウェア延命状態モデル記憶部と、第1の状態モデルおよび第2の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、パラメタ値と評価関数を用いて、第1の状態モデルおよび第2の状態モデルを解析する状態モデル解析部と、第1の状態モデルおよび第2の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定するソフトウェア延命時期決定部とを備える。

Description

本発明は、ソフトウェア延命時期決定システム、ソフトウェア延命時期決定方法、およびプログラムに関する。
ソフトウェアのバグは、ITシステムの障害を引き起こす主要な要因の一つである。ソフトウェアの開発やテスト段階で完全にバグを取り除くことは難しく、運用段階においてソフトウェアのバグに起因したシステム障害が発生することは稀ではない。
運用段階において発生するソフトウェアバグの典型例としてエージングバグが知られている。エージングバグとは、ソフトウェアの長期連続稼働により、ソフトウェアの実行環境に劣化現象を生じるバグであり、大幅な性能低下やシステム障害の原因となる。例えば、長時間連続稼働によってメモリ消費量が徐々に増え、メモリリークを生じるバグはエージングバグの一種である。また、プログラム内で持つカウンタの値が長時間の連続稼働によって制限値を超えてオーバーフローする例も、エージングバグの一種として捉えられる。
このようなエージングバグは、ソフトウェア単体でのテストでは発見が容易ではなく、ソフトウェアの運用段階に入ってから顕在化する場合が多い。ITシステムとして統合されてからバグが発現すると、システム停止や性能低下などの問題を生じるばかりでなく、バグの発見や除去自体が難しくなる。
エージングバグに対するソフトウェア運用時の対処法の例として、特許文献1や特許文献2には、ソフトウェア若化について記載されている。
特開平08−095814号公報 特許3737695号公報
特許文献1,2に記載されているソフトウェア若化は、エージングにより劣化するソフトウェアの稼働環境をリブートやリセットによって初期状態に戻すことにより、障害や性能低下を未然に防ぐ技術である。具体的にはソフトウェアを稼働させるアプリケーションサーバやオペレーティングシステム(OS)の再起動などによって実施されることが多い。ソフトウェア若化により、エージングバグによるITシステムの障害を回避あるいは延期できる。しかし、稼働状態にあるソフトウェアを一端停止して再稼働させる必要があるため、不必要にソフトウェア若化を実施するとシステムの稼働率の低下を招く。
そこで、本発明の目的は、システムの可用性(稼働率)と性能の両方を考慮して、最適なソフトウェアエージング対策を実施することである。
本発明に係るソフトウェア延命時期決定システムは、ソフトウェアのエージングによるソフトウェアの状態変化を表す第1の状態モデルを格納するエージング状態モデル記憶部と、ソフトウェア延命処理によるソフトウェアの状態変化を表す第2の状態モデルを格納するソフトウェア延命状態モデル記憶部と、前記第1の状態モデルおよび前記第2の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、前記パラメタ値と前記評価関数を用いて、前記第1の状態モデルおよび前記第2の状態モデルを解析する状態モデル解析部と、
前記第1の状態モデルおよび前記第2の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定するソフトウェア延命時期決定部と、を備えたものである。
本発明に係るソフトウェア延命時期決定システムは、ソフトウェアのエージングによるソフトウェアの状態変化を表す第1の状態モデルを格納するエージング状態モデル記憶部と、ソフトウェア延命処理によるソフトウェアの状態変化を表す第2の状態モデルを格納するソフトウェア延命状態モデル記憶部と、システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、前記第1の状態モデルと、前記第2の状態モデルと、前記評価関数に基づいて、ソフトウェア延命判定式を導出するソフトウェア延命判定式導出部と、前記第1の状態モデルおよび前記第2の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、前記パラメタ値と前記ソフトウェア延命判定式を用いて、ソフトウェア延命処理の実施を行う時期を決定するソフトウェア延命時期決定部と、を備えたものである。
本発明に係るソフトウェア延命時期決定方法は、ソフトウェアのエージングによるソフトウェアの状態変化を表す第1の状態モデル、およびソフトウェア延命処理によるソフトウェアの状態変化を表す第2の状態モデル、前記第1の状態モデルおよび前記第2の状態モデルのパラメタ値と、システムが目標とする性能や可用性の値を定める評価関数と、を用いて解析する工程と、前記第1の状態モデルおよび前記第2の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定する工程と、を備えたものである。
本発明に係るプログラムは、コンピュータを、ソフトウェアのエージングによるソフトウェアの状態変化を表す第1の状態モデルを格納するエージング状態モデル記憶部と、ソフトウェア延命処理によるソフトウェアの状態変化を表す第2の状態モデルを格納するソフトウェア延命状態モデル記憶部と、前記第1の状態モデルおよび前記第2の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、前記パラメタ値と前記評価関数を用いて、前記第1の状態モデルおよび前記第2の状態モデルを解析する状態モデル解析部と、前記第1の状態モデルおよび前記第2の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定するソフトウェア延命時期決定部と、して機能させるためのものである。
本発明によれば、システムの稼働率と性能の両方を考慮して、最適なソフトウェアエージング対策を実施することができる。
本発明の実施の形態1による、ソフトウェア延命時期決定システムの構成を示すブロック図。 本発明の実施の形態1による、ソフトウェア延命時期決定システムの動作のフローチャート。 本発明の実施の形態2による、ソフトウェア延命時期決定システムの動作のフローチャート。 本発明の実施の形態3による、ソフトウェア延命時期決定システムの構成を示すブロック図。 本発明の実施の形態3による、ソフトウェア延命時期決定システムの動作のフローチャート。 本発明の実施の形態3による、ソフトウェア延命時期決定システムの動作のフローチャート。 本発明の実施の形態4による、ソフトウェア延命時期決定システムの構成を示すブロック図。 本発明の実施の形態5による、ソフトウェア延命時期決定システムの構成を示すブロック図。 本発明の実施例を説明する図。 本発明の実施例を説明する図。 本発明の実施例を説明する図。 本発明の実施例を説明する図。
実施の形態1.
次に、本発明を実施するための形態について、図面を参照して詳細に説明する。
図1は、本発明の実施の形態1によるソフトウェア延命時期決定システム10の構成を示すブロック図である。図1に示すように、ソフトウェア延命時期決定システム10は、エージング状態モデル記憶部101、ソフトウェア延命状態モデル記憶部102、パラメタ入力部103、評価関数記憶部104、状態モデル解析部105、ソフトウェア延命時期決定部106、およびソフトウェア延命処理ポリシ記憶部107を備えている。
ソフトウェア延命時期決定システム10は、CPU、ROMやRAM等のメモリ、各種の情報を格納する外部記憶装置、入力インタフェース、出力インタフェース、通信インタフェース及びこれらを結ぶバスを備える専用又は汎用のコンピュータを適用することができる。なお、ソフトウェア延命時期決定システム10は、単一のコンピュータにより構成されるものであっても、通信回線を介して互いに接続された複数のコンピュータにより構成されるものであってもよい。
パラメタ入力部103、状態モデル解析部105、ソフトウェア延命時期決定部106は、CPUがROM等に格納された所定のプログラムを実行することにより実現される機能のモジュールに相当する。エージング状態モデル記憶部101、ソフトウェア延命状態モデル記憶部102、評価関数記憶部104、ソフトウェア延命処理ポリシ記憶部107は、外部記憶装置により実装される。
エージング状態モデル記憶部101は、ソフトウェアのエージングによる状態変化を捉えたモデルを格納している。
ソフトウェア延命状態モデル記憶部102は、ソフトウェア延命処理の振る舞いを捉えたモデルを格納している。
パラメタ入力部103は、ソフトウェア障害率や復旧率などのモデルのパラメタの入力を受ける。
評価関数記憶部104は、システムが目標とする可用性や性能の値を定めるための評価関数を格納している。
状態モデル解析部105は、状態モデルの過渡状態や定常状態を解析し、入力されたパラメタの値に基づいて評価関数の値を求める。
ソフトウェア延命時期決定部106は、状態モデル解析の結果に基づいてソフトウェア延命処理の実施を判定する。
ソフトウェア延命処理ポリシ記憶部107は、ソフトウェア延命時期決定部106が決定した結果を保持するソフトウェア延命処理ポリシを格納する。
ここで、ソフトウェア延命とはエージングバグに対する対処方法である。ソフトウェア若化が、ソフトウェアの稼働環境をリブートやリセットによって初期状態に戻すことにより、障害や性能低下を未然に防ぐのに対し、ソフトウェア延命は、システムの稼働状態をできるだけ維持しつつ、障害を先送りさせる手法である。
例えば、メモリ消費量の増加がソフトウェアにかかるワークロードに依存する場合、ワークロードを削減することでメモリ消費量の増加を抑制してメモリリークに至る時間を先延ばしする処理は、ソフトウェア延命処理の一例である。
また、仮想化技術によって実現された仮想サーバ上では、動的にメモリ容量を追加することが可能であるため、メモリの一時的な追加によってメモリリークの障害を先延ばしすることもソフトウェア延命処理の一例である。
このようなソフトウェア延命処理は、ソフトウェアシステムの運用管理において対処療法的に利用することができるが、システムの可用性(稼働率)や性能を考慮して計画的に利用することが望ましい。すなわち、システムの可用性や性能を考慮した場合には、どの時点でソフトウェア延命処理を実施するかの判断が重要である。
具体的には、延命処理はワークロード処理量の低下や追加リソースの投入などのコストを伴うため、初めから延命のための縮退状態(あるいはオーバースペックな状態)でソフトウェアを稼働させることは適当ではない。一方、稼働時間の継続に伴ってシステムの故障率は高まるため、何れかの時点において縮退状態へ移行(あるいはリソースを追加)することが望ましい。このように、ソフトウェアの延命処理は、システムの可用性や性能の観点からもっとも効果的なタイミングで実施するのが望ましい。
次に、図2を用いてソフトウェア延命時期決定システム10の動作について説明する。
まず、状態モデル解析部105は、評価関数記憶部104から評価関数Fを取得する(図2、ステップ1001)。
次に、状態モデル解析部105は、パラメタ入力部103を介して解析のために必要なパラメタ値を読み込む(ステップ1002)。パラメタ値は、少なくとも、ソフトウェアの障害率、エージングレート、復旧率、延命処理実行レート、および延命処理後の障害率を含む。
次に、状態モデル解析部105は、エージング状態モデル記憶部101からエージング状態モデルを取得し(ステップ1003)、入力されたパラメタ値を用いて状態モデルの解析を行う(ステップ1004)。例えば、定常状態の解析では、連立方程式を直接式解析する方法や、反復解法を用いて数値解析する方法や、離散事象シミュレーションによって解析する方法などが適用できる。状態モデル解析により、エージング状態モデルにおける評価関数値Faを求める(ステップ1005)。
次に、状態モデル解析部105は、ソフトウェア延命状態モデル記憶部102からソフトウェア延命状態モデルを取得し(ステップ1006)、ステップ1004と同様に状態モデルの解析を行う(ステップ1007)。
状態モデルの解析には、エージング状態モデルの解析で用いた手法と同じ手法を用いる。解析により評価関数値Fbを求める(ステップ1008)。次に、状態モデル解析部105は、評価関数値FaとFbを比較し(ステップ1009)、FbがFaよりも大きければ(Yes)ソフトウェア延命処理が有効であると判断し、ソフトウェア延命処理ポリシを設定してソフトウェア延命処理ポリシ記憶部107に格納する(ステップ1010)。
より小さな評価関数値Fが望ましい場合は、FbがFaより小さい場合にソフトウェア延命処理が有効であると判断する。ソフトウェア延命処理が有効でない場合は、ソフトウェア延命処理を実施しない(ステップ1011)。
以上のように、本実施形態によれば、エージング状態モデルの状態モデル解析結果Faと、ソフトウェア延命状態モデルの状態モデル解析結果Fbとの比較結果に基づいて、ソフトウェア延命を行うか否かを判定するようにしたので、システムの可用性(稼働率)や性能の観点からソフトウェア延命処理が有効かどうかを判定することができる。
実施の形態2.
図3は本発明の実施の形態2によるソフトウェア延命時期決定システム10の動作のフローチャートである。
実施の形態2では、まず、状態モデル解析部105は、パラメタ入力部103を介して延命時期を表す可変パラメタの定義域X=(x1,x2,… ,xn)を読み込む(ステップ1021)。可変パラメタの例としては、ソフトウェア延命実行レート(単位時間あたりのソフトウェア延命処理実行回数)や平均ソフトウェア延命処理実施間隔などがある。
次に、状態モデル解析部105は、入力された定義域Xの範囲でパラメタ値xi(1≦i≦n)を順番に設定し、状態モデル解析によって評価関数値Fb(xi)を導出する(ステップ1023〜1025)。定義域X内の全てのxiについてステップ1023〜1025を繰り返す(ステップ1026,1027)。
全てのxiについて評価関数値Fb(xi)を導出したら、評価関数値が最大となるxiを求め、このときのiの値をioptとする(ステップ1028)。さらに、xioptに基づいてソフトウェア延命処理を実行するソフトウェア延命処理ポリシを設定する(ステップ1029)。
例えば、パラメタxiがソフトウェア延命処理実行レートを表す場合は、レートの逆数から平均ソフトウェア延命処理実行間隔を求め、この実行間隔に基づいてソフトウェア延命処理を実行するポリシを設定する。
以上のように、本実施形態によれば、延命時期を表す可変パラメタの定義域から、状態モデル解析により目標とする指標を最大化あるいは最小化する最適なパラメタ値xioptを求めてソフトウェア延命処理を実施するようにしたので、システムの可用性や性能を最適化するソフトウェア延命処理時期を決定することができる。
実施の形態3.
図4は、本発明の実施の形態3によるソフトウェア延命時期決定システム30の構成を示すブロック図である。図1と同一の符号は同様の構成要素を表している。
図4に示すように、ソフトウェア延命時期決定システム30は、ソフトウェア延命判定式導出部108と、ソフトウェア延命判定式記憶部109を備えている点が実施の形態1と異なっている。
ソフトウェア延命判定式導出部108は、エージング状態モデル101から取得したエージング状態モデルと、ソフトウェア延命状態モデル記憶部102から取得したソフトウェア延命状態モデル、および評価関数記憶部104から取得した評価関数に基づいて、事前にソフトウェア延命判定式を導出して格納し、ソフトウェア延命判定式記憶部109に格納しておく。ソフトウェア延命時期決定部106は、パラメタ入力部103を介して読み込んだパラメタ値とソフトウェア延命判定式記憶部109から取得したソフトウェア延命判定式に基づいて、ソフトウェア延命時期を決定する。
図5、図6を用いてソフトウェア延命時期決定システム30の動作について説明する。
まず、ソフトウェア延命判定式導出部108は、評価関数記憶部104から評価関数Fを取得し(図5、ステップ2001)、エージング状態モデル記憶部101からエージング状態モデルを取得する(ステップ2002)。
次に、ソフトウェア延命判定式導出部108は、エージング状態モデルにおける評価関数を式解析により導出する(ステップ2003)。評価関数は入力パラメタΘ=(θ1, θ2, …, θn)の関数Fa(Θ)として表される。
次に、ソフトウェア延命判定式導出部108は、ソフトウェア延命状態モデル記憶部102からソフトウェア延命状態モデルを取得し(ステップ2004)、ステップ2003と同様に、評価関数の解析結果Fb(Θ)を導出する(ステップ2005)。
ソフトウェア延命判定式導出部108は、次にFa(Θ)とFb(Θ)を比較し、Fa(Θ)<Fb(Θ)となるΘに関する条件σx(Θ)を導出し、ソフトウェア延命判定式記憶部109に格納する(ステップ2006)。
以上の処理は、ソフトウェア延命処理時期の決定を行う前、すなわちパラメタ値が未知の場合でも事前に行うことができる。
次に、延命処理の有効性を判定する必要が生じた際には、ソフトウェア延命時期決定部106がソフトウェア延命判定式σx(Θ)を参照する(図6、ステップ2007)。
次に、パラメタ入力部103を介してパラメタ値を読み込み(ステップ2008)、判定式σx(Θ)に入力し、判定を行う(ステップ2009)。
判定の結果Fa(Θ)<Fb(Θ)となる条件が満たされればソフトウェア延命処理実施ポリシを設定する(ステップ2010)。条件が満たされなければ延命処理は実施しない(ステップ2011)。
以上のように、本実施形態によれば、ソフトウェア延命処理が有効となる条件や最適な延命処理を実施するパラメタ値に関する条件を事前に式解析によって導出して格納するようにした。このため、延命処理の有効性の判定時には、パラメタ値を与えれば判定が可能になるので、判定処理を簡略化することができる。また、本実施形態では、パラメタ値のみで延命処理の有効性を判定できるため、導出した判定式を様々なシステムでの判定基準として再利用することができる。
実施の形態4.
図7は、本発明の実施の形態4によるソフトウェア延命時期決定システム40の構成を示すブロック図である。図1と同一の符号は同様の構成要素を表している。
図7に示すように、ソフトウェア延命時期決定システム40は、ソフトウェア若化状態モデル記憶部110、エージング対処決定部111、およびソフトウェア若化処理ポリシ記憶部112を備えている点が実施の形態1と異なっている。
実施の形態4によるソフトウェア延命時期決定システム40の動作について説明する。
状態モデル解析部105は、実施の形態1と同様にエージング状態モデルおよびソフトウェア延命状態モデルを用いて評価関数Fa,Fbを導出する。さらに、状態モデル解析部105は、ソフトウェア若化状態モデル記憶部110からソフトウェア若化状態モデルを取得し、入力パラメタに基づいて評価関数Fの値Fcを導出する。
さらに、エージング対処決定部111において、図2のステップ1009と同様に、Fa、Fb、Fcの大小関係の評価から、ソフトウェア延命を実施するか、ソフトウェア若化を実施するか、どちらも実施しないかを判定する。システムの状況によっては、ソフトウェア延命処理よりもソフトウェア若化を実施した方が有効な場合もある。
以上のように、本実施形態によれば、ソフトウェア若化状態モデルも考慮してソフトウェアエージングに対処する有効な手段を判定するようにしたので、システムの可用性や性能の観点でより有効なエージング対処手段を判定できる。
実施の形態5.
図8は、本発明の実施の形態5によるソフトウェア延命時期決定システム50の構成を示すブロック図である。図1と同一の符号は同様の構成要素を表している。
図8に示すように、ソフトウェア延命時期決定システム50は、ソフトウェア稼働状態監視部113、ソフトウェア実行装置114、およびソフトウェア延命処理実施部115を備えている点が実施の形態1と異なっている。
ソフトウェア実行装置114は、エージングによる劣化現象のあるソフトウェアを実行させる装置であり、ソフトウェア稼働状態監視部113は、ソフトウェア実行装置114におけるソフトウェアの稼働状態を監視する。
ソフトウェア稼働状態監視部113は、監視情報の統計からモデルに入力するパラメタ値を決定し、パラメタ入力部103に供給する。
一方、ソフトウェア延命処理実施部115は、ソフトウェア延命時期決定部106によって設定されたソフトウェア延命処理ポリシを参照し、ソフトウェア実行装置114に対して、ポリシで指定されたタイミングでソフトウェア延命処理を実施する。具体的には、ソフトウェア延命処理は、ソフトウェアに与える負荷やワークロードの削減、動的なリソースの追加、指定された縮退構成への移行などを含む。
以上のように、本実施形態によれば、稼働中のソフトウェアの監視情報に基づいてパラメタ値を決定してソフトウェア延命処理の実施可否を判定するようにしたので、稼働状況に応じて動的にソフトウェア延命処理の有効性を判定することができる。
次に、本発明の実施例について、具体例を用いて説明する。
図9は、連続時間マルコフ連鎖(CTMC)を用いてソフトウェアエージング状態モデルを表現した例である。図中の丸は状態を、矢印は状態の遷移パスを表しており、状態の遷移にかかる時間はラベル付けされた値をパラメタ値とする指数分布に従うものとする。
状態UPはソフトウェアの正常な稼働状態を表し、状態FPはソフトウェアエージングにより劣化した状態を表す。状態Fはエージングの進行によってソフトウェア障害が発生した状態を表している。
状態UPから状態FPへはλ1のレートで遷移し、状態FPから状態Fへはλ2のレートで遷移し、状態Fから状態UPへはμのレートで遷移する。λ1、λ2、μなどのレートを表すパラメタ値は、平均遷移時間の逆数と等価であり、ソフトウェア平均エージング状態遷移時間、平均故障時間、平均復旧時間から求めることができる。
例えば、障害後に正常な稼働状態に復帰するまでにかかる時間が平均2時間であったとすると、μ=1/2となる(単位は[1/hour])。このモデルにおいて、ソフトウェア稼働状態であるのは状態UPと状態FPである。
したがって、システムの可用性はこのソフトウェアが状態UPにある確率と状態FPにある確率の和で表される。定常状態における状態UPの確率をπUP、状態FPの確率をπFPと表せば、可用性AはπUP+πFPで求まる。πUP、πFPの値はCTMCの定常状態解析により求めることができる。
図10は、ソフトウェア延命処理の振る舞いをCTMCでモデル化した例を示す図である。ソフトウェアエージング状態モデルのCTMCに加え、延命処理を実施した後の状態LPを持つ。ソフトウェア延命処理によって状態FPから状態LPにδのレートで遷移し、最終的に状態Fにλ3のレートで遷移する。
状態LP状態もソフトウェア稼働状態の一つであるため、システムの可用性AはπUP+πFP+πLPで求まる。ただし、πUP、πFPの値はソフトウェアエージング状態モデルのπUP、πFPの値とは異なる。
CTMCの定常状態の解析手法としては、状態方程式を解析的に解く方法、反復解法によって数値解析により解く方法、離散時間シミュレーションによって解く方法がある。ここでは解析的に解く場合の例を示す。図9のCTMCと図10のCTMCについて式解析によって定常状態を解析すると、AおよびAはそれぞれ下記の式1、2のように求まる。
Figure 0005445726
Figure 0005445726
パラメタ値としてλ1=1/(24*20)、λ2=1/(24*10)、λ3=1/(24*15)、δ=1/24、m=1を入力すると、A=0.998613、A=0.998795と求まる。
この結果、A<Aであるため、ソフトウェア延命処理は可用性の観点で有効であると判断できる。
次に、ソフトウェア延命処理実行レートδの候補としてδ1=1/12、δ2=1/24、δ3=1/48がある状況を考える。パラメタ値を変えて可用性を評価するとA(δ1)=0.998803、A(δ2)=0.998795、A(δ3)=0.998782となり、δ1のとき可用性が最も高くなることがわかる。したがって、δ1の延命処理実行レートで延命処理を実施するポリシを設定することで、可用性を最大化できる。
次に、ソフトウェア延命処理が有効となる条件を考慮する。ソフトウェア延命処理が可用性の観点で有効となるのはA≧Aが満たされる場合である。この条件に式1、式2を当てはめて式を整理するとλ3≦λ2の条件と等価であることが求まる。この条件をソフトウェア延命判定式として用いることで、様々な状況でソフトウェア延命処理を実施する判断の基準として用いることができる。
λ3≦λ2は、延命処理後のソフトウェア故障率が、延命処理を実施しない場合の故障率と比べて小さいことを表しており、直観的な判断とも一致する。ソフトウェアエージングを表すモデルや延命処理を表すモデルがより複雑である場合や、評価関数が性能やコストなどを含んだ場合などは、直観的に判断できるとは限らない。
図11はソフトウェアエージングの状態遷移をセミマルコフ過程(SMP)でモデル化した例である。状態Uが稼働状態を表し、状態Fがソフトウェア障害状態を表す。状態Uから状態Fへの状態遷移時間は確率分布F(t)に従い、状態Fから状態Uへの復旧を表す状態遷移時間は確率分布F(t)に従う。
ソフトウェアの障害はエージングによって徐々に故障率が高くなるため時間の経過に伴って障害率が増加する種類の確率分布が用いられる(例えばhypo−exponential分布)。このシステムの可用性は定常状態で状態Uにある確率で表され、以下の式で求めることができる。
Figure 0005445726
次に、エージング状態を特定せず、ソフトウェアが稼働してから一定時間Tが経過した後にソフトウェア延命処理を実施する場合を考える。エージング状態を特定する必要がないため、ソフトウェア延命処理の実施が容易であるが、適切な延命処理実施時期を判断することが難しい。
図12は、このシステムの振る舞いをSMPでモデル化した例を示す図である。図12のモデルでは、ソフトウェアエージングのSMPモデルに加え、ソフトウェア延命処理を実施した後の状態Lを持つ。状態Uから状態Lへの状態遷移時間は確率分布Fpr(t)に従い、状態Lから状態Fへの状態遷移時間は確率分布Ff2(t)に従う。ここで、状態Uから状態Lへの遷移は決定的であり、単位ステップ関数u(t)を用いてu(t−T)と表されるものとする。すなわち、時刻t=Tで決定的に状態遷移が発生する場合を考えると、このシステムにおける可用性はソフトウェアが状態Uにあるか状態Lにある確率で表されるため、以下の式で求めることができる。
Figure 0005445726
(t)、F(t)、Ff2(t)に対して特定の確率分布を仮定し、与えられたパラメタ入力値をモデルに与えて式3と式4を評価することで、ソフトウェア延命処理が有効であるか否かを判定することが可能となる。また、Tの値を変化させて可用性を評価することにより、可用性を最大化するTを特定することができる。特に以下の式5の条件が満たされるとき、0<T<∞の範囲で可用性を最大化するToptが存在する。この場合、Toptは以下の式6を満たす値として求められる。
Figure 0005445726
Figure 0005445726
この出願は、2012年3月30日に出願された日本出願特願2012−80198を基礎とする優先権を主張し、その開示の全てをここに取り込む。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
上記の実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)ソフトウェアのエージングによるソフトウェアの状態変化を表す第1の状態モデルを格納するエージング状態モデル記憶部と、
ソフトウェア延命処理によるソフトウェアの状態変化を表す第2の状態モデルを格納するソフトウェア延命状態モデル記憶部と、
前記第1の状態モデルおよび前記第2の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、
システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、
前記パラメタ値と前記評価関数を用いて、前記第1の状態モデルおよび前記第2の状態モデルを解析する状態モデル解析部と、
前記第1の状態モデルおよび前記第2の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定するソフトウェア延命時期決定部と、を備えたソフトウェア延命時期決定システム。
(付記2)ソフトウェアのエージングによるソフトウェアの状態変化を表す第1の状態モデルを格納するエージング状態モデル記憶部と、
ソフトウェア延命処理によるソフトウェアの状態変化を表す第2の状態モデルを格納するソフトウェア延命状態モデル記憶部と、
システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、
前記第1の状態モデルと、前記第2の状態モデルと、前記評価関数に基づいて、ソフトウェア延命判定式を導出するソフトウェア延命判定式導出部と、
前記第1の状態モデルおよび前記第2の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、
前記パラメタ値と前記ソフトウェア延命判定式を用いて、ソフトウェア延命処理の実施を行う時期を決定するソフトウェア延命時期決定部と、を備えたソフトウェア延命時期決定システム。
(付記3)付記1に記載のソフトウェア延命時期決定システムであって、
前記状態モデル解析部は、
前記パラメタ値と前記評価関数を用いて、ソフトウェア若化処理によるソフトウェアの状態変化を表す第3の状態モデルをさらに解析し、
前記第1の状態モデル、前記第2の状態モデル、および前記第3の状態モデルの解析結果に基づいて、ソフトウェア延命処理またはソフトウェア若化処理の実施を行うか否かを判定するエージング対処決定部と、を備えたソフトウェア延命時期決定システム。
(付記4)付記1から3のいずれか1項に記載のソフトウェア延命時期決定システムであって、
ソフトウェアを実行させるソフトウェア実行装置と、
前記ソフトウェア実行装置における前記ソフトウェアの稼働状態を監視し、前記稼動状態に基づいて、前記パラメタ値を決定するソフトウェア稼働状態監視部と、
前記ソフトウェア実行装置に対し、前記ソフトウェア延命時期決定システムで決定されたソフトウェア延命処理を実施するソフトウェア延命処理実施部と、をさらに備えたソフトウェア延命時期決定システム。
(付記5)ソフトウェアのエージングによるソフトウェアの状態変化を表す第1の状態モデル、およびソフトウェア延命処理によるソフトウェアの状態変化を表す第2の状態モデル、前記第1の状態モデルおよび前記第2の状態モデルのパラメタ値と、システムが目標とする性能や可用性の値を定める評価関数と、を用いて解析する工程と、
前記第1の状態モデルおよび前記第2の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定する工程と、を備えたソフトウェア延命時期決定方法。
(付記6)コンピュータを、
ソフトウェアのエージングによるソフトウェアの状態変化を表す第1の状態モデルを格納するエージング状態モデル記憶部と、
ソフトウェア延命処理によるソフトウェアの状態変化を表す第2の状態モデルを格納するソフトウェア延命状態モデル記憶部と、
前記第1の状態モデルおよび前記第2の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、
システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、
前記パラメタ値と前記評価関数を用いて、前記第1の状態モデルおよび前記第2の状態モデルを解析する状態モデル解析部と、
前記第1の状態モデルおよび前記第2の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定するソフトウェア延命時期決定部と、して機能させるためのプログラム。
本発明は、ソフトウェアを長期連続稼働させるためのシステムの高信頼設計ツールに適用できる。また、ソフトウェアの稼働状況を監視して適切な管理操作を実施するシステム管理ツールにも適用できる。
10,30,40,50 ソフトウェア延命時期決定システム、101 エージング状態モデル記憶部、102 ソフトウェア延命状態モデル記憶部、103 パラメタ入力部、104 評価関数記憶部、105 状態モデル解析部、106 ソフトウェア延命時期決定部、107 ソフトウェア延命処理ポリシ記憶部、108 ソフトウェア延命判定式導出部、109 ソフトウェア延命判定式記憶部、110 ソフトウェア若化状態モデル記憶部、111 エージング対処決定部、112 ソフトウェア若化処理ポリシ記憶部、113 ソフトウェア稼働状態監視部、114 ソフトウェア実行装置、115 ソフトウェア延命処理実施部

Claims (6)

  1. ソフトウェアのエージングによるソフトウェアの状態変化を表す第1の状態モデルを格納するエージング状態モデル記憶部と、
    ソフトウェア延命処理によるソフトウェアの状態変化を表す第2の状態モデルを格納するソフトウェア延命状態モデル記憶部と、
    前記第1の状態モデルおよび前記第2の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、
    システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、
    前記パラメタ値と前記評価関数を用いて、前記第1の状態モデルおよび前記第2の状態モデルを解析する状態モデル解析部と、
    前記第1の状態モデルおよび前記第2の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定するソフトウェア延命時期決定部と、を備えたソフトウェア延命時期決定システム。
  2. ソフトウェアのエージングによるソフトウェアの状態変化を表す第1の状態モデルを格納するエージング状態モデル記憶部と、
    ソフトウェア延命処理によるソフトウェアの状態変化を表す第2の状態モデルを格納するソフトウェア延命状態モデル記憶部と、
    システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、
    前記第1の状態モデルと、前記第2の状態モデルと、前記評価関数に基づいて、ソフトウェア延命判定式を導出するソフトウェア延命判定式導出部と、
    前記第1の状態モデルおよび前記第2の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、
    前記パラメタ値と前記ソフトウェア延命判定式を用いて、ソフトウェア延命処理の実施を行う時期を決定するソフトウェア延命時期決定部と、を備えたソフトウェア延命時期決定システム。
  3. 請求項1に記載のソフトウェア延命時期決定システムであって、
    前記状態モデル解析部は、
    前記パラメタ値と前記評価関数を用いて、ソフトウェア若化処理によるソフトウェアの状態変化を表す第3の状態モデルをさらに解析し、
    前記第1の状態モデル、前記第2の状態モデル、および前記第3の状態モデルの解析結果に基づいて、ソフトウェア延命処理またはソフトウェア若化処理の実施を行うか否かを判定するエージング対処決定部と、を備えたソフトウェア延命時期決定システム。
  4. 請求項1から3のいずれか1項に記載のソフトウェア延命時期決定システムであって、
    ソフトウェアを実行させるソフトウェア実行装置と、
    前記ソフトウェア実行装置における前記ソフトウェアの稼働状態を監視し、前記稼動状態に基づいて、前記パラメタ値を決定するソフトウェア稼働状態監視部と、
    前記ソフトウェア実行装置に対し、前記ソフトウェア延命時期決定システムで決定されたソフトウェア延命処理を実施するソフトウェア延命処理実施部と、をさらに備えたソフトウェア延命時期決定システム。
  5. ソフトウェアのエージングによるソフトウェアの状態変化を表す第1の状態モデル、およびソフトウェア延命処理によるソフトウェアの状態変化を表す第2の状態モデル、前記第1の状態モデルおよび前記第2の状態モデルのパラメタ値と、システムが目標とする性能や可用性の値を定める評価関数と、を用いて解析する工程と、
    前記第1の状態モデルおよび前記第2の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定する工程と、を備えたソフトウェア延命時期決定方法。
  6. コンピュータを、
    ソフトウェアのエージングによるソフトウェアの状態変化を表す第1の状態モデルを格納するエージング状態モデル記憶部と、
    ソフトウェア延命処理によるソフトウェアの状態変化を表す第2の状態モデルを格納するソフトウェア延命状態モデル記憶部と、
    前記第1の状態モデルおよび前記第2の状態モデルのパラメタ値の入力を受けるパラメタ入力部と、
    システムが目標とする性能や可用性の値を定める評価関数を格納する評価関数記憶部と、
    前記パラメタ値と前記評価関数を用いて、前記第1の状態モデルおよび前記第2の状態モデルを解析する状態モデル解析部と、
    前記第1の状態モデルおよび前記第2の状態モデルの解析結果に基づいてソフトウェア延命処理の実施を行うか否かを判定するソフトウェア延命時期決定部と、して機能させるためのプログラム。
JP2013546520A 2012-03-30 2013-03-13 ソフトウェア延命時期決定システム、ソフトウェア延命時期決定方法、およびプログラム Active JP5445726B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013546520A JP5445726B1 (ja) 2012-03-30 2013-03-13 ソフトウェア延命時期決定システム、ソフトウェア延命時期決定方法、およびプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2012080198 2012-03-30
JP2012080198 2012-03-30
PCT/JP2013/056957 WO2013146252A1 (ja) 2012-03-30 2013-03-13 ソフトウェア延命時期決定システム、ソフトウェア延命時期決定方法、およびプログラム
JP2013546520A JP5445726B1 (ja) 2012-03-30 2013-03-13 ソフトウェア延命時期決定システム、ソフトウェア延命時期決定方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP5445726B1 true JP5445726B1 (ja) 2014-03-19
JPWO2013146252A1 JPWO2013146252A1 (ja) 2015-12-10

Family

ID=49259518

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013546520A Active JP5445726B1 (ja) 2012-03-30 2013-03-13 ソフトウェア延命時期決定システム、ソフトウェア延命時期決定方法、およびプログラム

Country Status (3)

Country Link
US (1) US20150347210A1 (ja)
JP (1) JP5445726B1 (ja)
WO (1) WO2013146252A1 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2152329C (en) * 1994-09-08 1999-02-09 N Dudley Fulton Iii Apparatus and methods for software rejuvenation
JP2009199478A (ja) * 2008-02-25 2009-09-03 Hitachi Ltd メモリミラーリング自動構成制御方式
JP5446602B2 (ja) * 2009-08-26 2014-03-19 株式会社リコー 画像形成装置

Also Published As

Publication number Publication date
US20150347210A1 (en) 2015-12-03
WO2013146252A1 (ja) 2013-10-03
JPWO2013146252A1 (ja) 2015-12-10

Similar Documents

Publication Publication Date Title
US9329981B2 (en) Testing program, testing method, and testing device
US9128747B2 (en) Methods and systems for optimizing the performance of software applications at runtime
EP2641178A1 (en) Analyzing performance of computing devices in usage scenarios
US9459989B2 (en) Method and apparatus for reverse debugging source code using causal analysis
WO2015071777A1 (en) Software component recommendation based on multiple trace runs
US9600795B2 (en) Measuring process model performance and enforcing process performance policy
US10949765B2 (en) Automated inference of evidence from log information
US11171852B2 (en) Computer system productivity monitoring
CN108647137B (zh) 一种作业性能预测方法、装置、介质、设备及系统
US8832839B2 (en) Assessing system performance impact of security attacks
US9396095B2 (en) Software verification
US20160077860A1 (en) Virtual machine placement determination device, virtual machine placement determination method, and virtual machine placement determination program
US9910709B2 (en) Allocation control method and apparatus
US20150088585A1 (en) Supply chain management using problem and remediation propagation modeling
US10318731B2 (en) Detection system and detection method
Mouallem et al. A fault-tolerance architecture for kepler-based distributed scientific workflows
JP5445726B1 (ja) ソフトウェア延命時期決定システム、ソフトウェア延命時期決定方法、およびプログラム
CN111913858A (zh) 一种压力测试系统和方法
CN113141407B (zh) 一种页面资源加载方法、装置和电子设备
Wu et al. Modeling the virtual machine launching overhead under fermicloud
US20190384682A1 (en) Effective selection of a virtual machine to be moved outside influence range of a failure
CN104268057A (zh) 一种Android平台下的模块化系统的监控系统及方法
Gavua et al. ASM-based Formal Model for Analysing Cloud Auto-Scaling Mechanisms
US20230409379A1 (en) Information processing device and job scheduling method
Gavua et al. Improving MapReduce Speculative Executions with Global Snapshots

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131209

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5445726

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150