WO2014118979A1 - 性能モデル検査装置、および、性能モデル検査方法 - Google Patents

性能モデル検査装置、および、性能モデル検査方法 Download PDF

Info

Publication number
WO2014118979A1
WO2014118979A1 PCT/JP2013/052416 JP2013052416W WO2014118979A1 WO 2014118979 A1 WO2014118979 A1 WO 2014118979A1 JP 2013052416 W JP2013052416 W JP 2013052416W WO 2014118979 A1 WO2014118979 A1 WO 2014118979A1
Authority
WO
WIPO (PCT)
Prior art keywords
performance
model
verification
model checking
time information
Prior art date
Application number
PCT/JP2013/052416
Other languages
English (en)
French (fr)
Inventor
浩気 大林
知彦 茂岡
早苗 中尾
岳彦 長野
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2013/052416 priority Critical patent/WO2014118979A1/ja
Publication of WO2014118979A1 publication Critical patent/WO2014118979A1/ja

Links

Images

Classifications

    • 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
    • G06F11/3447Performance evaluation by modeling

Abstract

 性能モデル検査装置は、時刻情報出力命令挿入部と、モデル検査実行部と、反例トレース解析部とを有する。時刻情報出力命令挿入部は、入力された検証モデルソースコードの構成要素のイベントの発生を記述する箇所に、時刻情報出力命令を挿入した時刻情報出力命令済検証モデルソースコードを生成する。次に、モデル検査実行部は、入力された性能検証条件と、時刻情報出力命令挿入済検証モデルソースコードとを用いてモデル検査ツールを実行し、反例トレースを生成する。そして、反例トレース解析部は、反例トレースを解析して検証モデル内の構成要素の稼働率および待ち行列長を算出し、算出結果を基に対象システムのボトルネックを特定し、算出結果およびボトルネック特定情報を出力する。これにより、実機を動作させることなく、モデル検査においてシステムの性能ボトルネックの特定を容易におこなうことができる。

Description

性能モデル検査装置、および、性能モデル検査方法
 本発明は、性能モデル検査装置、および、性能モデル検査方法に係り、特に、実機を動作させることなく、モデル検査においてシステムの性能ボトルネックを容易に特定するのに好適な技術性能モデル検査装置、および、性能モデル検査方法に関する。
 組込みシステムを含むコンピュータシステムの応答速度やスループットなどに関する性能問題の多くは、ボトルネックと呼ばれるシステム内のある特定の一部分が原因であり、ボトルネックを解消することにより大きく改善される。したがって、コンピュータシステムの性能向上には、ボトルネックを特定し、解消する技術が重要となる。しかしながら、ボトルネックの特定については体系的な方法が確立しておらず、専門的な知識や経験が必要であるため、担当できる技術者の制約や掛かる作業時間の長さなどが問題となる。
 専門的な知識や経験を必要とせずにボトルネックの特定を可能とする技術としては、例えば、特許文献1に開示がある。この特許文献1には、測定対象の実行履歴をトレーサにより収集し、それを解析して所定のアルゴリズムで性能指標を計算することによりボトルネックを特定するボトルネック検出システムが記載されている。また、実機を用いない性能検証の手段としては、例えば、特許文献2などに示される待ち行列理論に基づくモデルを用いたシミュレーションによる情報サービスシステムの性能を測定するシステムが知られている。
 また、システム仕様を検証する技術としてモデル検査技術があり、代表的なモデル検査ツールとしては、”SPIN”(例えば、非特許文献1参照)や”UPPAAL”(例えば、非特許文献2参照)などが知られている。一般に、モデル検査では、検査モデルの状態を網羅的に探索することで、与えられた検証条件を満たすか否かを検証する。検証の結果検証条件が満たされなかった場合には、その反例となる状態遷移系列である反例トレースが出力され、検証者はこれを調べることにより問題の原因箇所の特定をおこなう。また、モデル検査の反例トレースからの問題の原因箇所の特定を容易にする技術としては、例えば、特許文献3に開示がある。この特許文献3のシステムでは、複数の反例トレースを集積し、それを解析して最も多くの反例に現れるプロセスや処理を探すことにより問題の原因箇所を特定する。
