IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社富士通エフサスの特許一覧

特許7622568加速試験プログラム、加速試験方法および加速試験装置
<>
  • 特許-加速試験プログラム、加速試験方法および加速試験装置 図1
  • 特許-加速試験プログラム、加速試験方法および加速試験装置 図2
  • 特許-加速試験プログラム、加速試験方法および加速試験装置 図3
  • 特許-加速試験プログラム、加速試験方法および加速試験装置 図4
  • 特許-加速試験プログラム、加速試験方法および加速試験装置 図5
  • 特許-加速試験プログラム、加速試験方法および加速試験装置 図6
  • 特許-加速試験プログラム、加速試験方法および加速試験装置 図7
  • 特許-加速試験プログラム、加速試験方法および加速試験装置 図8
  • 特許-加速試験プログラム、加速試験方法および加速試験装置 図9
  • 特許-加速試験プログラム、加速試験方法および加速試験装置 図10
  • 特許-加速試験プログラム、加速試験方法および加速試験装置 図11
  • 特許-加速試験プログラム、加速試験方法および加速試験装置 図12
  • 特許-加速試験プログラム、加速試験方法および加速試験装置 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-20
(45)【発行日】2025-01-28
(54)【発明の名称】加速試験プログラム、加速試験方法および加速試験装置
(51)【国際特許分類】
   G06F 11/36 20060101AFI20250121BHJP