特開2006-227999号公報 特開平10-261010号公報 特開2010-205066号公報
Gerard J. Holzmann, "The SPIN Model Checker: Primer and Reference Manual", 1 edition, (USA), Addison-Wesley Professional, September 14, 2003 G.Behrmann et.al, "A Tutorial on UPPAAL", In Proceeding of the 4th International School on Formal Methods for the Design of Computer, Communication, and Software Systems(SFM-RT’04), LNCS 3185, (USA), 2004
 上記のように、特許文献1は、測定対象の実行履歴をトレーサにより収集し、それを解析して性能指標を計算するものであるが、特許文献1のような実機を用いた性能検証では、実際にシステムを構築する必要があるため、実施にかかる手間やコストが大きいという問題点がある。特に、パフォーマンス・チューニングのためのボトルネックの特定においては、あるボトルネックを解消することが別の箇所に影響を与え、新たなボトルネックを生むなどの場合がある。そのため、何度も設定を変えて性能検証をおこなう必要があるため、手間やコストがさらに増大する。例えば、ストレージ情報処理装置の開発においては、実際の運用時を想定した高い負荷における性能を検証するために高性能サーバを大量に必要とし、テスト環境構築のためのコストが膨大になるという問題が生じている。さらに、実機を用いた性能検証は、ハードウェアの試作とソフトウェアの実装が完了した開発の下流工程でしか実施できないため、性能問題発見による設計工程への手戻りコストも大きい。
 また、大規模化、複雑化が進行している近年の組込みシステムを含むコンピュータシステムにおいては、複数のシステム構成要素が複雑に協調して動作するため、システムの取りうる状態や状態遷移系列は膨大となり、再現性の低い性能問題が含まれる場合がある。実機による性能検証や特許文献2のなどのシミュレーションによる性能検証の場合、このような性能問題を再現するためには無数のテストパターンに対して何度も検証を実施しなければならず、問題の発見が非常に困難であるという問題点がある。例えば、ストレージ情報処理装置の開発においては、通常の動作に加えてメンテナンス用の機能が実行された場合に発生するスループット低下など、特定の複数の機能が並行動作する状況下で発生する性能問題の発見漏れが問題となっている。
 これに対して、特許文献3は、モデル検査の反例トレースからの問題の原因箇所の特定するものであった。この特許文献3の技術は、機能や動作ロジックに関する問題の原因箇所特定においては有用であるが、性能問題に関しては最も多くの反例トレースに現れるプロセスや処理が必ずしも原因箇所であるとは限らないため、ボトルネックなど性能問題の原因箇所の特定には適さないという問題点がある。
 本発明は、上記問題点を解決するためになされたもので、その目的は、実機を動作させることなく、モデル検査においてシステムの性能ボトルネックを容易に特定する性能モデル検査装置を提供することにある。
 また、本発明の他の目的は、モデル検査による網羅的な検証を実施するため、実機や性能シミュレーションによる性能検証では特定が困難な再現性の低い性能問題の原因となるボトルネックでも必ず発見することができる性能モデル検査装置を提供することにある。
 本発明の性能モデル検査装置は、CPUと記憶装置とを有し、記憶装置に記憶されたプログラムをCPUにより実行させることにより、対象システムの検証モデルのモデル検査に基づく性能検証をおこなう性能モデル検査装置であって、検証モデルは、構成要素の少なくとも一つが、時刻に基づいて動作し、待ち行列を処理する構成要素であり、検証モデルを記述する検証モデルソースコードは、検証モデルの構成要素のイベントの発生を記述する箇所を有し、時刻情報出力命令挿入部と、モデル検査実行部と、反例トレース解析部とを有するものである。
 時刻情報出力命令挿入部は、入力された検証モデルソースコードの構成要素のイベントの発生を記述する箇所に、時刻情報出力命令を挿入した時刻情報出力命令済検証モデルソースコードを生成する。
 次に、モデル検査実行部は、入力された性能検証条件と、時刻情報出力命令挿入済検証モデルソースコードとを用いてモデル検査ツールを実行し、反例トレースを生成する。
 そして、反例トレース解析部は、モデル検査実行部で生成された反例トレースを解析して検証モデル内の構成要素の稼働率および待ち行列長を算出し、算出結果をもとに対象システムのボトルネックを特定し、算出結果およびボトルネック特定情報を出力する。
 本発明によれば、実機を動作させることなく、モデル検査においてシステムの性能ボトルネックを容易に特定する性能モデル検査装置を提供することができる。
 また、モデル検査による網羅的な検証を実施するため、実機や性能シミュレーションによる性能検証では特定が困難な再現性の低い性能問題の原因となるボトルネックでも必ず発見することができる性能モデル検査装置を提供することができる。
本発明の第一の実施形態に係る性能モデル検査装置のハードウェア構成を示すブロック図である。 本発明の第一の実施形態に係る性能モデル検査装置のソフトウェア構成を示すブロック図である。 モデル検査の対象となるネットワークスイッチのプロキシ機能を示した図である。 モデル検査の対象となるネットワークスイッチのプロキシ機能の処理のシーケンス図である。 本発明の第一の実施形態に係る性能モデル検査装置全体の機能と、データフローを示した図である。 本発明の第一の実施形態に係る性能モデル検査装置の処理を示すゼネラルチャートである。 時刻情報出力命令挿入部の機能と、データフローを示した図である。 時刻情報出力命令挿入部の処理を示すフローチャートである。 検証モデルを表現するソースコードにおいて、時刻情報出力命令挿入処理の挿入前と挿入後を対比して示した図である。 反例トレース解析部の機能と、データフローを示した図である。 反例トレース解析処理を示すフローチャートである(その一)。 反例トレースを示した図である。 検証結果レポートを示した図である(その一)。 本発明の第二の実施形態に係る性能モデル検査装置のソフトウェア構成を示すブロック図である。 本発明の第二の実施形態に係る性能モデル検査装置全体の機能と、データフローを示した図である。 本発明の第一の実施形態に係る性能モデル検査装置の処理を示すゼネラルチャートである。 性能モデル検査装置を利用したパフォーマンス・チューニングの手順を示すフローチャートである。 本発明の第三の実施形態に係る性能モデル検査装置全体の機能と、データフローを示した図である。 本発明の第三の実施形態に係る性能モデル検査装置の処理を示すゼネラルチャートである。 反例トレース解析部の機能と、データフローを示した図である。 反例トレース解析部の処理を示すフローチャートである(その二)。 検証結果レポートを示した図である(その二)
 以下、本発明に係る各実施形態を、図1ないし図22を用いて説明する。
  〔実施形態1〕
 以下、本発明に係る第一の実施形態を、図1ないし図13を用いて説明する。
  先ず、図1および図2を用いて本発明の第一の実施形態に係る性能モデル検査装置の構成について説明する。
  図1は、本発明の第一の実施形態に係る性能モデル検査装置のハードウェア構成を示すブロック図である。
  図2は、本発明の第一の実施形態に係る性能モデル検査装置のソフトウェア構成を示すブロック図である。
 図1に示すように性能モデル検査装置11は、例えば、パーソナルコンピュータやサーバや専用ハードウェアなどであり、CPU(Central Processing Unit)1、ROM(Read Only Memory)2、RAM(Random Access Memory)3、HDD(Hard Disk Drive)5、入力装置9、表示装置10、NIC(Network Interface Card)8、CD-ROMドライブ6が、BUS4により接続された形態である。
 CPU1は、コンピュータの主要な部分であって、演算処理および各部を制御する中心であり、HDD5に格納された性能モデル検査プログラム200を、RAM3にロードして実行する。
 ROM2は、起動プログラムであるBIOSなどを記憶する読み出し専用の半導体記憶装置である。
 RAM3は、OS(Operating System)や性能モデル検査プログラム200などの各種プログラムやワークデータ等を記憶する書き換え可能な半導体記憶装置であり、性能モデル検査装置11の主記憶装置になる。
 HDD5は、大容量の記憶装置であり、OSや性能モデル検査プログラムなどの各種プログラム、プログラムに使用されるデータなどを格納する補助記憶装置である。
 CD-ROMドライブ6は、CD-ROM(Compact Disc Read Only Memory)7に記憶されたプログラムやデータを読み取る装置である。
 NIC8は、ネットワークとの通信を制御する装置である。
 入力装置9は、各種操作指示をおこなうキーボードやマウスなどのポインティングデバイスである。
 表示装置10は、各種情報を表示するLCD(Liquid Crystal Display)などの表示のための装置である。
 なお、各種プログラムやデータ等を格納するのは、HDD5に限らずSSDなどの半導体記憶装置なども用いることができ、記憶媒体としてはCD-ROMに限らずDVDやその他の磁気、光学、半導体などを用いた媒体を用いることができる。また、NIC8を介してネットワークからプログラムやデータをダウンロードしてHDD5やRAM3に記憶してもよい。なお、プログラムやデータは、特定のOS上で動作するか、OSを必要としないか、特定のOSやアプリケーション群を構成するファイルの一部であるかは問わない。
 次に、図2を用いて本発明の一実施形態に係る性能モデル検査装置のソフトウェア構成について説明する。
 性能モデル検査装置のソフトウェア構成としては、アプリケーションソフトウェアとして性能モデル検査プログラム200と、ユーティリティ・ライブラリプログラム220、OS210よりなる。
 OS210は、ハードウェアとソフトウェアの仲立ちとなり、ユーザに対してのインタフェースを提供する基本プログラムであり、ユーティリティ・ライブラリプログラム220は、OSの機能をアプリケーションソフトウェアに隠蔽し、アプリケーションソフトウェアに様々な機能を提供するプログラムである。
 性能モデル検査プログラム200は、性能モデル検査装置11のアプリケーションソフトウェアであり、時刻情報出力命令挿入モジュール201、モデル検査実行モジュール202、反例トレース解析モジュール203よりなる。
 時刻情報出力命令挿入モジュール201は、検証モデルに対して、時刻情報を出力する命令を挿入するモジュールである。
 モデル検査実行モジュール202は、与えられた性能検査条件の下で、モデル検査を実行するモジュールである。
 反例トレース解析モジュール203は、モデル検査実行の結果、出力される反例トレースを解析して、結果のレポートを出力するモジュールである。
 なお、これらのモジュールの各処理については、後に詳説する。
 先ず、図3および図4を用いて本実施形態のモデル検査の対象について説明する。
  図3は、モデル検査の対象となるネットワークスイッチのプロキシ機能を示した図である。
  図4は、モデル検査の対象となるネットワークスイッチのプロキシ機能の処理のシーケンス図である。
 ネットワークスイッチのプロキシ機能の構成要素としては、図3に示されるように、RECEIVER101、PROXY102、SENDER103があり、これらは並行に動作する。ネットワークスイッチがメッセージを受信すると、図4に示されるように、RECEIVER、PROXY、SENDERの順に処理要求の送信と処理の実行がおこなわれる。プロキシ機能の構成要素が処理実行中であるときに、処理要求110が到着した場合、処理要求は待ち行列に並び、FIFO(First In First Out)方式で順次実行される。図3では、RECEIVER101に、処理要求110の待ちが2個、PROXY102の待ちが3個、SENDER103の待ちが1個あることを示している。そして、ネットワークスイッチがメッセージを受信してからSENDERが処理を完了するまで時間を検証対象の性能とする。
 次に、図5ないし図13を用いて本発明の第一の実施形態に係る性能モデル検査装置の機能と、その処理について説明する。
  図5は、本発明の第一の実施形態に係る性能モデル検査装置全体の機能と、データフローを示した図である。
  図6は、本発明の第一の実施形態に係る性能モデル検査装置の処理を示すゼネラルチャートである。
  図7は、時刻情報出力命令挿入部の機能と、データフローを示した図である。
  図8は、時刻情報出力命令挿入部の処理を示すフローチャートである。
  図9は、検証モデルを表現するソースコードにおいて、時刻情報出力命令挿入処理の挿入前と挿入後を対比して示した図である。
  図10は、反例トレース解析部の機能と、データフローを示した図である。
  図11は、反例トレース解析処理を示すフローチャートである(その一)。
  図12は、反例トレースを示した図である。
  図13は、検証結果レポートを示した図である(その一)。
 本実施形態では、モデル検査における検証対象の一例として、上記で説明したネットワークスイッチのプロキシ機能の性能検証をする場合について説明する。
 本実施形態の性能モデル検査装置は、図1に示したハードウェア構成で、HDD5に格納された性能モデル検査プログラムが、RAM3にロードされて、CPU1がプログラムを解釈実行することより、その機能が実行される。
 性能モデル検査装置11は、図5に示されるように、時刻情報出力命令挿入部23と、モデル検査実行部25と、反例トレース解析部27よりなる。
 時刻情報出力命令挿入部23は、ボトルネックを特定するための反例トレース26の解析を可能にするためにモデルに時刻情報出力命令を挿入する部分である。
 モデル検査実行部25は、モデル検査を実行する部分である。
 反例トレース解析部27は、モデル検査実行時に出力される反例トレース26を解析して、モデル検査の対象となっているモデルのボトルネックを特定する。
 なお、性能モデル検査装置11の中では、当該処理の一時的なデータとして、時刻情報出力命令挿入部23が時刻情報出力命令挿入済検証モデルソースコード24を生成し、モデル検査実行部25が反例トレース26を生成し、RAM3およびHDD5に一時的に格納されるが、性能モデル検査装置11の永続的な構成要素ではない。また、ここでは、各機能について、CPU1がプログラムを実行することにより実現される例を示したが、ハードウェアとして実現されてもよい。
 性能モデル検査装置11への入力として、検証モデルソースコード21と性能検証条件式23がある。これらの入力はNIC8や入力装置9やCDROM7やHDD5などからRAM3にロードされるデータである。検証モデルソースコード21は、性能検証とボトルネック特定をおこなう対象となるモデル検査ツールで検証可能なモデルを記述したソースコードである。検証モデルには、検証対象とするシステムを構成する複数の要素が含まれ、各構成要素は互いに処理の要求や処理結果の返却などにより協調して動作する。本実施形態では、図3に示したRECEIVER101、PROXY102、SENDER103がこれに該当する。
 モデル検査ツールとしては、例えば、一般的に使用されているものとしては、“SPIN”や“UPPAAL”があるが、その他のモデル検査ツールでもよい。性能検証条件式23は、検証をおこなう応答時間やスループットなど性能要件であり、モデル検査ツールで用いられる検証式として利用可能な式である。例えば、本実施形態の検証モデルの各々の構成要素のRECEIVER101、PROXY102、SENDER103が、パケットを100ms以内に処理することなどの条件を記述した式である。
 性能モデル検査装置11の出力としては、検証結果レポート28がある。検証結果レポート28は、反例トレース解析部27での反例トレース26の解析によって得られる各システム構成要素の最大待ち行列長や稼働率と、それらにより特定されるボトルネックの情報であり、RAM3において生成された後、NIC8や表示装置10やHDD5に出力されるデータである。
 時刻情報出力命令挿入部23は、入力された検証モデルソースコード21に含まれる、各システム構成要素に対する処理要求イベント、各システム構成要素の処理開始イベント、各システム構成要素の処理終了イベントの発生を記述する箇所を特定し、その記述箇所にイベントの種類と発生時刻を出力する命令を挿入することによって、時刻情報出力命令挿入済検証モデルソースコード24を生成する。
 モデル検査実行部25は、入力された時刻情報出力命令挿入済検証モデルソースコード24と性能検証条件式22を用いて、モデル検査ツールを実行することにより、性能検証条件式22が満たされない場合の反例トレース26を生成する。
 反例トレース解析部27は、モデル検査実行部25の生成する反例トレース26を解析することにより、各システム構成要素の待ち行列長や稼働率を算出し、算出した値からシステムのボトルネックを特定し、結果を検証結果レポート28として生成し、表示装置10などに出力する。
 次に、図6を用いて性能モデル検査装置11の処理の手順を説明する。
 先ず、性能検証およびボトルネック特定をおこなうためにユーザが用意した検証モデルソースコード21を性能モデル検査装置11に入力する(S01)。
 次に、モデル検査実行部25に対して、性能検証条件式22を入力する(S02)。
 次に、時刻情報出力命令挿入部23が、入力された検証モデルソースコード21に含まれる各システム構成要素に対する処理要求イベント、各システム構成要素の処理開始イベント、各システム構成要素の処理終了イベントの発生を記述する箇所を特定し、その記述箇所にイベントの種類と発生時刻を出力する命令を挿入する(S03)。
 次に、時刻情報出力命令挿入処理にエラーがあれば終了し、エラーがなければ時刻情報出力命令挿入済検証モデルソースコード24を生成して、ステップS04に進む(S04)。
 時刻情報出力命令挿入処理にエラーがないとき、モデル検査実行部25がモデル検査ツールを使用し、時刻情報出力命令挿入済検証モデルソースコード24とユーザが用意した性能検証条件式22を入力して、モデル検査を実行する(S05)。
 次に、モデル検査にエラーがあれば終了し、なければS07に進む(S06)。
 モデル検査にエラーがないとき、モデル検査実行の結果、性能検証条件式22が満たされていればモデル検査結果を出力し、終了し、満たされていない場合、S07に進む(S07)。このとき、モデル検査ツールにより反例トレース26が生成される。
 性能検証条件式22が満たされていないとき、反例トレース解析部27が反例トレース26を解析して各システム構成要素の最大待ち行列長や稼働率を算出し、システムのボトルネックを特定し、結果を検証結果レポート28として生成し、表示装置10に出力する(S08)。
 次に、図7ないし図9を用いて、時刻情報出力命令挿入処理の詳細について説明する。
 時刻情報出力命令挿入部23は、図7に示されるように、イベント検索部31と、命令挿入部32よりなる。
 イベント検索部31は、検証モデルソースコード21を解析してモデル内の各システム構成要素に対する処理要求イベント、各システム構成要素の処理開始イベント、各システム構成要素の処理終了イベントを検索する部分である。
 命令挿入部32は、イベント検索部31の検索結果に基づいて検証モデルソースコード21内のイベント発生箇所にイベントの種類と発生時刻を出力する命令を挿入し、時刻情報出力命令挿入済検証モデルソースコード24を生成する部分である。
 次に、図8を用いて時刻情報出力命令挿入について説明する。
 先ず、イベント検索部31が検証モデルソースコード21を解析してモデル内の各システム構成要素に対する処理要求イベント、各システム構成要素の処理開始イベント、各システム構成要素の処理終了イベントの記述箇所を検索する(S11)。
 この結果、イベント検索処理にエラーが発生すれば終了し、エラーがなければ次に進む(S12)。
 イベント検索処理にエラーがなければ、命令挿入部32がイベント検索部31の検索結果に基づいて検証モデル21内のイベント発生の記述箇所にイベントの種類と発生時刻を出力する命令を挿入し、時刻情報出力命令挿入済検証モデルソースコード24を生成する(S13)。
 ここで、本実施形態の検証モデルにおける時刻情報出力命令挿入処理の挿入前と挿入後のソースコードを対比して示する図9のようになる。
 図9(a)の検証モデルソースコード21におけるRECEIVER処理要求41、RECEIVER処理開始42、RECEIVER処理終了43が、各々ステップS11で特定されるシステム構成要素に対する処理要求イベント、システム構成要素の処理開始イベント、システム構成要素の処理終了イベントに該当し、図9(b)の時刻情報出力命令挿入済検証モデルソースコード24のRECEIVER処理要求時刻出力命令41a、RECEIVER処理開始時刻出力命令42a、RECEIVER処理終了時刻出力命令43aが挿入された時刻情報出力命令に該当する。PROXY、SENDERについても同様である。
 次に、図10ないし図13を用いて反例トレース解析処理の詳細について説明する。
 反例トレース解析部27は、図10に示されるように、稼働率・待ち行列長算出部51と、結果出力部53からなる。
 稼働率・待ち行列長算出部51は、反例トレース26を解析してモデル内の各システム構成要素の稼働率および待ち行列長の最大値、平均値を算出し、それらの情報を稼働率・待ち行列長データ52として生成する部分である。
 結果出力部53は、稼働率・待ち行列長データ52に基づいてボトルネックを特定し、その結果を前記各システム構成要素の稼働率および待ち行列長の最大値、平均値とともに検証結果レポート28として出力する部分である。
 次に、図11を用い反例トレース解析処理について説明する。
 先ず、稼働率・待ち行列長算出部51が反例トレース26を解析してモデル内の各システム構成要素の稼働率および待ち行列長の最大値、平均値を算出し、それらの情報を稼働率・待ち行列長データ52として生成する(S21)。
 このとき算出処理にエラーが発生すれば終了し、エラーがなければ、ステップS23に進む(S22)。
 次に、算出処理にエラーがなければ、結果出力部53が稼働率・待ち行列長データ52に基づいてボトルネックを特定し、その結果を前記各システム構成要素の稼働率および待ち行列長の最大値、平均値とともに検証結果レポート28として出力する(S23)。
 ここで、ステップS21において解析する反例トレース26の一例を示すと図12のようになる。ステップS02で挿入された時刻情報出力命令により、モデル内の各システム構成要素に対する処理要求イベント、各システム構成要素の処理開始イベント、各システム構成要素の処理終了イベントの発生時刻が出力されている。図中のCLOCKは、時刻、COMPONENTは、システム構成要素の識別名(RECEIVER,PROXY,SENDER)、EVENTは、イベントの種類(START,REQEUST,END)を表している。出力の形式は、必ずしもここに示したものである必要はなく、各イベントの発生時刻が抽出可能な形式であればよい。
 ここで、各システム構成要素の稼働率および待ち行列長の最大値、平均値の算出方法とボトルネックの特定方法について説明する。あるシステム構成要素に関して、i番目の処理開始イベントと処理終了イベントの発生時刻をそれぞれSiとEiとする。Ei-Siのすべてのiに対する総和と反例トレースにおける開始から終了までの時間Tの比Σ(Ei-Si)/Tにより、このシステム構成要素の稼働率を算出する。ここで、Σは、すべてのiについて動かしたものの総和を意味する。
 さらに、開始時刻t=0における待ち行列長L(0)を0とし、システム構成要素に対する処理要求イベントが発生するごとに待ち行列長に1を加算し、システム構成要素の処理開始イベントが開始するごとに待ち行列長から1を減算することにより、各時刻tにおける待ち行列長L(t)を求め、これらの最大値max(L(t))と時間平均ΣL(t)/Tを求めることによりこのシステム構成要素の待ち行列長の最大値、平均値を算出する。ここで、Σは、すべてのtについて動かしたものの総和を意味する。
 これをモデル内のすべてのシステム構成要素に対して実施することにより、各システム構成要素の稼働率および待ち行列長の最大値、平均値を算出する。そして、稼働率および待ち行列長の最大値、平均値のいずれかが規定の閾値より高いシステム構成要素をボトルネックと特定する。本実施形態では、稼働率および待ち行列長の最大値、平均値の閾値を、それぞれ70%,3,1とするが、ボトルネックの特定基準として妥当な値であれば他の値でもよい。
 ここで、ステップS23において表示装置10に出力される検証結果レポート28の表示の一例を示すと、図13に示されるようになる。
 検証結果レポート28の解析結果表示レポート61には、モデル内の各システム構成要素(RECEIVER、PROXY、SENDER)の稼働率および待ち行列長の最大値、平均値が表示され、ボトルネック候補表示部62には検証結果レポート28に含まれるボトルネックと特定されたシステム構成要素が表示される。
 ここで、構成要素のPROXYが、稼働率90%であり、最大待ち行列長が、4、平均待ち行列長が、2.3であるため、この検査モデルにおけるボトルネックであると判断されて表示されている。なお、本実施形態では、稼働率および待ち行列長の最大値、平均値の閾値の全てが閾値を超えたものを、ボトルネックと判断したが、その内の任意の二つ、あるいは、いずれか一つが閾値を超えたものを、ボトルネックと判断するようにしてもよい。
 このように、本実施形態によれば、実機によるテストを実施することなく、検証対象とするコンピュータシステムのボトルネックを容易に特定することができる。さらに、モデル検査による網羅的な検証を実施するため、実機や性能シミュレーションによる性能検証では特定が困難な再現性の低い性能問題の原因となるボトルネックでも必ず発見することができる効果がある。
  〔実施形態2〕
 以下、本発明に係る第二の実施形態を、図14ないし図17を用いて説明する。
 第一の実施形態では、ネットワークスイッチのプロキシ機能を対象として、モデル検査をおこない、出力される反例トレースを解析することにより、ボトルネックを、対象システムのボトルネック特定する例を説明した。
 本実施形態では、第一の実施形態を前提として、検証結果に応じて検証モデルの性能パラメータを自動的に変更することにより、検証対象システムのパフォーマンス・チューニングを効率化する性能モデル検査装置の例を説明する。本実施形態では、第一の実施形態と異なる所を中心に説明する。
 先ず、図14を用いて本発明の第二の実施形態に係る性能モデル検査装置の構成について説明する。
  図14は、本発明の第二の実施形態に係る性能モデル検査装置のソフトウェア構成を示すブロック図である。
 本実施形態の性能モデル検査装置11aのハードウェア構成は、第一の実施形態の図1で示した性能モデル検査装置11のものと同様である。
 本実施形態のソフトウェア構成の性能モデル検査プログラム200aは、第一の実施形態の図2で示した性能モデル検査プログラム200に対して、性能パラメタ設定モジュール204と、性能パラメタ変更モジュール205が付け加わった構成である。
 性能パラメタ設定モジュール204は、性能パラメタを設定するモジュールであり、性能パラメタ変更モジュール205は、性能パラメタを変更するモジュールである。
 ここで、性能パラメタとは、システム構成の内で、性能に影響するパラメタであり、本実施形態のネットワークスイッチのパラメタ機能を対象とした例では、ネットワークスイッチのマイクロコントローラの動作周波数、バッファ容量、ポート数、スイッチング能力(スイッチが単位時間あたりに処理することができるフレーム数)、スイッチング容量(スイッチが単位時間あたりに処理することができるデータ量)などがこれに該当する。
 次に、図15ないし図17を用いて本発明の第二の実施形態に係る性能モデル検査装置の機能と、その処理について説明する。
  図15は、本発明の第二の実施形態に係る性能モデル検査装置全体の機能と、データフローを示した図である。
  図16は、本発明の第一の実施形態に係る性能モデル検査装置の処理を示すゼネラルチャートである。
  図17は、性能モデル検査装置を利用したパフォーマンス・チューニングの手順を示すフローチャートである。
 本実施形態の性能モデル検査装置11aと、図5に示された第一の実施形態の性能モデル検査装置11との違いは、モデル内で設定可能なプロセッサの処理速度や個数など、検証対象となるシステムの性能に関する値の情報である性能パラメータ71が入力される点と、性能パラメータ71を検証モデルソースコード21に設定する性能パラメータ設定部72を備える点と、検証結果レポート28を参照し、性能パラメータ71内の特定されたボトルネックの解消に関係のある部分を変更し、出力する性能パラメータ変更部73を備える点であり、他の構成要素は同等である。
 次に、図16を用いて性能モデル検査装置11aの処理の手順を説明する。
 図6に示した第一の実施形態の性能モデル検査装置11の処理との違いは、ステップS31が追加されている点である。ステップS31においては、性能パラメータ設定部72が性能パラメータ71を検証モデルソースコード21に設定する。
 次に、図17を用いて性能モデル検査装置を利用したパフォーマンス・チューニングの手順について説明する。
 先ず、性能パラメータ71の初期値を性能モデル検査装置11aに入力する(S41)。
 次に、性能モデル検査プログラムを開始し、検証を実行する(S42)。このステップS42が、図16の処理に該当する。
 次に、検証の結果、性能検証条件が満たされていた場合は終了し、満たされていなかった場合は、S44に進む(S43)。
 性能検証条件が満たされていなかった場合、検証結果の解析によりボトルネックが特定されなかった場合は終了し、ボトルネックが特定された場合は、S45に進む(S44)。
 ボトルネックが特定された場合は、性能パラメータ変更部73が検証結果レポート28を参照し、性能パラメータ71内の特定されたボトルネックの解消に効果のある部分を変更する(S45)。
 次に、変更された性能パラメータ71を再び性能モデル検査装置11aに入力し、S42に戻る(S46)。
 上記手順が終了したとき、検証モデルソースコード21の記述する検証モデルに関して、性能検証条件が満たされているか、ボトルネックが存在しないかのいずれかとなる。
 このように、本実施形態によれば、ボトルネックの特定のみでなく、ボトルネックの解消も容易におこなうことができ、検証対象とするコンピュータシステムのパフォーマンス・チューニングを効率的に実施できる効果がある。
  〔実施形態3〕
 以下、本発明に係る第三の実施形態を、図18ないし図22を用いて説明する。
 本実施形態でも、第一の実施形態を前提として、本実施形態では、反例トレースを複数集積して解析利用する性能モデル検査装置の例を説明する。
 本実施形態の性能モデル検査装置11bのハードウェア構成は、第一の実施形態の図1で示した性能モデル検査装置11のものと同様である。
 以下、図18ないし図22を用いて本発明の第三の実施形態に係る性能モデル検査装置の機能と、その処理について説明する。
  図18は、本発明の第三の実施形態に係る性能モデル検査装置全体の機能と、データフローを示した図である。
  図19は、本発明の第三の実施形態に係る性能モデル検査装置の処理を示すゼネラルチャートである。
  図20は、反例トレース解析部の機能と、データフローを示した図である。
  図21は、反例トレース解析部の処理を示すフローチャートである(その二)。
  図22は、検証結果レポートを示した図である(その二)
 本実施形態の性能モデル検査装置12bと図5に示された第一の実施形態1における性能モデル検査装置11aの違いは、モデル検査実行部25aが複数の反例トレース81を生成する点と、反例トレース解析部27aが複数の反例トレース81を入力して、統計処理をおこない、統計処理された検証結果レポートを出力する点であり、他の構成要素は同等である。
 次に、図19を用いて本発明の第三の実施形態に係る性能モデル検査装置の構成について説明する。
 図6に示した第一の実施形態の性能モデル検査装置11の処理との違いは、ステップS51が追加されている点と、ステップS07がステップS07aに変更されている点と、ステップS08がステップS08aに変更されている点である。
 ステップS07aにおいて、性能検証条件が満たされていない場合、ステップS51に進み、規定の数だけ反例トレースの集積をおこなう。規定の数は、100などの固定値としてもよいし、ユーザが入力により任意に指定できるようにしてもよい。
 次に、図20ないし図22を用いて反例トレース解析処理の詳細について説明する。
 本実施形態の反例トレース解析部27aは、図10に示された第一の実施形態の反例トレース解析部27と統計処理部91を備える点で異なっている。
 反例トレース解析処理の手順として、先ず、稼働率・待ち行列長算出部51がモデル検査ツールによって生成されたすべての反例トレース81に対して、稼働率と待ち行列長の最大値、平均値の算出を行い、算出された情報を稼働率・待ち行列長データ52として生成する(S21)。算出方法は、第一の実施形態で説明したる算出方法と同様である。このとき算出処理にエラーが発生すれば、ステップS22で終了し、すべての反例トレース81に対して算出処理にエラーがなければ、ステップS61に進む(S22)。
 算出処理にエラーがなければ、統計処理部91が稼働率・待ち行列長データ52に基づいて各システム構成要素に対し、稼働率、待ち行列長の最大値、平均値のすべての反例トレース81に関する最大値、最小値、平均値、分散などの統計量の算出をおこなう(S61)。
 次に、結果出力部53がS61で得られた統計処理の結果に基づいてボトルネックを特定し、統計処理の結果とともに検証結果レポート28として出力する(S23a)。
 ここで、ステップS23aにおいて表示装置10に出力される検証結果レポート28aの表示の一例を示すと、図22に示されるようになる。
 検証結果レポート28の解析結果表示レポート61には、モデル内の各システム構成要素(RECEIVER、PROXY、SENDER)の稼働率および待ち行列長の最大値、平均値のすべての反例トレース81に関する統計情報が表示され、ボトルネック候補表示部62には検証結果レポート28に含まれるボトルネックと特定されたシステム構成要素(PROXY)が表示される。
 このように、本実施形態によれば、複数の異なるトレースで現れる性能問題が存在する場合でも、一度の検証作業で発見でき、ボトルネックの特定を効率化する効果がある。また、複数のボトルネックが特定された場合、平均値や頻度分布を比較することによりボトルネック解消の優先度の高さを判断でき、ボトルネックの解消を効率化する効果がある。