【FI】
G06F11/36 164
【請求項の数】 7
(21)【出願番号】P 2021105308
(22)【出願日】2021-06-25
(65)【公開番号】P2023003923
(43)【公開日】2023-01-17
【審査請求日】2024-03-07
(73)【特許権者】
【識別番号】598057291
【氏名又は名称】エフサステクノロジーズ株式会社
(74)【代理人】
【識別番号】110004381
【氏名又は名称】弁理士法人ITOH
(72)【発明者】
【氏名】太田 博一
(72)【発明者】
【氏名】関 浩守
(72)【発明者】
【氏名】笠井 和典
(72)【発明者】
【氏名】友崎 敏宏
(72)【発明者】
【氏名】國本 将也
【審査官】西間木 祐紀
(56)【参考文献】
【文献】特開2004-038350(JP,A)
【文献】特開2011-197820(JP,A)
【文献】特開2012-194909(JP,A)
【文献】特開2015-114675(JP,A)
【文献】米国特許出願公開第2014/0282425(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/36
(57)【特許請求の範囲】
【請求項1】
アプリケーションの動作を加速して加速試験を実施する加速試験プログラムであって、
試験対象である試験対象アプリケーションと連携して動作する連携アプリケーションを選定し、
アプリケーションの動作を通常モードより加速させる加速モード中の動作の加速度合いを決定し、
前記加速度合いに基づいて前記試験対象アプリケーションおよび前記連携アプリケーションの動作を加速中、前記試験対象アプリケーションと連携しない非連携アプリケーションの動作の加速を無効にする
処理をコンピュータに実行させる加速試験プログラム。
【請求項2】
前記連携アプリケーションを選定する選定期間において、複数のアプリケーションを動作させ、前記試験対象アプリケーションとメモリ領域を共有するアプリケーションを前記連携アプリケーションとして選定する
請求項1に記載の加速試験プログラム。
【請求項3】
前記メモリ領域に割り当てられるアドレスと、前記試験対象アプリケーションと前記メモリ領域を共有するか否かを示すフラグとをアプリケーション毎に管理テーブルに保持し、
前記選定期間において、前記試験対象アプリケーションで使用するメモリ領域にアクセスしたアプリケーションのフラグをセットし、フラグがセットされたアプリケーションを前記連携アプリケーションと認識する
請求項2に記載の加速試験プログラム。
【請求項4】
アプリケーションを実行する演算処理部を、前記演算処理部の負荷状況に応じて切り替え可能であり、
前記非連携アプリケーションを実行する演算処理部の切り替えを許可し、
前記試験対象アプリケーションおよび前記連携アプリケーションを実行する演算処理部の切り替えを抑止する
請求項1ないし請求項3のいずれか1項に記載の加速試験プログラム。
【請求項5】
動作を加速しない場合に加速試験に掛かる試験時間と加速試験のために確保可能な試験時間との比から加速係数を算出し、
算出した前記加速係数に応じて、前記加速モード中の動作の加速度合いを決定する
請求項1ないし請求項4のいずれか1項に記載の加速試験プログラム。
【請求項6】
アプリケーションの動作を加速して加速試験を実施する加速試験方法であって、
試験対象である試験対象アプリケーションと連携して動作する連携アプリケーションを選定し、
アプリケーションの動作を通常モードより加速させる加速モード中の動作の加速度合いを決定し、
前記加速度合いに基づいて前記試験対象アプリケーションおよび前記連携アプリケーションの動作を加速中、前記試験対象アプリケーションと連携しない非連携アプリケーションの動作の加速を無効にする
処理をコンピュータに実行させる加速試験方法。
【請求項7】
アプリケーションの動作を加速して加速試験を実施する加速試験装置であって、
試験対象である試験対象アプリケーションと連携して動作する連携アプリケーションを選定するアプリケーション選定部と、
アプリケーションの加速モード中の動作の加速度合いを決定する加速モード設定部と、
前記加速度合いに基づいて前記試験対象アプリケーションおよび前記連携アプリケーションの動作を加速中、前記試験対象アプリケーションと連携しない非連携アプリケーションの動作の加速を無効にする加速試験実施部と、
を有する加速試験装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、加速試験プログラム、加速試験方法および加速試験装置に関する。
【背景技術】
【0002】
アプリケーションの実行中に発生する障害として、月単位または年単位の連続稼働により初めて現れるリソースの枯渇などによる障害がある。この種の障害を実運用と同じ環境で再現する場合、長期間の試験が必要である。このため、製品の出荷前などの限られた時間では連続稼働に起因する障害を検出することは困難である。
【0003】
そこで、OS(Operating System)の時刻を刻むタイマー割込みの間隔を短く設定して加速試験を実施することで、アプリケーションを高速に動作させ、障害の検出に要する試験時間を短縮する手法が知られている(例えば、特許文献1参照)。アプリケーションの負荷が大きい期間を避けてOSの時計機能を加速状態に設定し、加速試験を実施することで、通常動作では発生しない障害が、時計機能の加速に起因して発生することを抑止する手法が知られている(例えば、特許文献2参照)。
【0004】
タイマー割り込みと非同期に動作する周辺装置からの応答を待機する時間を、加速試験時のタイマー割り込み周期より長いタイマー割り込み周期で計測することで、通常動作では発生しない障害の発生を抑止する手法が知られている(例えば、特許文献3参照)。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2004-38350号公報
【文献】特開2015-114675号公報
【文献】特開2012-194909号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
加速試験の対象である試験対象アプリケーションとともに動作するアプリケーションには、試験対象アプリケーションと連携して動作する連携アプリケーションと、試験対象アプリケーションと連携しない非連携アプリケーションとがある。通常モードで発生しない障害を加速試験に起因して発生させないために、試験対象アプリケーションおよび連携アプリケーションだけでなく、非連携アプリケーションの動作を制御する手法は提案されていない。
【0007】
1つの側面では、本発明は、試験対象アプリケーションと連携する連携アプリケーションだけでなく、試験対象アプリケーションと連携しない非連携アプリケーションの動作を制御することで、障害の発生を抑制しつつ、加速試験を実施することを目的とする。
【課題を解決するための手段】
【0008】
一つの観点によれば、加速試験プログラムは、アプリケーションの動作を加速して加速試験を実施する加速試験プログラムであって、試験対象である試験対象アプリケーションと連携して動作する連携アプリケーションを選定し、アプリケーションの動作を通常モードより加速させる加速モード中の動作の加速度合いを決定し、前記加速度合いに基づいて前記試験対象アプリケーションおよび前記連携アプリケーションの動作を加速中、前記試験対象アプリケーションと連携しない非連携アプリケーションの動作の加速を無効にする
処理をコンピュータに実行させる。
【発明の効果】
【0009】
試験対象アプリケーションと連携する連携アプリケーションだけでなく、試験対象アプリケーションと連携しない非連携アプリケーションの動作を制御することで、障害の発生を抑制しつつ、加速試験を実施することができる。
【図面の簡単な説明】
【0010】
図1】一実施形態における加速試験装置の一例を示すブロック図である。
図2図1の加速試験装置の動作の一例を示すタイミング図である。
図3】別の実施形態における加速試験装置の一例を示すブロック図である。
図4図3の加速試験装置におけるソフトウェアの割り当ての一例を示す説明図である。
図5図4の管理テーブルの一例を示す図である。
図6図3のカーネルの機能を示す機能ブロック図である。
図7図3の加速試験装置による加速試験の動作の一例を示すフロー図である。
図8図7のステップS10の動作の一例を示すフロー図である。
図9図7のステップS20の動作の一例を示すフロー図である。
図10図7のステップS30の動作の一例を示すフロー図である。
図11図7のステップS40の動作の一例を示すフロー図である。
図12図7のステップS50の動作の一例を示すフロー図である。
図13図3の加速試験装置加速試験の動作の一例を示すタイミング図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して、実施形態が説明される。
【0012】
図1は、一実施形態における加速試験装置の一例を示す。図1に示す加速試験装置1は、アプリケーション選定部2、加速モード設定部3、加速試験実施部4および記憶部5をする。例えば、加速試験装置1は、サーバ等の情報処理装置でもよく、加速試験専用の試験装置でもよい。
【0013】
加速試験装置1が情報処理装置の場合、アプリケーション選定部2、加速モード設定部3および加速試験実施部4は、情報処理装置に搭載されるプロセッサが実行する加速試験プログラムにより実現されてもよい。情報処理装置に搭載されるプロセッサは、コンピュータの一例である。加速試験実施部4は、情報処理装置に搭載されるプロセッサに含まれていてもよい。また、アプリケーション選定部2、加速モード設定部3および加速試験実施部4は、情報処理装置または専用の試験装置に搭載されるハードウェアにより実現されてもよく、ハードウェアとソフトウェアとを連携させることで実現されてもよい。
【0014】
例えば、記憶部5には、複数のアプリケーション6a、6b、6c、...が実行可能な状態で格納される。アプリケーション6aは、加速試験の試験対象である試験対象アプリケーションである。アプリケーション6bは、試験対象アプリケーション6aと連携して動作する連携アプリケーションである。アプリケーション6cは、試験対象アプリケーション6aと連携せずに動作する非連携アプリケーションである。以下では、試験対象アプリケーション6a、連携アプリケーション6bおよび非連携アプリケーション6cを区別なく説明する場合、単にアプリケーション6と称される。
【0015】
加速試験装置1は、アプリケーション6の動作を加速する加速試験を実施する機能を有する。アプリケーション選定部2は、複数のアプリケーション6のうち、試験対象アプリケーション6aと連携して動作する連携アプリケーション6bを選定する。例えば、アプリケーション選定部2は、試験対象アプリケーション6aとともに他のアプリケーション6を動作させ、試験対象アプリケーション6aとともにメモリ領域を共有するアプリケーション6を連携アプリケーション6bとして選定する。非連携アプリケーション6cは、試験対象アプリケーション6aおよび連携アプリケーション6bのいずれでもないアプリケーション6であり、試験対象アプリケーション6aとメモリ領域を共有しない。なお、連携アプリケーション6bおよび非連携アプリケーション6cは、それぞれ複数個存在してもよい。
【0016】
加速モード設定部3は、加速試験においてアプリケーション6の動作の通常モードより加速させる加速モードの加速度合いを設定する。例えば、加速モード設定部3は、OSが時刻の更新の契機に使用するタイマー割り込みの間隔を、通常モード中のタイマー割り込みの間隔より短くすることで、加速モードでのアプリケーション6の動作の加速度合いを設定してもよい。
【0017】
なお、加速モード中のタイマー割り込みの間隔は、加速試験のために確保可能な試験時間に応じて設定されてもよい。この場合、タイマー割り込みの間隔は、加速試験のために確保可能な試験時間が短いほど短く設定され、加速試験のために確保可能な試験時間が長いほど長く設定される。
【0018】
加速試験実施部4は、加速試験を実施する試験期間において試験対象アプリケーション6aの動作中、試験対象アプリケーション6aと連携アプリケーション6bとを、加速モード設定部3が設定した加速モードの加速度合いで動作させる。また、加速試験実施部4は、試験対象アプリケーション6aの動作中、非連携アプリケーション6cを加速モードでの加速度合いより遅く動作させる。
【0019】
例えば、加速試験実施部4は、非連携アプリケーション6cを実行するCPU(Central Processing Unit)のCPU使用率を低下させることで、非連携アプリケーション6cの動作の進行を遅くする。なお、加速試験実施部4は、試験対象アプリケーション6aおよび連携アプリケーション6bを実行するCPUのCPU使用率は低下させない。CPUは、アプリケーション6を実行する演算処理部の一例である。
【0020】
加速試験実施部4の制御により、加速試験の実施中で試験対象アプリケーション6aが動作していないとき、連携アプリケーション6bおよび非連携アプリケーション6cは、通常モードで動作する。加速試験の実施中で試験対象アプリケーション6aが動作しているとき、連携アプリケーション6bは、試験対象アプリケーション6aとともに加速モードによる加速度合いで動作する。加速試験の実施中で試験対象アプリケーション6aが動作しているとき、非連携アプリケーション6cは、加速モードによる加速度合いより遅く動作する。
【0021】
したがって、加速試験において、試験対象アプリケーション6aの動作中に動作する全てのアプリケーション6を加速モードで動作させつつ、非連携アプリケーション6cのみを低速で動作させることができる。例えば、加速モード中の非連携アプリケーション6cの動作速度は、通常モードと同等の動作速度に設定される。したがって、非連携アプリケーション6cの動作が加速されることを抑制でき、非連携アプリケーション6cの実行中に通常動作では発生しない障害が発生することを抑制することができる。例えば、通常動作は、加速試験装置1の機能を有する情報処理装置が各種アプリケーションを実行し、所定の機能を有するシステムとして機能するときの動作である。
【0022】
また、加速モード中、連携アプリケーション6bの動作を試験対象アプリケーション6aの動作とともに加速することで、試験対象アプリケーション6aと連携アプリケーション6bとを正常に連携させながら加速試験を実施することができる。したがって、試験対象アプリケーション6aおよび連携アプリケーション6bの実行中に通常動作では発生しない障害が発生することを抑制することができる。このように、加速試験において、試験対象アプリケーション6aおよび連携アプリケーション6bだけでなく、非連携アプリケーション6cの動作を制御することができる。
【0023】
図2は、図1の加速試験装置1の動作の一例を示す。なお、アプリケーション選定部2は、図2に示す試験期間の前に実施される図示しない選定期間に、連携アプリケーション6bを選定済みである。非連携アプリケーション6cは、選定期間に連携アプリケーション6bに選定されなかったアプリケーション6である。
【0024】
試験対象アプリケーション6aの加速試験を実施する試験期間において、加速モード設定部3は、試験対象アプリケーション6aが動作しない期間、動作モードを、動作を加速しない通常モードに設定し、アプリケーション6の動作速度を通常速度に設定する。例えば、加速モード設定部3は、OSが使用するタイマー割り込みの間隔を通常状態に設定する。通常モード中、加速試験実施部4は、加速試験を実施しない。換言すれば、加速試験実施部4は、通常モード中、非連携アプリケーション6cの加速度合いを遅くしない。このため、通常モード中、連携アプリケーション6bおよび非連携アプリケーション6cは、通常状態と同等の速度で動作する。
【0025】
加速モード設定部3は、試験期間において試験対象アプリケーション6aが動作する間、試験モードを加速モードに設定し、各アプリケーション6の動作を加速する。例えば、加速モード設定部3は、OSが使用するタイマー割り込みの間隔を通常状態に比べて短く設定する。
【0026】
加速試験実施部4は、加速モード中、非連携アプリケーション6cの動作速度を、試験対象アプリケーション6aおよび連携アプリケーション6bの加速モードでの動作速度よりも遅くする。すなわち、加速試験実施部4は、加速モード中、非連携アプリケーション6cの加速を無効にする。例えば、加速試験実施部4は、非連携アプリケーション6cを実行するCPUのCPU使用率を通常の使用率(例えば、100%)から低下させることで、非連携アプリケーション6cの動作速度を遅くする。
【0027】
これにより、加速試験装置1は、試験対象アプリケーション6a、連携アプリケーション6bおよび非連携アプリケーション6cの動作を加速させつつ、非連携アプリケーション6cの動作の進行を遅延させることができる。すなわち、加速試験装置1は、各アプリケーション6を加速モードで動作させつつ、非連携アプリケーション6cのみを通常モードと同等の速度で動作させることができる。
【0028】
加速モード設定部3は、試験対象アプリケーション6aの動作が停止した場合、加速試験での動作モードを通常モードに設定し、各アプリケーション6の動作を通常速度に設定する。加速試験実施部4は、試験対象アプリケーション6aが動作を停止した場合、加速試験の実施を停止する。すなわち、加速試験実施部4は、非連携アプリケーション6cの動作速度を、通常状態に設定する。例えば、加速試験実施部4は、非連携アプリケーション6cを実行するCPUのCPU使用率を通常の使用率(例えば、100%)に戻す。
【0029】
以上、この実施形態では、加速試験装置1は、試験対象アプリケーション6aの加速試験を実施する加速モード中に、全てのアプリケーション6の動作を加速し、かつ、非連携アプリケーション6cのみ加速を無効にする。これにより、加速試験装置1は、加速モード中、非連携アプリケーション6cを通常モードと同等の速度で動作させることができる。したがって、加速試験中に、動作が加速された非連携アプリケーション6cの実行により、通常動作では発生しない障害が発生することを抑制することができる。
【0030】
また、連携アプリケーション6bの動作は、試験対象アプリケーション6aの動作とともに加速されるため、試験対象アプリケーション6aと連携アプリケーション6bとを正常に連携させながら加速試験を実施することができる。したがって、加速モード中に、試験対象アプリケーション6aと連携アプリケーション6bとの連携が取れずに、通常動作では発生しない障害が加速試験中に発生することを抑制することができる。この結果、通常動作では発生しない障害が加速試験中に発生することを抑制しつつ、着目する試験対象アプリケーション6aの加速試験を実施することができる。
【0031】
図3は、別の実施形態における加速試験装置の一例を示す。上述した実施形態で使用した要素と同様な要素については、同じ名称を使用し、詳細な説明は省略する。図3に示す加速試験装置100は、例えば、各種アプリケーションを実行可能なサーバ等の情報処理装置である。換言すれば、情報処理装置には、情報処理装置の機能の加速試験を実施する加速試験装置100の機能が付加されている。加速試験装置100は、少なくとも1つのCPU10とメモリ20と記憶装置30とを有する。特に限定されないが、CPU10、メモリ20および記憶装置30は、バスBUSを介して相互に接続される。
【0032】
CPU10は、複数のCPUコア11a、11b、11c、11d、11e、11f、...を有する。以下では、CPUコア11a、11b、11c、11d、11e、11fを区別なく説明する場合、CPUコア11とも称される。なお、加速試験装置100は、CPU10以外のプロセッサを有してもよい。CPUコア11は、アプリケーションを実行する演算処理部の一例である。
【0033】
例えば、メモリ20は、DRAM(Dynamic Random Access Memory)等であり、複数のメモリ領域21a、21b、21c、21d、21e、21f、...が割り当てられている。以下では、メモリ領域21a、21b、21c、21d、21e、21fを区別なく説明する場合、メモリ領域21とも称される。
【0034】
例えば、記憶装置30は、HDD(Hard Disk Drive)またはSSD(Solid State Drive)等である。記憶装置30は、通常モードカーネル31aおよび加速モードカーネル31bを含むOS、アプリケーション監視プログラム32、試験対象アプリケーション33a、連携アプリケーション33bおよび非連携アプリケーション33cを保持する。通常モードカーネル31a、加速モードカーネル31bおよびアプリケーション監視プログラム32は、加速試験プログラムの一例である。
【0035】
以下では、通常モードカーネル31aおよび加速モードカーネル31bを区別なく説明する場合、カーネル31とも称される。また、試験対象アプリケーション33a、連携アプリケーション33bおよび非連携アプリケーション33cを区別なく説明する場合、アプリケーション33とも称される。
【0036】
各カーネル31、アプリケーション監視プログラム32および各アプリケーション33は、メモリ領域21のいずれかに転送され、CPUコア11のいずれかにより実行される。特に限定されないが、OSは、LinuxOSでもよく、通常モードカーネル31aおよび加速モードカーネル31bは、Linuxカーネルでもよい(Linuxは登録商標)。なお、連携アプリケーション33bの数および非連携アプリケーション33cの数は、2以上でもよい。
【0037】
図4は、図3の加速試験装置におけるソフトウェアの割り当ての一例を示す。図4に示す例では、通常モードカーネル31aは、メモリ領域21aに転送され、CPUコア11aにより実行される。加速モードカーネル31bは、メモリ領域21bに転送され、CPUコア11bにより実行される。アプリケーション監視プログラム32は、メモリ領域21cに転送され、CPUコア11cにより実行される。なお、アプリケーション監視プログラム32は、メモリ領域21cに割り当てられる管理テーブルTBLを使用して、アプリケーション33を監視する。
【0038】
試験対象アプリケーション33aは、メモリ領域21dに転送され、CPUコア11dにより実行される。連携アプリケーション33bは、メモリ領域21eに転送され、CPUコア11eにより実行される。非連携アプリケーション33cは、メモリ領域21fに転送され、CPUコア11fにより実行される。
【0039】
図5は、図4の管理テーブルTBLの一例を示す。管理テーブルTBLは、アプリケーションを識別するアプリケーション情報と、アプリケーションで使用する共有メモリに割り当てられる共有メモリアドレスと、試験対象アプリケーション33aと共有メモリを共有するか否かを示すフラグを保持する領域を有する。すなわち、管理テーブルTBLは、共有メモリアドレスとフラグとをアプリケーション33毎に保持する。例えば、共有メモリは、カーネル31が管理するメモリ空間である。共有メモリは、図3のメモリ20のメモリ領域21の少なくともいずれかに割り当てられてもよい。
【0040】
例えば、各アプリケーション33は、共有メモリを利用して、アプリケーション33間(すなわち、プロセス間)で通信を実施可能である。アプリケーション監視プログラム32は、プロセス間通信が共有メモリを介して実施されることを利用して、試験対象アプリケーション33aと連携して動作する連携アプリケーション33bを検出することができる。
【0041】
管理テーブルTBLに格納されるアプリケーション情報は、アプリケーション33を実行するプロセスを識別するプロセスID(Identification)でもよい。アプリケーション33が連携アプリケーション33bであるか非連携アプリケーション33cであるかは、フラグの値により判定される。例えば、試験対象アプリケーション33a以外のアプリケーション33において、フラグ="1"は、連携アプリケーション33bを示し、フラグ="0"は、非連携アプリケーション33cを示す。
【0042】
共有メモリアドレスは、メモリ領域21の先頭アドレスが格納されてもよく、メモリ領域21を示すアドレスの上位の所定数のビットの値が格納されてもよい。フラグは、後述する加速試験の選定期間の前に"0"に初期化される。そして、選定期間において、試験対象アプリケーション33aとメモリ領域21を共有することが検出されたアプリケーション33に対応するフラグは、"1"にセットされる。
【0043】
図6は、図3のカーネル31の機能を示す。カーネル31は、時間管理部311、プロセス管理部312、メモリ管理部313、ファイル管理部314およびデバイス管理部315を有する。時間管理部311は、加速モード設定部311aおよび加速試験実施部311bを有する。プロセス管理部312は、CPU固定部312aおよびCPU解除部312bを有する。メモリ管理部313は、アプリケーション選定部313aおよび図5に示した管理テーブルTBLを有する。
【0044】
加速モード設定部311aは、加速モード中の各アプリケーション33の動作の加速度合いを示す加速係数nを算出する。そして、加速モード設定部311aは、算出した加速係数nに応じて、各アプリケーション33の加速モード中の加速度合いを決定する。
【0045】
加速試験実施部311bは、試験対象アプリケーション33aが動作する加速モード中、加速モード設定部311aにより設定された加速度合いで各アプリケーション33を加速する。また、加速試験実施部311bは、試験対象アプリケーション33aおよび連携アプリケーション33bの動作を加速中、非連携アプリケーション33cの動作の加速を無効にする。
【0046】
例えば、加速試験実施部311bは、非連携アプリケーション33cを実行するCPUコア11のCPU使用率を通常の使用率から低下させることで、非連携アプリケーション6cの動作の加速を無効にする。カーネル31がLinuxカーネルの場合、加速試験実施部311bは、cpulimit機能を使ってCPUコア11の使用率を変更する。例えば、試験対象アプリケーション33aおよび連携アプリケーション33bは、加速モード中に通常のCPU使用率に設定される。特に限定されないが、通常のCPU使用率は、100%でもよく、80%でもよい。
【0047】
CPU固定部312aは、加速試験を実施する試験期間中、試験対象アプリケーション33aおよび連携アプリケーション33bをそれぞれ実行するCPUコア11が切り替わることを抑止する。すなわち、CPU固定部312aは、試験対象アプリケーション33aおよび連携アプリケーション33bを実行するCPUコア11を固定する。CPU解除部312bは、試験期間の終了時に、CPU固定部312aによる設定されたCPUコア11の切り替えの抑止を解除する。すなわち、CPU解除部312bは、CPUコア11の固定を解除する。
【0048】
アプリケーション選定部313aは、試験期間の前の選定期間に、各アプリケーション33による共有メモリのアクセス状況に基づいて、試験対象アプリケーション33a以外のアプリケーション33から連携アプリケーション33bを選定する。ファイル管理部314は、加速試験装置100で扱われるファイルを管理する。デバイス管理部315は、加速試験装置100に搭載されるデバイスを制御し、入出力を管理する。
【0049】
図7は、図3の加速試験装置による加速試験の動作の一例を示す。図7に示す動作は、CPUコア11がカーネル31およびアプリケーション監視プログラム32を実行することで実行される。すなわち、図7は、加速試験プログラムの一例を示し、加速試験プログラムの実行により実現される加速試験方法の一例を示す。CPUコア11は、コンピュータの一例である。
【0050】
まず、ステップS10において、図6の加速モード設定部311aは、加速モード中にアプリケーション33の動作を加速する加速度合いを決定する。ステップS10の例は、図8で説明される。次に、ステップS20において、図6のアプリケーション選定部313aは、試験対象アプリケーション33aと連携する連携アプリケーション33bを選定する。ステップS20の例は、図9で説明される。
【0051】
次に、ステップS30において、図6のCPU固定部312aは、試験対象アプリケーション33aおよび連携アプリケーション33bを実行するCPUコア11の切り替えを抑止するためにCPUコア11を固定する。ステップS30の例は、図10で説明される。
【0052】
次に、ステップS40において、図6の加速試験実施部311bは、試験対象アプリケーション33aが動作する加速モード中に、非連携アプリケーション33cの動作の加速を無効にし、加速試験を実施する。連携アプリケーション33bの動作の加速度合いは、加速モード中、試験対象アプリケーション33aの動作の加速度合いと同じに設定される。ステップS40の例は、図11で説明される。
【0053】
次に、ステップS50において、図6のCPU解除部312bは、ステップS10で固定されたCPUコア11の固定を試験期間の終了時に解除し、図7に示す加速試験を終了する。ステップS50の例は、図12で説明される。
【0054】
図8は、図7のステップS10の動作の一例を示す。図8に示す動作は、加速試験の試験期間の開始前に実施される。まず、ステップS11において、加速モード設定部311aは、例えば、動作を加速しない場合に加速試験に掛かる試験時間T1と加速試験のために確保可能な試験時間T2との比T1/T2から加速係数nを算出する。
【0055】
例えば、加速しない場合の試験時間T1が2400時間、確保可能な試験時間T2が24時間の場合、加速係数nは100になる。加速係数n=100は、試験を加速しない場合に比べて試験時間を1/100にできることを示す。なお、試験時間T1、T2は、加速試験を実施する利用者により、マウスまたはキーボード等の入力装置を介して加速試験装置100に予め入力される。
【0056】
次に、ステップS12において、加速モード設定部311aは、ステップS11で算出した加速係数nに基づいて、加速モード中の動作の進行の加速度合いを決定し、図8に示す動作を終了する。試験時間T1と試験時間T2との比T1/T2から加速係数nを算出し、加速係数nに基づいて動作の加速度合いを決定することで、製品の出荷前などの限られた時間内に、試験時間T1に相当する加速試験を実施することができる。
【0057】
例えば、加速モード設定部311aは、加速係数nに応じて、OSが使用するタイマー割り込みの間隔を通常動作中でのタイマー割り込みの間隔より短く設定する。加速モード中のタイマー割り込みの間隔は、通常動作中のタイマー割り込みの間隔を加速係数nで除することで設定される。例えば、加速係数n=100の場合、加速モード中のタイマー割り込みの間隔は、通常動作中のタイマー割り込みの間隔の1/100に設定される。このときの加速度合いは、通常動作の100倍である。
【0058】
図9は、図7のステップS20の動作の一例を示す。図9に示す動作は、加速試験の試験期間の開始前の選定期間に実施される。まず、ステップS21において、アプリケーション選定部313aは、試験対象アプリケーション33aを含むアプリケーション33の動作が開始されたことに基づいて、連携アプリケーション33bの選定を開始する。アプリケーション選定部313aは、試験対象アプリケーション33aがアクセスする共有メモリを検出し、管理テーブルTBLにアプリケーション情報と共有メモリアドレスとを登録する。
【0059】
次に、ステップS22において、アプリケーション選定部313aは、アプリケーション33が共有メモリにアクセスする毎に、アプリケーション情報と共有メモリアドレスとを管理テーブルTBLに登録する。アプリケーション選定部313aは、登録した共有メモリアドレスが試験対象アプリケーション33aの共有メモリアドレスと重複する場合、管理テーブルTBLのフラグをセットする。管理テーブルTBLにフラグがセットされたアプリケーション33は、以降、連携アプリケーション33bとして扱われる。
【0060】
このように、加速試験前の選定期間において、試験対象アプリケーション33aと同じ共有メモリにアクセスしたアプリケーション33を検出することで、試験対象アプリケーション33aと連携して動作する連携アプリケーション33bを選定することができる。また、試験対象アプリケーション33aと同じ共有メモリにアクセスしたアプリケーション33のフラグを順次セットすることで、連携アプリケーション33bの数にかかわりなく、連携アプリケーション33bを管理テーブルTBLに登録することができる。さらに、後述するように、加速試験実施部311bは、管理テーブルTBLを参照することで、非連携アプリケーション33cを容易に認識することができる。
【0061】
次に、ステップS23において、アプリケーション選定部313aは、試験対象アプリケーション33aが動作中の場合、処理をステップS22に戻し、試験対象アプリケーション33aの動作が終了した場合、処理をステップS24に移行する。ステップS24において、アプリケーション選定部313aは、管理テーブルTBLにフラグがセットされたアプリケーション33を連携アプリケーション33bとして選定し、図9に示す動作を終了する。
【0062】
図10は、図7のステップS30の動作の一例を示す。まず、ステップS31において、CPU固定部312aは、試験対象アプリケーション33aを実行するCPUコア11が切り替わることを抑止する。すなわち、CPU固定部312aは、試験対象アプリケーション33aを実行するCPUコア11を固定する。
【0063】
次に、ステップS32において、CPU固定部312aは、連携アプリケーション33bを実行するCPUコア11が切り替わることを抑止する。すなわち、CPU固定部312aは、連携アプリケーション33bを実行するCPUコア11を固定する。そして、CPU固定部312aは、図10に示す動作を終了する。なお、ステップS31、S32の処理の結果、非連携アプリケーション33cを実行するCPUコア11は、CPUコア11の負荷状況に応じてCPUコア11を切り替え可能な状態に設定される。すなわち、非連携アプリケーション33cを実行するCPUコア11は、切り替えが許可される。
【0064】
CPUコア11を固定することで、試験対象アプリケーション33aおよび連携アプリケーション33bを実行するCPUコア11が、加速モード中にCPU使用率が制限されたCPUコア11に切り替わることを抑止することができる。これにより、試験対象アプリケーション33aおよび連携アプリケーション33bの動作が、加速モード中に加速されなくなる不具合を抑止することができる。
【0065】
また、試験対象アプリケーション33aおよび連携アプリケーション33bを実行するCPUコア11の一方が、CPU使用率が制限されたCPUコア11に切り替わった場合、連携した動作が破綻するおそれがある。連携した動作が継続しない場合、通常動作では発生しない障害が発生するおそれがある。CPUコア11の切り替えを抑止することで、試験対象アプリケーション33aおよび連携アプリケーション33bの連携が破綻することを抑止することができる。この結果、通常動作では発生しない障害を発生させることなく、加速試験を実施することができる。
【0066】
一方、非連携アプリケーション33cを実行するCPUコア11は、切り替えが抑止されていないため、試験期間にCPUコア11が切り替わる可能性がある。しかしながら、切り替わりの前後において、CPUコア11のCPU使用率は、1/nに制限されているため、非連携アプリケーション33cの動作に影響を与えることはない。
【0067】
図11は、図7のステップS40の動作の一例を示す。まず、ステップS41において、加速試験実施部311bは、試験対象アプリケーション33aが動作を開始するのを待つ。加速試験実施部311bは、試験対象アプリケーション33aが動作を開始した場合、処理をステップS42に移行する。
【0068】
ステップS42において、加速試験実施部311bは、管理テーブルTBLを参照して、試験対象アプリケーション33aおよび連携アプリケーション33bを実行するCPUコア11を除く全てのCPUコア11のCPU使用率を1/nに制限する。ここで、nは、図8のステップS11で算出された加速係数nである。これにより、非連携アプリケーション33cを実行するCPUコア11のCPU使用率は、1/nに設定される。なお、加速試験実施部311bは、管理テーブルTBLを参照し、試験対象アプリケーション33a以外でフラグが"0"にリセットされているアプリケーション33を実行するCPUコア11のCPU使用率を1/nに制限してもよい。
【0069】
次に、ステップS43において、加速試験実施部311bは、加速度合いがn倍の加速モードを開始する。加速モードでは、図8のステップS12で設定した加速度合いに応じてアプリケーション33の動作が加速される。例えば、加速試験実施部311bは、OSによるタイマー割り込みの間隔を通常状態に比べて1/nに設定することで、アプリケーション33の動作を100倍に加速する。但し、非連携アプリケーション33cは、ステップS42でCPU使用率が1/nに制限されているため、通常動作と同等の動作速度になる。
【0070】
次に、ステップS44において、加速試験実施部311bは、試験対象アプリケーション33aの動作が終了するのを待つ。加速試験実施部311bは、試験対象アプリケーション33aの動作が終了した場合、処理をステップS45に移行する。ステップS45において、加速試験実施部311bは、非連携アプリケーション33cを実行するCPUコア11のCPU使用率の制限(1/n)を解除し、図11に示す動作を終了する。
【0071】
図12は、図7のステップS50の動作の一例を示す。まず、ステップS51において、CPU解除部312bは、試験対象アプリケーション33aを実行するCPUコア11の切り替えの抑止を解除する。すなわち、CPU解除部312bは、試験対象アプリケーション33aを実行するCPUコア11の固定を解除する。
【0072】
次に、ステップS52において、CPU解除部312bは、連携アプリケーション33bを実行するCPUコア11の切り替えの抑止を解除する。すなわち、CPU解除部312bは、連携アプリケーション33bを実行するCPUコア11の固定を解除する。そして、CPU解除部312bは、図12に示す動作を終了する。
【0073】
図13は、図3の加速試験装置100の加速試験の動作の一例を示す。例えば、試験対象アプリケーション33aは、FC(Fibre Channel)ドライバであり、連携アプリケーション33bは、FCファームウェアであり、非連携アプリケーション33cは、加速試験装置100に接続されるマウスのドライバである。すなわち、図13では、加速試験装置100の機能が付加された情報処理装置に搭載されるFCカードのドライバの加速試験が実施される。なお、試験対象アプリケーション33a、連携アプリケーション33bおよび非連携アプリケーション33cの例は、図13に示す例に限定されない。
【0074】
加速試験は、選定期間と試験期間とを含む。選定期間では、図7のステップS10、S20、S30が実施され、試験期間では、図7のステップS40、S50が実施される。なお、図7のステップS10における加速度合いを決定する処理は、選定期間より前に実施されてもよい。
【0075】
選定期間では、カーネル31は、各アプリケーション33がアクセスする共有メモリを監視し、試験対象アプリケーション33aと連携して動作する連携アプリケーション33bを検出する。選定期間から試験期間に切り替わる前、CPU固定部312aは、CPUコア11の切り替えを抑止することでCPUコア11を固定する。
【0076】
試験期間は、選定期間により連携アプリケーション33bが選定された後に開始される。試験期間では、試験対象アプリケーション33aが動作する期間に動作モードが加速モードに設定され、各アプリケーション33の動作がn倍に加速される。さらに、加速モードでは、非連携アプリケーション33cでは、CPU使用率が1/nに制限されることで、n倍の加速が無効にされる。
【0077】
試験期間において、試験対象アプリケーション33aが動作していない期間、各アプリケーション33は、動作が加速されない通常モードで動作する。これにより、加速試験装置100は試験期間中、非連携アプリケーション33cの動作速度を、通常モードの動作速度と同等にすることができる。試験期間の終了時、CPU解除部312bは、CPUコア11の切り替えの抑止を解除することでCPUコア11の固定を解除する。
【0078】
例えば、FCドライバは、RDP(Read Diagnostics Parameter)機能を有し、加速試験装置100の機能を有する情報処理装置に接続されたFCカードの情報を所定の時間間隔でFCスイッチに送信する。FCドライバは、FCカードの情報をFCカードの情報の送信毎に保持するキューを有する。そして、FCドライバは、送信が完了したFCカードの情報をキューから解放する。例えば、FCカードの情報の送信間隔は1時間であるとし、キューに蓄積可能なFCカードの情報の最大数は1024個であるとする。
【0079】
ここで、FCドライバがキューの解放を妨げる障害を有する場合、1025時間後にキューがオーバフローすることで障害が発生する。加速試験を実施しない場合、キューのオーバフローによる障害を検出するために1025時間(42.7日)が掛かる。これに対して、この実施形態では、例えば、加速係数nを43に設定することで、24時間程度の加速モードの期間により、キューのオーバフローによる障害を検出することが可能となる。
【0080】
加速試験では、FCドライバと連携して動作するFCファームウェアは、加速モード中にFCドライバとともに動作が加速される。このため、FCドライバとFCファームウェアとを正常に連携して加速試験を実施することができる。
【0081】
さらに、加速試験装置100の機能が付加された情報処理装置に、例えば、マウスまたはキーボード等の入力装置が接続される場合、CPUコア11のいずれかは、低速で動作するアプリケーションとしてマウスドライバまたはキーボードドライバを実行する。例えば、低速で動作するドライバ等は、FCドライバと連携しない非連携アプリケーション33cとして動作する。
【0082】
低速で動作するドライバ等は、加速試験により動作が加速された場合、正常に動作しないおそれがある。この実施形態では、非連携アプリケーション33cである低速で動作するドライバ等を実行するCPUコア11は、加速モード中、CPU使用率を1/nに制限する。これにより、加速試験を実行中に、低速で動作するドライバ等を正常に動作させることができる。この結果、加速試験において、FCドライバ、FCドライバと連携するFCファームウェアおよびFCドライバと連携しないマウスドライバ等を正常に動作させることができ、通常動作では発生しない障害が発生することを抑制することができる。
【0083】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。例えば、試験対象アプリケーション33aと連携する連携アプリケーション33bだけでなく、試験対象アプリケーション33aと連携しない非連携アプリケーション33cの動作を制御することで、障害の発生を抑制しつつ、加速試験を実施することができる。
【0084】
さらに、この実施形態では、試験対象アプリケーション33aと同じ共有メモリにアクセスしたアプリケーション33を、試験対象アプリケーション33aと連携して動作する連携アプリケーション33bとして選定することができる。また、試験対象アプリケーション33aと同じ共有メモリにアクセスしたアプリケーション33のフラグを順次セットすることで、連携アプリケーション33bの数にかかわりなく、連携アプリケーション33bを管理テーブルTBLに登録することができる。
【0085】
CPUコア11を固定することで、試験対象アプリケーション33aおよび連携アプリケーション33bを実行するCPUコア11が、加速モード中に、CPU使用率が制限されたCPUコア11に切り替わることを抑止することができる。これにより、試験対象アプリケーション33aおよび連携アプリケーション33bの動作が、加速モード中に加速されなくなる不具合を抑止することができる。
【0086】
加速モード設定部311aは、動作を加速しない場合に加速試験に掛かる試験時間T1と加速試験のために確保可能な試験時間T2との比T1/T2から加速係数nを算出し、加速係数nに基づいて動作の加速度合いを決定する。これにより、製品の出荷前などの限られた時間内に、加速しない場合の試験時間T1に相当する加速試験を実施することができる。
【0087】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【0088】
1 加速試験装置
2 アプリケーション選定部
3 加速モード設定部
4 加速試験実施部
5 記憶部
6a 試験対象アプリケーション
6b 連携アプリケーション
6c 非連携アプリケーション
10 CPU
11a、11b、11c CPUコア
11d、11e、11f CPUコア
20 メモリ
21a、21b、21c メモリ領域
21d、21e、21f メモリ領域
30 記憶装置
31a 通常モードカーネル
31b 加速モードカーネル
32 アプリケーション監視プログラム
33a 試験対象アプリケーション
33b 連携アプリケーション
33c 非連携アプリケーション
100 加速試験装置
311 時間管理部
311a 加速モード設定部
311b 加速試験実施部
312 プロセス管理部
312a CPU固定部
312b CPU解除部
313 メモリ管理部
313a アプリケーション選定部
314 ファイル管理部
315 デバイス管理部
BUS バス
TBL 管理テーブル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13