1…CPU
2…ROM
3…RAM
4…BUS
5…HDD
6…CDROMドライブ
7…CDROM
8…NIC
9…入力装置
10…表示装置
11…性能モデル検査装置
21…検証モデルソースコード
22…性能検証条件式
23…時刻情報出力命令挿入部
24…時刻情報出力命令挿入済検証モデルソースコード
25…モデル検査実行部
26…反例トレース
27…反例トレース解析部
28…検証結果レポート
31…イベント検索部
32…命令挿入部
41…RECEIVER処理要求
42…RECEIVER処理開始
43…RECEIVER処理終了
41a…RECEIVER処理要求時刻出力命令
42a…RECEIVER処理開始時刻出力命令
43a…RECEIVER処理時刻出力命令
51…稼働率・待ち行列長算出部
52…稼働率・待ち行列長データ
53…結果出力部
61…解析結果表示部
62…ボトルネック候補表示部
71…性能パラメータ
72…性能パラメータ設定部
73…性能パラメータ変更部
81…反例トレース
91…統計処理部

Claims (6)

  1.  CPUと記憶装置とを有し、前記記憶装置に記憶されたプログラムを前記CPUにより実行させることにより、対象システムの検証モデルのモデル検査に基づく性能検証をおこなう性能モデル検査装置であって、
     前記検証モデルは、構成要素の少なくとも一つが、時刻に基づいて動作し、待ち行列を処理する構成要素であり、前記検証モデルを記述する検証モデルソースコードは、検証モデルの構成要素のイベントの発生を記述する箇所を有し
     入力された検証モデルソースコードの構成要素のイベントの発生を記述する箇所に、時刻情報出力命令を挿入した時刻情報出力命令済検証モデルソースコードを生成する時刻情報出力命令挿入部と、
     入力された前記性能検証条件と、前記時刻情報出力命令挿入済検証モデルソースコードとを用いてモデル検査ツールを実行し、反例トレースを生成するモデル検査実行部と、
     前記モデル検査実行部で生成された前記反例トレースを解析して前記検証モデル内の構成要素の稼働率および待ち行列長を算出し、算出結果をもとに前記対象システムのボトルネックを特定し、算出結果およびボトルネック特定情報を出力する反例トレース解析部とを有することを特徴とする性能モデル検査装置。
  2.  さらに、検証モデルの構成要素の性能に関する値の情報である性能パラメータを取得して前記検証モデルに設定する性能パラメータ設定部と、
     前記性能パラメータのうち、前記反例トレース解析部が特定したボトルネックの解消に関係のある部分を変更する性能パラメータ変更部とを有することを特徴とする請求項1記載の性能モデル検査装置。
  3.  前記反例トレース解析部は、複数の反例トレースを集積して解析をおこない、結果の統計情報に出力することを特徴とする性能モデル検査装置。
  4.  CPUと記憶装置とを有し、前記記憶装置に記憶されたプログラムを前記CPUにより実行させることにより、対象システムの検証モデルのモデル検査に基づく性能検証をおこなう性能モデル検査装置の性能モデル検査方法であって、
     前記検証モデルは、構成要素の少なくとも一つが、時刻に基づいて動作し、待ち行列を処理する構成要素であり、前記検証モデルを記述する検証モデルソースコードは、検証モデルの構成要素のイベントの発生を記述する箇所を有し
     入力された検証モデルソースコードの構成要素のイベントの発生を記述する箇所に、時刻情報出力命令を挿入した時刻情報出力命令済検証モデルソースコードを生成する時刻情報出力命令挿入処理ステップと、
     入力された前記性能検証条件と、前記時刻情報出力命令挿入済検証モデルソースコードとを用いてモデル検査ツールを実行し、反例トレースを生成するモデル検査実行処理ステップと、
     前記モデル検査実行部で生成された前記反例トレースを解析して前記検証モデル内の構成要素の稼働率および待ち行列長を算出し、算出結果をもとに前記対象システムのボトルネックを特定し、算出結果およびボトルネック特定情報を出力する反例トレース解析処理ステップとを有することを特徴とする性能モデル検査方法。
  5.  さらに、検証モデルの構成要素の性能に関する値の情報である性能パラメータを取得して前記検証モデルに設定する性能パラメータ設定処理ステップと、
     前記性能パラメータのうち、前記反例トレース解析部が特定したボトルネックの解消に関係のある部分を変更する性能パラメータ変更処理ステップとを有することを特徴とする請求項4記載の性能モデル検査方法。
  6.  前記反例トレース解析処理ステップは、複数の反例トレースを集積して解析をおこない、結果の統計情報に出力する処理を含むことを特徴とする請求項4記載の性能モデル検査方法。
PCT/JP2013/052416 2013-02-01 2013-02-01 性能モデル検査装置、および、性能モデル検査方法 WO2014118979A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/052416 WO2014118979A1 (ja) 2013-02-01 2013-02-01 性能モデル検査装置、および、性能モデル検査方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/052416 WO2014118979A1 (ja) 2013-02-01 2013-02-01 性能モデル検査装置、および、性能モデル検査方法

Publications (1)

Publication Number Publication Date
WO2014118979A1 true WO2014118979A1 (ja) 2014-08-07

Family

ID=51261721

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/052416 WO2014118979A1 (ja) 2013-02-01 2013-02-01 性能モデル検査装置、および、性能モデル検査方法

Country Status (1)

Country Link
WO (1) WO2014118979A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923143A (zh) * 2020-07-07 2022-01-11 中移(苏州)软件技术有限公司 一种云网络的调整方法、装置以及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173847A (ja) * 1991-12-19 1993-07-13 Fujitsu Ltd プログラム実行時間測定方法
JP2004318474A (ja) * 2003-04-16 2004-11-11 Fujitsu Ltd システムの使用資源を調整する装置および方法
WO2008114323A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Microelectronics Limited プロセッサ・システム最適化支援装置、および支援方法
JP2010128513A (ja) * 2008-11-25 2010-06-10 Toshiba Corp モデル検査装置及びモデル検査方法
JP2010157105A (ja) * 2008-12-26 2010-07-15 Toshiba Corp モデル検査用プログラム作成装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173847A (ja) * 1991-12-19 1993-07-13 Fujitsu Ltd プログラム実行時間測定方法
JP2004318474A (ja) * 2003-04-16 2004-11-11 Fujitsu Ltd システムの使用資源を調整する装置および方法
WO2008114323A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Microelectronics Limited プロセッサ・システム最適化支援装置、および支援方法
JP2010128513A (ja) * 2008-11-25 2010-06-10 Toshiba Corp モデル検査装置及びモデル検査方法
JP2010157105A (ja) * 2008-12-26 2010-07-15 Toshiba Corp モデル検査用プログラム作成装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923143A (zh) * 2020-07-07 2022-01-11 中移(苏州)软件技术有限公司 一种云网络的调整方法、装置以及存储介质
CN113923143B (zh) * 2020-07-07 2023-04-07 中移(苏州)软件技术有限公司 一种云网络的调整方法、装置以及存储介质

Similar Documents

Publication Publication Date Title
JP6607565B2 (ja) セーフティクリティカルソフトウェアのための統合された自動テストケース生成
CN106294120B (zh) 测试代码的方法、设备和计算机程序产品
US20040148152A1 (en) System performance prediction mechanism and method based on software component performance measurements
US10002216B2 (en) Systems and methods for dynamic regression test generation using coverage-based clustering
US8990739B2 (en) Model-based retiming with functional equivalence constraints
US20170235663A1 (en) Service demand based performance prediction using a single workload
CN102541723A (zh) 用于软件测试的自动化测试装置
US20130304442A1 (en) Scheduling discrete event simulation
US20160077860A1 (en) Virtual machine placement determination device, virtual machine placement determination method, and virtual machine placement determination program
US20150331787A1 (en) Software verification
WO2016018352A1 (en) Platform configuration selection based on a degraded makespan
CN111367786B (zh) 一种符号执行方法、电子设备以及存储介质
Sharma et al. Performance evaluation of real-time systems
US9081605B2 (en) Conflicting sub-process identification method, apparatus and computer program
Willnecker et al. Optimization of deployment topologies for distributed enterprise applications
WO2014188638A1 (ja) 共有リスクグループ管理システム、共有リスクグループ管理方法および共有リスクグループ管理プログラム
WO2014118979A1 (ja) 性能モデル検査装置、および、性能モデル検査方法
CN115668895A (zh) 云服务系统的资源配置确定方法及装置
US8249848B2 (en) Verifying a processor design using a processor simulation model
JP5463226B2 (ja) ソースコード検査方法およびソースコード検査装置
CN111651341B (zh) 一种通用处理器的性能评估方法
JP5875607B2 (ja) 性能モデル検査装置、方法およびプログラム
JP2006277083A (ja) シミュレーション装置、およびシミュレーション方法、並びにコンピュータ・プログラム
Saidi et al. End-to-end performance forecasting: finding bottlenecks before they happen
JP4918868B2 (ja) 入力値選定プログラム、入力値選定方法および入力値選定装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13874044

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13874044

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP