JP7136085B2 - 情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JP7136085B2
JP7136085B2 JP2019509876A JP2019509876A JP7136085B2 JP 7136085 B2 JP7136085 B2 JP 7136085B2 JP 2019509876 A JP2019509876 A JP 2019509876A JP 2019509876 A JP2019509876 A JP 2019509876A JP 7136085 B2 JP7136085 B2 JP 7136085B2
Authority
JP
Japan
Prior art keywords
system configuration
test
node
simulation
information processing
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
JP2019509876A
Other languages
English (en)
Other versions
JPWO2018181293A1 (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
Publication of JPWO2018181293A1 publication Critical patent/JPWO2018181293A1/ja
Application granted granted Critical
Publication of JP7136085B2 publication Critical patent/JP7136085B2/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/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)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、要件を満たすシステムの構成を高速かつ正確に算出する方法に関する。
仮想化技術の普及に伴い、システムの構成を柔軟に設計、変更することが可能になっている。さらに、ハードウェアアクセラレータ等の高速化技術も仮想化技術と組み合わせて使われるようになってきている。例えば、NFV(Network Function Virtualization)の領域においては、Intel DPDK(Data Plane Development Kit)、SR-IOV(Single Root I/O Virtualization)、VxLAN(Virtual eXtensible Local Area Network)アクセラレータなどの高速化技術が存在する。また、システムのコンフィグレーション(例えば、システムに割当てるリソース量、仮想マシンの数、および、アクセラレーションの使用の有無)を最適化し、CAPEX(Capital Expenditure:投資コスト)を削減することが求められている。
既存技術として、待ち行列やペトリネットなどのシミュレーション技術を用いることで、あるコンフィグレーションのシステム構成の動作や性能を計算することが可能である。また、非特許文献1においては、可能性のあるコンフィグレーション(SR-IOVの使用/未使用)の性能テストを実行し、得られた結果から、顧客の要件を満たす最適なコンフィグレーションを算出することを可能にしている。
また、特許文献1には、トランザクションベースのパフォーマンスモデルの自動的な妥当性検査および較正を行う方法が記載されている。特許文献1に記載の方法は、複数の装置を含むインフラストラクチャのモデルを生成し、生成されたモデルを用いてシミュレーションを実行し、シミュレーションからパフォーマンスデータを識別し、シミュレーションされたパフォーマンスデータと、インフラストラクチャを監視する管理アプリケーションによって提供される測定されたパフォーマンスデータとの比較に少なくとも部分的に基づいて、誤差を計算し、誤差が閾値以内である場合にモデルを妥当であるとすることを含む。
特許文献2には、複数種類の業務が稼働しているシステムの運用管理システムが記載されている。特許文献2に記載の運用管理システムは、システムのアクセスログを収集して業務パターンを抽出し、システム構成からハードウェア構成情報を抽出し、抽出した業務パターンおよびハードウェア構成情報から性能予測シミュレーションによって応答時間とスループットおよび各構成のリソース消費量を算出し、算出した応答時間とスループットから要求性能を満足していることを判定し、予測性能が要求性能を満足しない場合は、判定ポリシにより構成変更の対象を特定し、性能予測シミュレーションにより再計算を繰り返し、要求性能を満足する最適な構成を提案構成として出力装置に提示する。
特許文献3には、システム構成の見積り時に精度の高い性能評価を行い、性能要件および価格要件を満たす構成を提案する方法が記載されている。特許文献3に記載の方法は、あるシステム構成における応答時間を性能シミュレータによるシミュレーションの実行によって算出し、当該システム構成のハードウェアおよびソフトウェアの合計価格を算出し、算出された結果をグラフに表示し、要件を満たす構成を提案対象の構成として処理することを含む。
特開2006-048703号公報 特開2005-099973号公報 特開2002-183416号公報
Vincenzo Riccobene(ビンセンゾ・リコビーン)、外4名、"Automated generation of VNF deployment rules using infrastructure affinity characterization(インフラストラクチャ・アフィニティ・キャラクタリゼイションを用いたVNF開発ルールの自動生成)"、[online]、2016年6月、Conference Paper: IEEE NetSoft 2016、[平成28年9月27日検索]、インターネット〈URL:https://www.researchgate.net/profile/George_Xilouris/publication/303903530_Automated_Generation_of_VNF_Deployment_Rules_Using_Infrastructure_Affinity_Characterization/links/575c0c3008aed88462130354.pdf?origin=publication_detail〉
しかしながら、上述した特許文献に記載された技術のように、シミュレーション結果に基づく性能評価は、高速な算出が可能であるが、テストに基づく手法に比べ、精度が低くなるという問題点があった。また、非特許文献1に記載の技術においては、全ての可能性のあるコンフィグレーションのテストが必要であり、テストに膨大な時間がかかるという問題点があった。
本発明の目的は、最適なシステム構成を高速かつ高精度に算出することにある。
本発明の各側面では、上述した課題を解決するために、それぞれ以下の構成を採用する。
第一の側面は、情報処理装置に関する。
第一の側面に係る情報処理装置は、
異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得するシミュレーション実行手段と、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得するテスト実行制御手段と、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する補正手段と、を有する。
第二の側面は、少なくとも1つのコンピュータにより実行される情報処理方法に関する。
第二の側面に係る情報処理方法は、
情報処理装置が、
異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得し、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得し、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する、ことを含む。
なお、本発明の他の側面としては、上記第二の側面の方法を少なくとも1つのコンピュータに実行させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
このコンピュータプログラムは、コンピュータにより実行されたとき、コンピュータに、情報処理装置上で、その情報処理方法を実施させるコンピュータプログラムコードを含む。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障のない範囲で変更することができる。
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
上記各側面によれば、最適なシステム構成を高速かつ高精度に算出する情報処理装置、情報処理方法およびプログラムを提供することができる。
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
本発明の実施の形態に係る情報処理装置の論理的な構成を示す機能ブロック図である。 本実施形態の情報処理装置を実現するコンピュータの構成の一例を示す図である。 本実施形態の処理対象とするシステムの機能コンポーネントの例とこれらの接続関係を示す。 本実施形態の処理対象となる複数のシステム構成の構成例を示す図である。 本実施形態の情報処理装置の動作の一例を示すフローチャートである。 本実施形態の処理対象のシステム構成の一例を示す機能ブロック図である。 本実施形態の処理対象のシステム構成の各リソースのコストの例を示す図である。 本実施形態の処理対象のシステムの要件の例を示す。 本実施形態の情報処理装置のシミュレーション実行部によるシミュレーション結果の例を示す。 本実施形態の情報処理システムの処理対象の各システム構成のコストを示す図である。 本実施形態において、初回のテスト結果の一例を示す図である。 本実施形態のシステム構成グラフの一例を示す図である。 本実施形態の情報処理システムの動作の一例を示すフローチャートである。 本実施形態の情報処理システム1の補正処理の詳細手順の一例を示すフローチャートである。 本実施形態において、補正処理により補正されたシミュレーション結果に基づき構築されたシステム構成グラフを示す図である。図15(a)が、初回の補正処理後、図15(b)が2回目の補正処理後、図15(c)が3回目の補正処理後のシステム構成グラフを示す。 本実施形態において、テスト実行後のテスト結果と、補正処理によるシミュレーション結果の補正前の値と補正後の値と、フラグについて、補正前の状態を示す図である。 本実施形態において、端点ノード探索後のフラグの状態を説明するための図である。 本実施形態において、初回の補正処理により算出された補正値を示す図である。 本実施形態において、初回の補正処理によるシミュレーション結果の補正前の値と補正後の値と、フラグの状態を説明するための図である。 本実施形態において、2回目の補正処理により算出された補正値を示す図である。 本実施形態において、2回目の補正処理によるシミュレーション結果の補正前の値と補正後の値と、フラグの状態を説明するための図である。 本実施形態において、2回目の補正処理後のシミュレーション結果とテスト結果の差を示す図である。 本実施形態の情報処理システムの動作の一例を示すフローチャートである。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
図1は、本発明の実施の形態に係る情報処理装置100の構成を論理的に示す機能ブロック図である。
なお、各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
情報処理装置100は、シミュレーション実行部102と、テスト実行制御部104と、補正部106と、を備える。
シミュレーション実行部102は、異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得する。
テスト実行制御部104は、複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置120に出力し、当該テスト実行装置120での動作テストのテスト結果を取得する。
補正部106は、テスト済みのシステム構成のテスト結果とシミュレーション結果の差を用いて、少なくとも一つのテスト未実施のシステム構成のシミュレーション結果を補正する。
本明細書において、「取得」とは、自装置が他の装置や記憶媒体に格納されているデータまたは情報を取りに行くこと(能動的な取得)、たとえば、他の装置にリクエストまたは問い合わせして受信すること、他の装置や記憶媒体にアクセスして読み出すこと等、および、自装置に他の装置から出力されるデータまたは情報を入力すること(受動的な取得)、たとえば、配信(または、送信、プッシュ通知等)されるデータまたは情報を受信すること等、の少なくともいずれか一方を含む。また、受信したデータまたは情報の中から選択して取得すること、または、配信されたデータまたは情報を選択して受信することも含む。
テスト実行装置120は、テスト対象の実機または実機と同じシステム構成を有するサーバ装置とすることができる。テスト実行装置120は、情報処理装置100からのテスト実行指示としてシステム構成を示すデータを受信して、データを受信したシステム構成のシステムやソフトウェアが要件通りに動作するかを、実機を用いて調べる。具体的には、テスト実行装置120は、テスト実行制御部104から指定されたシステム構成のコンフィグレーション(システムで利用する仮想マシン数や割り当てるリソース数)に従って仮想マシンやリソースを設定して、実機上に対象のシステムを実現するソフトウェア(プログラムおよびデータ)をデプロイし、動作させてテストを行い、実機の各種性能を計測してテスト結果として出力する。あるいは、異なるスペックを有する実機が混在する環境下では、テスト実行装置120は、テスト実行制御部104から指定されたシステム構成に従い、コンフィグレーションの設定に加え、実機自体を切り替えて動作テストを行う。
本実施形態において、シミュレーション結果やテスト結果は、システム構成毎にスループットやレイテンシ等の性能指標を示す情報で取得されるが、これに限定されない。
本発明において、テスト対象のシステムは、複数の種別の機能コンポーネントからなり、機能コンポーネント毎にコンフィグレーションが存在する。例えば、WEBサーバ、アプリケーションサーバ、データベースサーバの3つの機能コンポーネントからなるWEB3層モデルの場合、機能コンポーネントごとに仮想マシン(VM:Virtual Machine)の数をいくつにするか、割り当てるリソースをどの程度にするか、などのコンフィグレーションが存在し、それぞれ個別に設定できる。
本明細書において、システム構成は、システムを構成する機能コンポーネント毎に、仮想マシンの数、および仮想マシンに割当てるリソース量の少なくともいずれか一つを含むコンフィグレーションを示すデータで定義されるものとする。システム構成の具体例については後述する。
また、情報処理装置100は、記憶装置110にアクセス可能に接続される。記憶装置110は、たとえば、ハードディスク、SSD(Solid State Drive)、またはメモリカードなどであり、情報処理装置100に含まれてもよいし、外部装置であってもよい。
記憶装置110は、シミュレーション実行部102によるシミュレーション結果を格納するシミュレーションデータベース112と、テスト実行装置120によるテスト結果を格納するテストデータベース114と、を含む。
情報処理装置100は、テスト実行装置120と接続される。各装置間は、有線および無線の少なくともいずれか一方で接続することができる。接続手段も特に限定されるものではなく、様々な形態が考えられる。
図2は、本実施形態の情報処理装置100を実現するコンピュータ80の構成の一例を示す図である。なお、テスト実行装置120も同様なコンピュータ80によって構成される。後述する本発明の他の実施形態の各装置も同様にコンピュータ80によって構成される。
本実施形態のコンピュータ80は、少なくとも1つのCPU(Central Processing Unit)82、メモリ84、メモリ84にロードされた図1の構成要素を実現するプログラム90、そのプログラム90を格納するストレージ85、I/O(Input/Output)86、およびネットワーク接続用インタフェース(通信I/F87)を備える。
CPU82、メモリ84、ストレージ85、I/O86、通信I/F87は、バス89を介して互いに接続される。ただし、CPU82などを互いに接続する方法は、バス接続に限定されない。
メモリ84は、RAM(Random Access Memory)やROM(Read Only Memory)などのメモリである。ストレージ85は、ハードディスク、SSD(Solid State Drive)、またはメモリカードなどの記憶装置である。また、ストレージ85は、RAMやROMなどのメモリであってもよい。
I/O86は、コンピュータ80と他の入出力装置間のデータおよび制御信号の入出力制御を行う。他の入出力装置とは、たとえば、コンピュータ80に接続されるキーボード、タッチパネル、マウス、およびマイクロフォン等の入力装置(不図示)と、ディスプレイ、プリンタ、およびスピーカ等の出力装置(不図示)と、これらの入出力装置とコンピュータ80のインタフェースとを含む。さらに、I/O86は、他の記録媒体の読み取りまたは書き込み装置(不図示)とのデータの入出力制御を行ってもよい。
通信I/F87は、コンピュータ80と外部の装置との通信を行うためのネットワーク接続用インタフェースである。通信I/F87は、有線回線と接続するためのネットワークインタフェースでもよいし、無線回線と接続するためのネットワークインタフェースでもよい。例えば、情報処理装置100を実現するコンピュータ80は、通信I/F87を介してテスト実行装置120を実現するコンピュータと接続される。
CPU82がプログラム90を読み出して実行することにより情報処理装置100全体が制御される。
図1の本実施形態の情報処理装置100の各構成要素は、図2のコンピュータ80のハードウェアとソフトウェアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下説明する各実施形態の情報処理装置を示す機能ブロック図は、ハードウェア単位の構成ではなく、論理的な機能単位のブロックを示している。
図1の情報処理装置100の各構成要素について、以下詳細に説明する。
シミュレーション実行部102は、システム構成毎に定義されたシミュレーションモデルを用いて、システム全体の挙動をシミュレートする。
シミュレーションモデルは、例えば、待ち行列モデルなどを用いることで、システム全体の性能をシミュレーションすることができる。しかし、本発明では、シミュレーションの方法に関しては限定しない。シミュレーション実行部102は、実行したシミュレーションの結果をシステム構成毎にシミュレーションデータベース112へ格納する。
コンフィグレーションは、機能コンポーネント毎に、割り当てるリソース(CPU(Central Processing Unit)、メモリ、ディスク(ハードディスクやSDD等のストレージ))、仮想マシンの数、およびアクセラレータの利用有無等の少なくともいずれか一つを示す情報を含む。
図3に、本実施形態の情報処理装置100の処理対象とするシステムの機能コンポーネントの例とこれらの接続関係を示す。本実施形態における処理対象のシステム10は、3種類のネットワーク機能(ファイアウォール12(図中、Firewallと示す)、NAT(Network Address Translation)14、ルータ16(図中、Routerと示す))を有し、それぞれ仮想マシン上に実装されるものとする。
また、説明を簡単にするため、同一機能コンポーネントに割当てるリソース量は同じとし、各機能コンポーネントの前段に1つのロードバランサ(不図示)を配備するものとする。
図4は、本実施形態の処理対象となる複数のシステム構成の構成例を示す図である。
本図では、コンフィグレーションは、システム構成毎に、識別情報(ID:Identifier)と、各機能コンポーネントの仮想マシンの数(図中、「VM」と示す)と、各機能コンポーネントに割り当てられるリソース数(図中、「Res」と示す)とを示しているが、これに限定されない。本図では、説明の簡略化のため省略してあり、他の構成(例えば、アクセラレータの利用有無等)を定義することもできる。
本実施形態では、機能コンポーネントに割当てるリソースはS(Small)、M(Medium)、L(Large)の3種類とし、仮想マシンの最大数は機能コンポーネント毎に4VMとする。
図4の例では、ID1のシステム構成は、全ての機能コンポーネントのVMの数が1かつ割当てられるリソースもSである。
また、図4には、説明の簡略化のため、6種類のシステム構成のみを示している。例えば、3つの機能コンポーネントと3つのロードハランサを含むシステムの場合、コンフィグレーションの取り得る数の組合せは、ロードバランサのコンフィグレーションの取り得る数は3(リソース数)で、それ以外は4(仮想マシン数)×3(リソース数)=12となり、その掛け合わせで計算され、46656種類となる。
テスト実行制御部104は、選択されたシステム構成を示すデータをテスト実行装置120に出力し、当該システム構成を実現するソフトウェア(プログラムおよびデータ)をテスト実行装置120にデプロイし、動作テストを実行させ、テスト実行装置120からテスト結果を取得してテストデータベース114に格納する。
本実施形態では、テスト対象となるシステム構成の選択方法を限定しない。後述する実施形態でテスト対象のシステム構成の選択方法について詳細に説明する。
補正部106は、テスト実行済みの2つのシステム構成のテスト結果とシミュレーション結果を用いて、補正対象のテスト未実施の少なくとも一つのシステム構成のシミュレーション結果を補正する。
本実施形態では、補正処理の詳細および、補正対象となるシステム構成の選択方法を限定しない。後述する実施形態で補正処理の詳細および、補正対象となるシステム構成の選択方法について詳細に説明する。
図2のコンピュータ80のCPU82が、ストレージ85に記憶されるプログラム90をメモリ84に読み出して実行することにより、図1の情報処理装置100の各ユニットの各機能を実現することができる。
本実施形態のコンピュータプログラムは、情報処理装置100を実現させるためのコンピュータ80に、異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得する手順、複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置での動作のテストの結果を取得する手順、テスト済みのシステム構成のテスト結果とシミュレーション結果の差を用いて、少なくとも一つのテスト未実施のシステム構成のシミュレーション結果を補正する手順、を実行させるように記述されている。
本実施形態のコンピュータプログラム90は、コンピュータ80で読み取り可能な記録媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラム90は、記録媒体からコンピュータ80のメモリ84にロードされてもよいし、ネットワークを通じてコンピュータ80にダウンロードされ、メモリ84にロードされてもよい。
コンピュータプログラム90を記録する記録媒体は、非一時的な有形のコンピュータ80が使用可能な媒体を含み、その媒体に、コンピュータ80が読み取り可能なプログラムコードが埋め込まれる。コンピュータプログラム90が、コンピュータ80上で実行されたとき、コンピュータ80に、情報処理装置100を実現する以下の情報処理方法を実行させる。
このように構成された本実施形態の情報処理装置100の情報処理方法について、以下説明する。
図5は、本実施形態の情報処理装置100の動作の一例を示すフローチャートである。
本発明の実施の形態に係る情報処理方法は、情報処理装置100の情報処理方法であり、情報処理装置100を実現するコンピュータ80により実行される情報処理方法である。
本実施形態の情報処理方法は、情報処理装置100が、異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得し(ステップS101)、複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し(ステップS103)、当該テスト実行装置での動作のテストの結果を取得し(ステップS105)、テスト済みのシステム構成のテスト結果とシミュレーション結果の差を用いて、少なくとも一つのテスト未実施のシステム構成のシミュレーション結果を補正する(ステップS107)、ことを含む。
本実施形態の情報処理装置100において、シミュレーション実行部102が、考えられうるコンフィグレーションの組み合わせの全てのシステム構成についてシミュレーションを実行する。シミュレーションは実機テストに比較して容易に高速に行うことが可能である。しかし、シミュレーションの結果は実機テストに比較して精度が低い。
そこで、本実施形態では、補正部106が、シミュレーション結果を、テスト実行済みのシステム構成のシミュレーション結果とテスト結果の差を用いて補正する。
このとき、テスト実行制御部104は、複数のシステム構成のうち全てのシステム構成についてテストを実行するのではなく、選択された一部のシステム構成についてのみテストを実行すればよい。
以上説明したように、本実施形態によれば、多数のコンフィグレーションの組み合わせが考えられるシステム構成のうち一部についてのみテストを実行するのでテストにかかる時間を短縮でき、負荷を低減できるとともに、シミュレーション結果に比較して精度が高いテスト結果を反映して補正されたシミュレーション結果を用いてシステム構成を評価できる。そのため、本実施形態によれば、高速かつ高精度に最適なシステム構成を算出することができるという効果を奏する。
(第1の実施の形態)
以下、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
図6は、本実施形態の情報処理システム1のシステム構成の一例を示す機能ブロック図である。
本実施形態の情報処理システム1では、補正処理を行う際、各システム構成(ノード)のコンフィグレーションに基づき構築されるシステム構成グラフを用いて、最適システム構成候補を選択し、候補のテスト結果に基づいて、候補と構成上の関連のあるノードについて補正処理を行う構成を有する点で、上記実施形態と相違する。
本実施形態の情報処理システム1は、図1の情報処理装置100を実現する管理ノード200と、図1のテスト実行装置120を実現するサーバ装置220と、を備える。
管理ノード200は、図1の情報処理装置100と同様なシミュレーション実行部102と、テスト実行制御部104と、補正部106と、シミュレーションデータベース112と、テストデータベース114と、を有する。
テスト実行制御部104は、性能値がシステムの要件を満たすシステム構成を特定し、特定されたシステム構成のコストに基づいて、コストが最小となるシステム構成を最適なシステム構成の候補として選択する。
そして、サーバ装置220上で選択された最適システム構成候補の動作テストを実行する。
そして、補正部106が、最適システム構成候補のテスト結果とシステム構成グラフを用いて、候補と構成上の関連性のあるノードを探索し、それらのノードに候補のテスト結果を用いて補正処理を行うことで、シミュレーション結果の精度を向上させる。この構成により、複数のシステム構成のうち、コストが最小となり、かつ要件を満たす性能を有する最適なシステム構成を高精度に高速に算出することができることとなる。
ここで、システム構成のコストとは、例えば、リソース量で示すことができる。
図7は、各リソースのコストの例を示す図である。
例えば、図4のID1のシステム構成は、6つのVMからなり、全てのVMのリソースがSであるため、ID1のシステム構成のコストは1×6となる。
図8は、本実施形態の処理対象のシステムの要件の例を示す。スループットが250Mbpsで、End-to-End(ファイアウォール12からルータ16まで)のレイテンシが100msである。本実施形態の情報処理システム1の目的は、この要件を満たすシステム構成を算出することである。
情報処理装置100は、最適システム構成候補のテスト結果とシミュレーション結果の性能値の差が所定値未満の場合、そのシステム構成を最適システム構成として出力する出力部202をさらに有する。また、補正部106は、シミュレーション結果とテスト結果の性能値の差が所定値以上の場合、選択されたシステム構成について補正処理を行う。
ここで、所定値は、例えば、10%とする。
本実施形態では、具体的には、各機能コンポーネントのコンフィグレーション、仮想マシンの数、および、仮想マシンに割当てるリソース量を求め、最適システム構成の情報として出力する。
最適システム構成の情報の出力方法は、特に限定されず、表示装置に表示してもよいし、プリンタ等に印字出力してもよいし、データファイルとして出力し、記憶装置110に記憶してもよい。
つまり、本実施形態では、最適システム構成候補のシステム構成のシミュレーション結果の精度が良ければ(シミュレーション結果とテスト結果の差が所定値未満の場合)、そのまま候補を最適システム構成として出力する。一方、最適システム構成候補のシステム構成のシミュレーション結果の精度が悪いと想定される場合(シミュレーション結果とテスト結果の差が所定値以上の場合)、最適システム構成候補と構成上の関連性のある少なくとも一つの他のシステム構成についてもシミュレーション結果の補正処理を行うことでシミュレーション結果の精度を上げることができる。その結果、候補以外のシステム構成も含む複数のシステム構成の中から最適システム構成となりうるものを、信頼性の高いシミュレーション結果を用いて見つけることができることとなる。
図9は、シミュレーション実行部102によるシミュレーション結果の例を示す。ここでは、図4の6つのシステム構成のシミュレーション結果を示している。例えば、ID1のシステム構成は、全ての機能コンポーネントのVMの数が1かつ割当てられるリソースもSである場合を示し、シミュレーション結果が100Mbpsのスループット、レイテンシが130msであることを示している。本実施形態のシミュレーション実行部102により実行されるシステム構成のシミュレーションの最大数は46656であるが、説明簡易化のため、ここでは、この6つのシステム構成が処理対象となる全てのシステム構成と仮定する。
ここで、図9のシミュレーション結果において、要件を満たすシステム構成は、ID4、ID5、ID6の3つである。
また、図4の各システム構成のコストは図10に示される。要件を満たす3つのシステム構成の中でコストが最小であるシステム構成は、ID4である。
テスト実行制御部104は、このID4のシステム構成を最適システム構成候補として選択する。なお、この例では、コスト最小のシステム構成は一つであるが、実際には複数の最適システム構成候補が選択される。そして、テスト実行制御部104は、選択した少なくとも一つの最適システム構成候補をサーバ装置220上にデプロイし、動作テストを実施する。そして、テスト実行制御部104は、ID4のテスト結果をテストデータベース114に記憶する。
このテストの結果を図11に示す。ここでは、ID4のシミュレーション結果がスループット250Mbps、およびレイテンシ90msに対して、テスト結果がスループット200Mbps、およびレイテンシ120msとなり、誤差はそれぞれ25%および25%となり、シミュレーション結果Sとテスト結果T(実際の値)が大きく乖離していることがわかる。ここで、誤差は、以下の式(1)により算出される。
誤差(%)=|S-T|/T×100 ・・・式(1)
このように、シミュレーション結果とテスト結果(実際の値)の誤差は、他のシステム構成にも存在すると考えられ、本実施形態では、他のシステム構成についてはテストを実行せずに、補正部106が、このテスト実行済みのシステム構成のテスト結果を用いて他のシステム構成のシミュレーション結果の補正処理を行う。このとき、補正部106は、テスト結果を反映させる他のシステム構成を、システム構成グラフを用いて選択する。このように、あるシステム構成のテスト結果を、テストを実行していない他のシステム構成のシミュレーション結果に反映させることで、効率的に補正を行うことが可能となる。システム構成グラフは、後述するように、システム構成のコンフィグレーションが1制御単位だけ異なるノードが隣接する。システム構成グラフを用いると、あるノードのシステム構成とコンフィグレーションが1制御単位だけ異なる、つまり、構成や性能が似ている、または、ノード間の距離が所定、つまり、構成や性能が所定の距離離れている、システム構成の他のノードを選択することができる。
以下、システム構成グラフについて説明する。
図12は、図9のシミュレーション結果から構築したシステム構成グラフの一例を示す。
図中、円で示されるノードは、1つのシステム構成を指し、円内の番号が図9の各システム構成のIDを示している。
システム構成グラフは、有向グラフである。グラフ上では、隣接するノードは、システム構成のコンフィグレーションのいずれか1つのみ異なる。例えば、ID1のノードとID2のノードは、あるコンフィグレーション(図9の例では、NATのコンフィグレーション)のVM数が1つだけ異なるだけで、それ以外のコンフィグレーションは同一となる。
ここで、ある2つのシステム構成間で、コンフィグレーションが1つ異なるとは、システム構成の機能コンポーネントのいずれかのコンフィグレーションの1つが制御単位だけ異なることを指す。制御単位は、例えば、仮想マシンの数やCPU数であれば1であり、メモリやディスク等はシステムが動作する基盤によって異なる場合もあり、本発明では限定しない。2つのシステム構成のシミュレーション結果を比較し、結果が高い方が子ノードとなり、この結果の差を有向エッジの重み(距離)として定義する。
シミュレーション結果は、例えば、スループットの値などであり、この場合、2つのシステム構成のシミュレーション結果のスループットの差が有向エッジの重みとなる。しかしながら、結果の高低の定義は、本発明では限定せず、また、有向エッジの重みの付け方も他の方法を用いてもよい。
また、図12の例では、2つの性能指標を用いてシステム構成グラフを構築しているが、これに限定されず、少なくとも一つの性能指標を用いて構築してもよい。複数の性能指標がある場合(ここでは、スループットとレイテンシ)、2つの隣接するノードのエッジの向きが同一にならない場合があるが、その場合、性能指標毎にシステム構成グラフを定義すればよい。この例では、全ての同一になるため、1つのグラフで表現しているものとする。
補正部106は、ノードAのシミュレーション結果とテスト結果の差とノードBのシミュレーション結果とテスト結果の差、つまり、2つのノードのシミュレーション誤差をノードAとノードBの間のテスト未実施の中間ノードのシミュレーション結果に反映する。その際、ノードAからノードBへのパスに含まれる有向エッジの重みを補正値計算に考慮する。
以下、補正処理について説明する。
例えば、ノードAとノードBの間にノードCがあり、ノードA、B、Cのシミュレーション値がそれぞれS、S、S(S<S<S)とする。エッジAC(ノードAからCへの有向エッジ)の重みはWAC=S-S、エッジCBの重みはWBC=S-Sとなる。ノードA、Bのテスト結果をT、Tとすると、補正部106は、ノードCのシミュレーション結果SをノードA、Bの結果と重み情報を用いて補正し、補正後のシミュレーション結果S’とする。エッジの重みに対して線形に誤差を按分する場合、補正式は、下式のようになる。
Figure 0007136085000001
補正部106は、さらに、補正されたノードに対し、そのノードを起点として、再度前述の補正アルゴリズムを実行する。具体的には、補正部106は、補正されたシステム構成をテスト済みのシステム構成とみなし、補正されたシミュレーション結果を用いて、補正処理を繰り返す。ここでは、補正されたノードをノードAとすると、上記式(2)において、起点ノードAのシミュレーション結果Sに補正前のシミュレーション結果を用い、テスト結果Tに補正されたシミュレーション結果S’を用いる。
例えば、前述のノードCに対して、ノードDとノードEがエッジEDとエッジDCで接続されている場合で、ノードEがテスト実行済みの場合、ノードDのシミュレーション結果を補正することが可能となる。これは、補正されたノードCをテストが実行されたノードとみなすことで、補正処理をより広範囲に伝播させることができるようになる。
このように、探索処理において、システム構成グラフ上で、一のシステム構成に対応するノードを起点とした有向パスにおいて、テストが実行済みのシステム構成に対応する他のノードを探索する。そして、見つかった他のノードと、起点のノードを両端とする有向パスが、2つのノード以外の少なくとも一つの中間ノードを含み、当該中間ノードを補正対象として補正処理を行う。
また、探索処理において、過去にテスト実行されたノードが存在せず、システム構成グラフ上の根または葉のノードに到達した場合、そのノードをテスト実行済みノードとして選択することができる。この場合、上記式(2)において、根または葉のノードのテスト結果として、当該ノードのシミュレーション結果の値を用いる。また、根または葉のノードに対応するシステム構成についてテスト実行装置120上でテストを実行してもよい。
この一連の補正処理完了後、補正部106は、再度、補正後のシミュレーション結果を元に、システムの要件を満たす最適システム構成候補を探索する。テスト実行制御部104は、選ばれた最適システム構成候補に対して、テストを実行し、補正部106が、候補と構成上の関連性のあるシステム構成について、再度前述の補正処理を繰り返す。
そして、候補と構成上の関連性のあるシステム構成について補正処理を行った後、補正後のシミュレーション結果を用いて、システムの要件を満たし、かつ、最小コストとなるシステム構成を最適システム構成候補として選択する。そして、選択されたシステム構成がテスト未実行であればテストを実行し、テスト結果と(補正後の)シミュレーション結果の誤差が所定値未満、つまり、シミュレーション結果の精度がよく、信頼性が高い場合に、その候補を最適システム構成として出力する。
このようにして、本実施形態では、システムの要件を満たすシステム構成を効率的かつ高精度に算出することが可能となる。
このように構成された本実施形態の情報処理システム1の動作を以下説明する。
図13は、本実施形態の情報処理システム1の動作の一例を示すフローチャートである。
まず、シミュレーション実行部102が、システム構成の取り得る全てのコンフィグレーションに対してシミュレーションを実行する。シミュレーション結果は、シミュレーションデータベース112に格納される(ステップS201)。
次に、補正部106は、シミュレーションデータベース112に格納されたシミュレーション結果に基づいて、システム構成グラフを構築する(ステップS203)。
次に、補正部106は、システムの要件を満たす最適システム構成候補を算出する。この算出方法は既存の技術を用い、例えば、シミュレーションデータベース112に格納されたシミュレーション結果を性能の高い順にソートし、要件を満たす中で(ステップS205のYES)必要なリソース量が最も小さくなるシステム構成を選ぶという方法がある(ステップS207)。なお、要件を満たすシステム構成がなかった場合(ステップS205のNO)、出力部202は、要件を満たすシステム構成がなかったことを示す情報を出力し(ステップS209)、本処理を終了する。
テスト実行制御部104は、選ばれた最適システム構成候補がテスト実行済みか否かを判定する(ステップS211)。テスト済みの場合(ステップS211のYES)、出力部202は、選択された候補を最適システム構成として出力し(ステップS213)、本処理を終了する。
ステップS211の判定に必要な、過去にそのノードがテストを実行したかを示す情報は、テストデータベース114にノードに対応付けて格納されているものとするが、テストデータベース114以外であってもよく、メモリ84またはストレージ85の他の記憶領域でもよい。あるいは、テストデータベース114にそのノードのテスト結果が格納されているか否かで過去にテストが実行されているか否かを判定してもよい。
ステップS211で、候補がテスト済みか否かを判定する理由は、テスト済みでない場合は、テスト結果よりも信頼性の低いシミュレーション結果または補正されたシミュレーション結果に基づいて候補として選択されていることを意味するため、選択された最適システム構成の信頼性も低くなってしまう恐れがあるからである。
テスト未実施の場合(ステップS211のNO)、テスト実行制御部104は、選択されたシステム構成を示すデータをサーバ装置220に出力して、選択されたシステム構成を実現するソフトウェアをサーバ装置220にデプロイし、動作テストを実行する(ステップS215)。テスト結果はテストデータベース114に格納される。
このテスト結果の性能値と、シミュレーション結果の性能値との差が所定値以下の場合(ステップS217のYES)、出力部202が、この構成を最適システム構成として出力し(ステップS213)、本処理を終了する。
シミュレーション結果とテスト結果の性能値の差が所定値以上の場合(ステップS217のNO)、補正部106が、最適システム構成候補を起点として、その候補と構成上の関連性のある他のシステム構成についてシミュレーション結果の補正処理を行う(ステップS219)。補正処理後、シミュレーションデータベース112を更新し、ステップS203に戻る。
ステップS219の補正処理の際、ステップS203で構築されたシステム構成グラフを用いる。まず、ステップS215で今テストを実行したノードAを起点に、他の過去にテストを実行したノードを探索する。
探索処理では、ノードAから同じ向きのパス中に他のノードを探索していき、過去にテストを実行したノードBを見つけた場合、ノードBより先のノードは探索しないものとする。つまり、ノードAと探索されたノードBのパス中には、他の過去にテストが実行されたノードは含まれず、エッジの向きも全て同じとなる。なお、例えば、ノードAからノードBへのパスABとは異なるノードAからノードCへの別のパスACは、互いに向きは異なっていてもよい。
また、言い換えると、ノードAと探索されたノードBのパス中のAとB以外のノードはテスト実行されたことがなく、シミュレーション結果のみ(もしくは補正されたシミュレーション結果のみ)存在することになる。
補正部106は、このようにして探索されたノードについて補正処理を行い、最適システム構成候補と構成上の関連性のある他のノードについてもシミュレーション結果を補正して精度を上げることができる。そして、ステップS205に戻り、補正部106は、更新されたシミュレーションデータベース112の中から要件を満たすシステム構成を見つけ(ステップS205のYES)、その中でコストが最小となるノードを最適システム構成候補として選択する(ステップS207)。
そして、テスト実行制御部104は、選ばれた最適システム構成候補がテスト実行済みか否かを判定する(ステップS211)。テスト済みの場合(ステップS211のYES)、出力部202は、選択された候補を最適システム構成として出力し(ステップS213)、本処理を終了する。
テスト未実施の場合(ステップS211のNO)、テスト実行制御部104は、選択されたシステム構成を示すデータをサーバ装置220に出力して、動作テストを実行し(ステップS215)、上述した動作を繰り返す。
以上説明したように、本実施形態の情報処理システム1において、補正部106は、システム構成グラフを用いて、テスト未実施の少なくとも一つのシステム構成を補正対象として選択する。
この構成によれば、上記実施形態と同様な効果を奏するとともに、さらに、システム構成グラフを用いて、構成に関連性があり、また、性能が近いシステム構成間で、テスト済みのノードのテスト結果を、テスト未実施のノードのシミュレーション結果に反映させてシミュレーション結果の精度を向上させる。その上で、シミュレーション結果(補正後のシミュレーション結果を含む)を元に最適システム構成の評価を行うことができるので、時間や手間のかかるテストは一部のノードについて実行するだけで、最適システム構成を高精度に効率よく算出することができるという効果を奏する。
(第2の実施の形態)
本実施形態の情報処理システム1は、上記第1の実施の形態の情報処理システム1の補正処理の詳細について説明する。構成は上記実施形態と同じであり、上記実施形態の図面も用いて説明する。
図14は、本実施形態の情報処理システム1の図13のフローチャートのステップS219の補正処理の詳細手順の一例を示すフローチャートである。
まず、補正部106は、図13のステップS217で、テスト結果とシミュレーション結果の差が所定値以上と判定された少なくとも一つの最適システム構成候補を起点ノード集合に追加し、補正候補パス集合を空にする(ステップS301)。
次に、補正部106は、システム構成グラフ中の根ノード(親ノードの存在しないノード)および葉ノード(子ノードの存在しないノード)をテスト実行済みノードとしてマーク(フラグをセット)する(ステップS303)。ここでテスト実行済みノードとしてマークされたノードは、実際にはテスト未実施である。
なお、ステップS303で設定するテスト実行済みのマーク(例えば、フラグ)は、ノードのID毎に設けられ、テストデータベース114、シミュレーションデータベース112またはメモリ84またはストレージ85等の所定の記憶領域(不図示)に格納することができる。
さらに、補正部106は、起点ノード集合の各ノードに対し、そのノードを起点としてテスト実行済みノードを1つのみ含むパスを探索し、補正候補パス集合に追加する(ステップS305)。
ステップS305の探索処理における「テスト実行済みノード」とは、補正処理の過程で、テスト実行済みとしてマークされた(フラグがセットされた)(実際にはテスト未実行で、補正済み)ノードと、実際に実機(サーバ装置220)上でテストが実行されたノードの両方を含む。補正候補パスのうち、補正処理されていない中間ノードが存在するパスが存在しない場合(ステップS307のNO)、補正部106は、テスト実行済みとしてマークしたノードのマークをクリア(フラグをリセット)し、補正処理を完了させ(ステップS309)、図13のステップS203に戻る。
このとき、少なくとも一つの最適システム候補と構成上の関連性のある他のノードについて、補正処理が終わったことを意味する。複数の最適システム構成候補が存在する場合は、どれか1つを選択し同様な処理を繰り返す、または、全ての最適システム構成候補について同様な処理を繰り返すものとする。
補正処理されていない中間ノードが存在する場合(ステップS307のYES)、補正部106は、複数存在する場合はその全ての中間ノードのシミュレーション結果をパスの両端のノード情報(テスト結果およびシミュレーション結果)を用いて、補正する(ステップS311)。そして、補正部106は、補正後のシミュレーション結果をシミュレーションデータベース112に記憶するとともに、補正された中間ノード(補正済みノード)をテスト実行済みノードとしてマークする(ステップS313)。そして、補正部106は、補正された中間ノード(補正済みノード)を起点ノード集合に追加し、ステップS305に移行する(ステップS315)。
ステップS315で起点ノード集合に追加された補正済みノードは、後述する第2ステップで、起点ノードとして採用されて、その候補と構成上の関連性のある他のノードの補正処理を行うこととなる。
ステップS307で、補正候補パスのうち、補正処理されていない中間ノードが存在している間は、ステップS311~ステップS315、およびステップS305の処理を繰り返す。そして、補正候補パスのうち全ての中間ノードの補正処理が終了した時(ステップS307のNO)、補正部106は、テスト実行済みとしてマークしたノードのマークをクリア(フラグをリセット)し、本処理を終了し、図13のステップS203に戻る。
また、テスト実行済みのマーク(フラグ)は、図14のフローを抜ける際に、ステップS309で全てクリアされる。よって、図13のステップS211におけるテスト実行済みか否かの判定は、このフラグを用いて行うのではなく、上述したように、実際にテストか実行されたか否かを示す情報に基づいて行われる。
本実施形態において、補正処理は、次の2つの段階(ステップ)がある。すなわち、実際にテストを実行したシステム構成(最適システム構成候補)を起点として補正対象のシステム構成を選択して補正処理を行う第1ステップと、第1システムで補正されたシステム構成(補正済みノード)をテスト実行済みとみなし、当該システム構成を起点として補正対象のシステム構成を選択して補正処理を行う第2ステップとを含む。
これにより、シミュレーション結果から選択される、要件を満たし、かつ、コストが最小となる、各最適システム構成候補について、その候補と構成上の関連性のある他のシステム構成について、補正処理を伝播させていくことができる。これにより、一部のノードについてのみテストを実行すれば、テストを実行していない候補と構成上の関連性のある他の複数のノードについてもシミュレーション結果と実際の値との誤差を小さくすることができる。つまり、最適システム構成候補と構成上の関連性のあるノードのシミュレーション結果の精度を上げた上で、最適システム構成を算出することができるので、最適システム構成候補の信頼性を向上させることができる。
以下、本実施形態の情報処理システム1の動作を具体的な数値例を用いて説明する。
上記実施形態で説明したように、図13のフローチャートに従い、最適システム構成候補としてID4が選択され、ID4のシステム構成のテスト結果がテストデータベース114に格納されているものとする。
図16は、各ノードのシミュレーション結果の補正前の値と補正後の値と、テスト結果の値と、テスト実行済みのマーク(フラグ)について、ID4のテスト実行後の状態を示している。ID4のシステム構成のテスト結果は、スループットは200Mbpsで、レイテンシが120msである。なお、シミュレーション結果の補正前の値と補正後の値は、両方をシミュレーションデータベース112に記憶してもよいし、補正前の値を補正後の値で上書きして更新する構成としてもよい。また、ここでは、テスト結果とフラグはテストデータベース114に格納されているものとする。
この結果を元に再構築されたシステム構成グラフは、図15(a)のようになる。このとき、テスト実行済みのID4のシステム構成のシミュレーション結果には、テスト結果の値を用いるものとする。
まず、第1ステップとして、実際にテストが実行されたID4のシステム構成が最適システム構成候補として起点ノード集合に追加され、補正候補パス集合が空にされる(ステップS301)。
次に、補正部106は、図15(a)のシステム構成グラフを用いて、根ノード(親ノードの存在しないノード)および葉ノード(子ノードの存在しないノード)を探索し、この例では、ID1とID6のノードを実行済みノードとしてマーク(フラグをセット)する(ステップS303)。
そして、補正部106は、起点ノード集合に含まれる各ノードについて(ここでは、ID4のノード)、各ノードを起点として、他の過去にテストを実行したノードを探索する。探索する際は、有向エッジの同一方向のみ探索対象とする。
なお、本図の例では、ステップS303で、先に根または葉のノードをテスト実行済みノードとしてマークする構成としているが、他の例では、各ノードを起点とした探索処理において、テスト実行済みノードが見つからず、根または葉のノードに到達した場合に、そのノードを終点ノードとして選択し、テスト実行済みノードとしてマークしてもよい。
この時点の探索処理においては、ID4のみが起点ノードであり、2つのパスID4→ID5→ID6と、ID4→ID1と、2つの終点ノードID6とID1が抽出される。そして、補正部106は、この2つのパスを補正候補パス集合に追加する(ステップS305)。このときのフラグの状態は図17のようになる。
補正候補パスのうち、未補正の中間ノードが存在するパスが存在する場合(ステップS307のYES)、以下の式を用いて全ての中間ノードCのシミュレーション結果を補正する(ステップS311)。
Figure 0007136085000002
ここで、A、Bはそれぞれ、パスの両端を指すノードであり、ここでは、ID4→ID5→ID6のパスが抽出され、起点ノードAはID4、終点ノードBはID6、中間ノードCはID5を指す。
は、ノードXのシミュレーション結果を指し、Sは、スループットのシミュレーション結果、Sは、レイテンシのシミュレーション値を指す。Tは、ノードXのテスト結果(すなわち、実測値)を指し、Tは、スループットの実測値、Tは、レイテンシの実測値を指す。
また、WXYは、ノードXからノードYへの有向エッジのシミュレーション結果の補正に用いる重みを指し、Wは、スループットのシミュレーション結果の補正に用いる重み、Wは、レイテンシのシミュレーション結果の補正に用いる重みを指す。
また、スループットおよびレイテンシのシミュレーション結果の補正に用いる重みは、それぞれ以下の式(5)および式(6)により定義される。
Figure 0007136085000003
ID5の補正結果を図18(a)(スループット)および図18(b)(レイテンシ)に示す。ID5のノードの補正後のシミュレーション結果は、スループットが267Mbps、レイテンシが95msとなる。この補正後のシミュレーション結果を元に構築されたシステム構成グラフは、図15(b)のようになる。
次に、第2ステップとして、第1ステップで補正処理されたノード(ID5)をテスト実行済みノードとみなし(テスト実行済みとマーク(フラグをセット))(ステップS313)、起点ノード集合に追加し(ステップS315)、ステップS303に戻る。ID5の補正後の各システム構成の各値の状態を図19に示す。そして、補正されたノード(ID5)を起点に第1ステップと同様の補正処理を実行する。
まず、補正部106は、ID5を起点ノードとして、他の過去にテストが実行されたノードまたは根または葉のノード(テスト実行済みとマークされたノード)を探索する。探索されたパスは、ID5→ID6、ID5→ID4、ID5→ID3→ID1の3つとなる。このパスの中で、第1ステップの検索パスの部分パスになっているID5→ID6、ID5→ID4は対象外とする。よって、ID5→ID3→ID1のパスを補正候補パス集合に追加する(ステップS305)。
中間ノード(テスト未実施)が存在するパス(ID5→ID3→ID1)が存在するので(ステップS307のYES)、補正部106は、ID5→ID3→ID1のパス内の中間ノードであるID3の補正処理を行う(ステップS311)。計算方法は、第1ステップと同様であり、その結果を図20に示す。ID3の補正後のシミュレーション値は、スループットが184Mbpsであり、レイテンシが116msである。この補正後のシミュレーション結果を元に構築されたシステム構成グラフは、図15(c)のようになる。
補正されたID3のノードのシミュレーション値でシミュレーションデータベース112を更新し、補正されたID3のノードをテスト実行済みノードとみなし(テスト実行済みとマーク(フラグをセット))(ステップS313)、起点ノード集合に追加し(ステップS315)ステップS303に戻る。ID3の補正後の各システム構成の各値の状態を図21に示す。
ステップS303の戻り、第2ステップで補正されたID3のノードを起点として再度補正処理を実行する。まず、補正候補パスの探索処理において、ID3→ID1、ID3→ID5のパスが見つかるが(ステップS305)、中間ノードが存在しないため(ステップS307のNO)、補正処理はここで完了する。このとき、テスト実行済みとしてマークしていたノードのマークを全てクリア(フラグをリセット)する(ステップS309)。
このようにして、最適システム構成候補と構成上の関連性のあるシステム構成について補正処理が終了した後、図13のステップS203に戻り、補正後のシミュレーション結果(テスト実行済みノードはテスト結果)を用いてシステム構成グラフを再構築する。
そして、補正部106は、シミュレーション結果(補正されたシミュレーション結果を含む)に基づき、要件を満たすシステム構成を(ステップS205のYES)最適システム構成候補として選択する(ステップS207)。
ここでは、初回に候補として選択されていたID4のシステム構成は、図21に示すように、テスト結果から性能値が要件を満たさなくなったため、ID5のノードが候補として選択される。ここで、ID5のシステム構成は、テスト未実施であるので(ステップS211のNO)、テスト実行制御部104は、ID5のシステム構成のテストをサーバ装置220に実行させ、テストデータベース114にテスト結果を格納する(ステップS215)。
このテスト結果を図22に示す。実測されたスループットおよびレイテンシの値がシミュレーション結果(補正後)の値と比較し10%以下の誤差であるため(ステップS217のYES)、出力部202は、この最適システム構成候補のID5を最適システム構成として出力し(ステップS213)、本処理を終了する。
ここで、ID5のノードのシミュレーション結果とテスト結果の差が所定値未満にならなかった場合は(ステップS217のNO)、ID5のシステム構成を起点ノードに追加して、再度補正処理(図14)を繰り返すこととなる。つまり、最適システム構成の候補で、要件を満たし、かつ、シミュレーション結果(または補正後のシミュレーション結果)とテスト結果の差が所定値のノードが見つかるまで、補正処理を繰り返す。
また、上記の例では、図13の初回のステップS207で、1つのノード(ID4)のみが最適システム構成候補として選択されているが、他の例において、複数の最適システム構成候補が選択された場合、各候補について、図14の補正処理をそれぞれ行い、全ての候補と構成上の関連性のあるノードについて補正処理が終了した後、図13のステップS203に戻る。
このように、最適システム構成候補として選択された少なくとも一つのノードを起点ノードとして、候補のテスト結果に基づき、その候補と構成上の関連性のある他のノードについて補正処理を行うことで、シミュレーション結果の精度を上げることができる。補正後のノードをテスト集合済みとしてさらにそのノードと構成上の関連性のある他のノードについても補正処理を行い、テスト結果を伝播させることができる。
そして、最適システム構成候補と構成上の関連性のあるノードの補正処理が終わった後に、最適システム構成候補を再度算出し直すので、信頼性の高い結果を得ることが可能になる。また、候補として選ばれたシステム構成については、テストを実行し、テスト結果とシミュレーション結果(補正後のシミュレーション結果も含む)の誤差が所定値未満になった場合に最適システム構成として出力するので、より信頼性の高い最適システム構成の算出が可能になる。
以上説明したように、本実施形態の情報処理システム1によれば、上記実施形態と同様な効果を奏する。
(第3の実施の形態)
本実施形態は、上記実施形態の構成と同様の構成を有し、上記実施形態の図面も用いて説明する。
上記実施形態では、システムが満たすべき要件を入力として、要件を満たす最適なシステム構成が導出されるまで、テスト実行とシミュレーション値の補正を繰り返す処理となっているが、本実施形態では、要件は存在せず、補正される度合いに基づいて、次にテストを実行するシステム構成を決定する。つまり、補正される度合いが大きいシステム構成を選択し、その周辺のシステム構成についても補正処理を実行することで、シミュレーション結果の精度を上げることを目的とする。
ここで、補正される度合いが大きいシステム構成とは、テスト結果とシミュレーション結果の差が大きいものを指す。本実施形態では、ランダムに複数のシステム構成を選択してテストを実行し、その中でテスト結果とシミュレーション結果の差が最大のものを選択して、その周辺のシステム構成について補正処理を行う。
本実施形態では、システムの性能値が起点ノードから所定の距離にあるノードを「周辺」のノード(システム構成)と呼ぶ。あるノードYが起点ノードCから所定の距離にあるとは、下限距離ρと上限距離σを用いて、以下の条件を満たすときである。
|S-S|≧ρ かつ |S-S|≦σ
つまり、テストを実行したノードのすぐ近くは補正により正しい値に近くなっているという推測のもとに、一定距離れたノード(比較的近傍のノード)のテストを実行する。つまり、システム構成グラフ上の一定距離ごとにテストを実行する。さらに効率的にするために、テスト実行したノードのシミュレーション結果との誤差が小さい場合は、一定距離離れたノードのシミュレーション結果は正しいものとして、一定距離離れたノードのテストは実行しない。
本実施形態において、補正部106は、複数のシステム構成のコンフィグレーションを元に構築された、各のシステム構成間の性能値の距離を示すシステム構成グラフを用いて、補正対象のテスト未実施の少なくとも一つのシステム構成を選択して補正する。
システム構成グラフにおいて、ある2つのノードの間の距離は、当該2つのノードを結ぶパスが到達可能(有向パス)である場合に定義され、当該2つのシステム構成のシミュレーション結果の性能値の差で示される。
本実施形態において、テスト実行制御部104は、システム構成グラフにおいて、シミュレーション結果とテスト結果の差が閾値以上であり、かつ、差が最大のシステム構成を選択し、選択されたシステム構成に対応するノードを起点として、システム構成間の性能値の距離が所定範囲内にあるシステム構成に対応する少なくとも一つのノードを探索する。そして、テスト実行制御部104は、起点のノードと、探索された各ノードとを両端とする有向パスにおいて、テスト実施済みのノードが存在しない場合、探索されたノードについて、テスト実行装置120上で動作テストを実行する。
そして、補正部106は、各ノードについて、各ノードのシミュレーション結果とテスト結果の差が閾値未満になるまで、補正処理を繰り返し行う。
図23は、本実施形態の情報処理システム1の動作の一例を示すフローチャートである。
まず、上記実施形態と同様に、シミュレーション実行部102は、全てのシステム構成のシミュレーションを実行し、シミュレーションデータベース112に結果を格納する(ステップS201)。そして、シミュレーション実行部102は、システム構成グラフを構築する(ステップS203)。
次に、テスト実行制御部104は、ランダムに選択された複数のシステム構成のテストをサーバ装置220上で実行し、その結果をテストデータベース114に格納する(ステップS401)。ただし、テスト対象となる複数のシステム構成の選択の仕方はランダム選択手法に限定されない。
そして、補正部106は、そして、ステップS401でテストされたノードと、起点ノードの間のパスに存在する全ての中間ノードについて、上記実施形態と同様に式(3)および式(4)を用いてシミュレーション結果を補正する(ステップS402)。補正後のシミュレーション結果は、シミュレーションデータベース112に格納される。
そして、補正部106は、テストが実行されたシステム構成のうち、シミュレーション結果とテスト結果の差が所定値以上あり(ステップS403のYES)、かつ、差が最も大きいシステム構成を選択する(ステップS405)。これにより、誤差が大きいシステム構成の周辺の一定の距離にあるノードについて優先的にシミュレーション結果の補正を行うことができることとなる。
次に、補正部106は、システム構成グラフ上で、選択されたシステム構成を起点に、距離が所定範囲内にあるノードを探索する(ステップS407)。つまり、起点ノードと同じような性能値を有するノードが少なくとも一つ選択される。探索されたテスト実行済みのノードは(ステップS409のYES)、ステップS403に戻る。また、起点ノードから距離が所定範囲内に、テスト実行済みのノードが無い場合(ステップS409のNO)、テスト実行制御部104は、起点から距離が所定範囲内にある少なくとも一つのノードについて、サーバ装置220上で動作テストを実行する(ステップS411)。テスト結果はテストデータベース114に格納される。
そして、ステップS402に戻り、上記の処理をシミュレーション結果とテスト結果の値の差が所定値以上のものが無くなるまで繰り返す。シミュレーション結果とテスト結果の値の差が所定値以上のノードがなくなった時(ステップS403のNO)、本処理を終了する。
以上の処理により、全てのテスト実行済みノードについて、シミュレーション結果(または補正後のシミュレーション結果)とテスト結果の差が所定値未満となり、少なくともテスト実行済みノードと性能値の近いノードについて、シミュレーション結果の精度を上げることができる。
以上説明したように、本実施形態によれば、要件が未定の場合でも、シミュレーションとテストを組み合わせて、システム構成グラフの精度を向上させることができ、ひいては高精度なシミュレーション補正値を高速に算出することが可能となる。
本発明は、システムの要件から必要なシステム構成を算出するサイジングツールおよびオーケストレータにも適用できる。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
なお、本発明において利用者に関する情報を取得、利用する場合は、これを適法に行うものとする。
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下に限られない。
1. 異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得するシミュレーション実行手段と、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得するテスト実行制御手段と、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する補正手段と、
を備える情報処理装置。
2. 1.に記載の情報処理装置において、
前記補正手段は、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用いて、前記テスト未実施の少なくとも一つの前記システム構成を補正対象として選択する、情報処理装置。
3. 1.または2.に記載の情報処理装置において、
前記テスト実行制御手段は、
前記シミュレーション結果に基づいて、前記性能値がシステムの要件を満たすシステム構成を特定し、特定された前記システム構成のコストに基づいて、前記コストが最小となる前記システム構成を候補として選択し、前記テスト実行装置上で選択された前記候補の前記システム構成の前記テストを実行する情報処理装置。
4. 2.に記載の情報処理装置において、
前記テスト実行制御手段は、
前記システム構成グラフにおいて、前記シミュレーション結果と前記テスト結果の差が閾値以上であり、かつ、前記差が最大の前記システム構成を選択し、
選択された前記システム構成に対応するノードを起点として、前記システム構成間の前記性能値の距離が所定範囲内にあるシステム構成に対応する少なくとも一つのノードを探索し、
前記起点の前記ノードと、探索された各前記ノードとを両端とする有向パスにおいて、テスト実施済みのノードが存在しない場合、探索された前記ノードについて、前記テスト実行装置上で前記テストを実行し、
前記補正手段は、
各前記ノードについて、各前記ノードの前記シミュレーション結果と前記テスト結果の前記差が前記閾値未満になるまで、補正処理を繰り返し行う情報処理装置。
5. 1.から4.のいずれか一つに記載の情報処理装置において、
前記補正手段は、
以下の式(a)を用いて、補正対象のシステム構成のシミュレーション結果Sを補正し、補正後のシミュレーション結果をS’とする、情報処理装置。
Figure 0007136085000004
ここで、前記補正対象の前記システム構成は、前記テスト済みの前記システム構成を有する2つのノードAとノードBの間のノードCとし、前記ノードA、B、Cのシミュレーション結果をそれぞれS、S、S(S<S<S)とし、前記ノードAから前記ノードCへの有向エッジACの重みをWAC=S-S、前記ノードCから前記ノードBへの有向エッジCBの重みをWCB=S-Sとし、前記ノードA、Bの前記テスト結果をT、Tとする。
6. 1.から5.のいずれか一つに記載の情報処理装置において、
前記補正手段は、
前記シミュレーション結果が補正された前記システム構成を前記テスト済みの前記システム構成とみなし、当該システム構成の補正後の前記シミュレーション結果を用いて、補正処理を繰り返す、情報処理装置。
7. 1.から6.のいずれか一つに記載の情報処理装置において、
前記シミュレーション結果と前記テスト結果の差が所定値未満の前記システム構成を、最適システム構成として出力する出力手段をさらに備え、
前記補正手段は、
前記シミュレーション結果と前記テスト結果の差が所定値以上の場合、選択された前記システム構成について補正処理を行う、情報処理装置。
8. 1.から7.のいずれか一つに記載の情報処理装置において、
前記システム構成の各コンフィグレーションは、システムを構成する少なくとも一つの機能コンポーネントに対して、利用する仮想マシンの数、割り当てるリソース量、およびアクセラレーション使用の有無のうち少なくともいずれか一つを含む情報処理装置。
9. 8.に記載の情報処理装置において、
ある2つのシステム構成について、前記システムを構成する複数の前記機能コンポーネントのいずれかの前記コンフィグレーションが互いに1制御単位異なるとき、前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフ上で、前記2つのシステム構成は、隣接するノードで示され、
前記シミュレーション結果が示す前記性能値が高い方の前記システム構成が親ノード、低い方の前記システム構成が子ノードとなる、有向グラフで表現される情報処理装置。
10. 2.から9.のいずれか一つに記載の情報処理装置において、
前記システム構成グラフにおいて、前記2つのノードの間の距離は、当該2つのノードを結ぶパスが到達可能である場合に定義され、当該2つのシステム構成の前記シミュレーション結果の前記性能値の差で示される情報処理装置。
11. 1.から10.のいずれか一つに記載の情報処理装置において、
前記補正手段は、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用い、前記システム構成グラフ上で、一の前記システム構成に対応するノードを起点とした有向パスにおいて、前記テストが実行済みの前記システム構成に対応する他のノードを探索し、
見つかった前記他のノードと、前記起点のノードを両端とする前記有向パスが、2つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードを補正対象として補正処理を行う、情報処理装置。
12. 11.に記載の情報処理装置において、
前記テスト実行制御手段は、
前記補正手段におけるノード探索により、前記テストが実行済みであるシステム構成に対応する前記他のノードが前記有向パス上に見つからなかった場合、前記有向パスの根または葉ノードを前記他のノードとみなし、
前記他のノードの情報を用いて補正を行う際は、前記他のノードのテスト結果としてシミュレーション結果を用い、
前記補正手段は、
前記2つのノードを両端とする前記有向パスが、2つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードに対応する前記システム構成が、前記テストが未実施である場合に、当該中間ノードを補正対象として補正処理を行う、情報処理装置。
13. 2.から12.のいずれか一つに記載の情報処理装置において、
前記システム構成グラフは、各前記システム構成のスループット、およびレイテンシの少なくともいずれか一つの性能指標の性能値を元に構築される情報処理装置。
14. 情報処理装置が、
異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得し、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得し、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する情報処理装置の情報処理方法。
15. 14.に記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用いて、前記テスト未実施の少なくとも一つの前記システム構成を補正対象として選択する、情報処理方法。
16. 14.または15.に記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果に基づいて、前記性能値がシステムの要件を満たすシステム構成を特定し、特定された前記システム構成のコストに基づいて、前記コストが最小となる前記システム構成を候補として選択し、前記テスト実行装置上で選択された前記候補の前記システム構成の前記テストを実行する情報処理方法。
17. 15.に記載の情報処理方法において、
前記情報処理装置が、
前記システム構成グラフにおいて、前記シミュレーション結果と前記テスト結果の差が閾値以上であり、かつ、前記差が最大の前記システム構成を選択し、
選択された前記システム構成に対応するノードを起点として、前記システム構成間の前記性能値の距離が所定範囲内にあるシステム構成に対応する少なくとも一つのノードを探索し、
前記起点の前記ノードと、探索された各前記ノードとを両端とする有向パスにおいて、テスト実施済みのノードが存在しない場合、探索された前記ノードについて、前記テスト実行装置上で前記テストを実行し、
各前記ノードについて、各前記ノードの前記シミュレーション結果と前記テスト結果の前記差が前記閾値未満になるまで、補正処理を繰り返し行う情報処理方法。
18. 14.から17.のいずれか一つに記載の情報処理方法において、
前記情報処理装置が、
以下の式(a)を用いて、補正対象のシステム構成のシミュレーション結果Sを補正し、補正後のシミュレーション結果をS’とする、情報処理方法。
Figure 0007136085000005
ここで、前記補正対象の前記システム構成は、前記テスト済みの前記システム構成を有する2つのノードAとノードBの間のノードCとし、前記ノードA、B、Cのシミュレーション結果をそれぞれS、S、S(S<S<S)とし、前記ノードAから前記ノードCへの有向エッジACの重みをWAC=S-S、前記ノードCから前記ノードBへの有向エッジCBの重みをWCB=S-Sとし、前記ノードA、Bの前記テスト結果をT、Tとする。
19. 14.から18.のいずれか一つに記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果が補正された前記システム構成を前記テスト済みの前記システム構成とみなし、当該システム構成の補正後の前記シミュレーション結果を用いて、補正処理を繰り返す、情報処理方法。
20. 14.から19.のいずれか一つに記載の情報処理方法において、
前記情報処理装置が、さらに、
前記シミュレーション結果と前記テスト結果の差が所定値未満の前記システム構成を、最適システム構成として出力し、
前記シミュレーション結果と前記テスト結果の差が所定値以上の場合、選択された前記システム構成について補正処理を行う、情報処理方法。
21. 14.から20.のいずれか一つに記載の情報処理方法において、
前記システム構成の各コンフィグレーションは、システムを構成する少なくとも一つの機能コンポーネントに対して、利用する仮想マシンの数、割り当てるリソース量、およびアクセラレーション使用の有無のうち少なくともいずれか一つを含む情報処理方法。
22. 21.に記載の情報処理方法において、
ある2つのシステム構成について、前記システムを構成する複数の前記機能コンポーネントのいずれかの前記コンフィグレーションが互いに1制御単位異なるとき、前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフ上で、前記2つのシステム構成は、隣接するノードで示され、
前記シミュレーション結果が示す前記性能値が高い方の前記システム構成が親ノード、低い方の前記システム構成が子ノードとなる、有向グラフで表現される情報処理方法。
23. 15.から22.のいずれか一つに記載の情報処理方法において、
前記システム構成グラフにおいて、前記2つのノードの間の距離は、当該2つのノードを結ぶパスが到達可能である場合に定義され、当該2つのシステム構成の前記シミュレーション結果の前記性能値の差で示される情報処理方法。
24. 14.から23.のいずれか一つに記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用い、前記システム構成グラフ上で、一の前記システム構成に対応するノードを起点とした有向パスにおいて、前記テストが実行済みの前記システム構成に対応する他のノードを探索し、
見つかった前記他のノードと、前記起点のノードを両端とする前記有向パスが、2つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードを補正対象として補正処理を行う、情報処理方法。
25. 24.に記載の情報処理方法において、
前記情報処理装置が、
前記シミュレーション結果を補正する際におけるノード探索により、前記テストが実行済みであるシステム構成に対応する前記他のノードが前記有向パス上に見つからなかった場合、前記有向パスの根または葉ノードを前記他のノードとみなし、
前記他のノードの情報を用いて補正を行う際は、前記他のノードのテスト結果としてシミュレーション結果を用い、
前記2つのノードを両端とする前記有向パスが、2つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードに対応する前記システム構成が、前記テストが未実施である場合に、当該中間ノードを補正対象として補正処理を行う、情報処理方法。
26. 15.から25.のいずれか一つに記載の情報処理方法において、
前記システム構成グラフは、各前記システム構成のスループット、およびレイテンシの少なくともいずれか一つの性能指標の性能値を元に構築される情報処理方法。
27. コンピュータに、
異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得する手順、
前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得する手順、
テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する手順、を実行させるためのプログラム。
28. 27.に記載のプログラムにおいて、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用いて、前記テスト未実施の少なくとも一つの前記システム構成を補正対象として選択する手順、をコンピュータに実行させるためのプログラム。
29. 27.または28.に記載のプログラムにおいて、
前記シミュレーション結果に基づいて、前記性能値がシステムの要件を満たすシステム構成を特定し、特定された前記システム構成のコストに基づいて、前記コストが最小となる前記システム構成を候補として選択し、前記テスト実行装置上で選択された前記候補の前記システム構成の前記テストを実行する手順、をコンピュータに実行させるためのプログラム。
30. 28.に記載のプログラムにおいて、
前記システム構成グラフにおいて、前記シミュレーション結果と前記テスト結果の差が閾値以上であり、かつ、前記差が最大の前記システム構成を選択する手順、
選択された前記システム構成に対応するノードを起点として、前記システム構成間の前記性能値の距離が所定範囲内にあるシステム構成に対応する少なくとも一つのノードを探索する手順、
前記起点の前記ノードと、探索された各前記ノードとを両端とする有向パスにおいて、テスト実施済みのノードが存在しない場合、探索された前記ノードについて、前記テスト実行装置上で前記テストを実行する手順、
各前記ノードについて、各前記ノードの前記シミュレーション結果と前記テスト結果の前記差が前記閾値未満になるまで、補正処理を繰り返し行う手順、をコンピュータに実行させるためのプログラム。
31. 27.から30.のいずれか一つに記載のプログラムにおいて、
以下の式(a)を用いて、補正対象のシステム構成のシミュレーション結果Sを補正し、補正後のシミュレーション結果をS’とする手順、をコンピュータに実行させるためのプログラム。
Figure 0007136085000006
ここで、前記補正対象の前記システム構成は、前記テスト済みの前記システム構成を有する2つのノードAとノードBの間のノードCとし、前記ノードA、B、Cのシミュレーション結果をそれぞれS、S、S(S<S<S)とし、前記ノードAから前記ノードCへの有向エッジACの重みをWAC=S-S、前記ノードCから前記ノードBへの有向エッジCBの重みをWCB=S-Sとし、前記ノードA、Bの前記テスト結果をT、Tとする。
32. 27.から31.のいずれか一つに記載のプログラムにおいて、
前記シミュレーション結果が補正された前記システム構成を前記テスト済みの前記システム構成とみなし、当該システム構成の補正後の前記シミュレーション結果を用いて、補正処理を繰り返す手順、をコンピュータに実行させるためのプログラム。
33. 27.から32.のいずれか一つに記載のプログラムにおいて、
さらに、
前記シミュレーション結果と前記テスト結果の差が所定値未満の前記システム構成を、最適システム構成として出力する手順、
前記シミュレーション結果と前記テスト結果の差が所定値以上の場合、選択された前記システム構成について補正処理を行う手順、をコンピュータに実行させるためのプログラム。
34. 27.から33.のいずれか一つに記載のプログラムにおいて、
前記システム構成の各コンフィグレーションは、システムを構成する少なくとも一つの機能コンポーネントに対して、利用する仮想マシンの数、割り当てるリソース量、およびアクセラレーション使用の有無のうち少なくともいずれか一つを含むプログラム。
35. 34.に記載のプログラムにおいて、
ある2つのシステム構成について、前記システムを構成する複数の前記機能コンポーネントのいずれかの前記コンフィグレーションが互いに1制御単位異なるとき、前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフ上で、前記2つのシステム構成は、隣接するノードで示され、
前記シミュレーション結果が示す前記性能値が高い方の前記システム構成が親ノード、低い方の前記システム構成が子ノードとなる、有向グラフで表現されるプログラム。
36. 28.から35.のいずれか一つに記載のプログラムにおいて、
前記システム構成グラフにおいて、前記2つのノードの間の距離は、当該2つのノードを結ぶパスが到達可能である場合に定義され、当該2つのシステム構成の前記シミュレーション結果の前記性能値の差で示されるプログラム。
37. 27.から36.のいずれか一つに記載のプログラムにおいて、
前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用い、前記システム構成グラフ上で、一の前記システム構成に対応するノードを起点とした有向パスにおいて、前記テストが実行済みの前記システム構成に対応する他のノードを探索する手順、
見つかった前記他のノードと、前記起点のノードを両端とする前記有向パスが、2つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードを補正対象として補正処理を行う手順、をコンピュータに実行させるためのプログラム。
38. 37.に記載のプログラムにおいて、
前記シミュレーション結果を補正する手順におけるノード探索により、前記テストが実行済みであるシステム構成に対応する前記他のノードが前記有向パス上に見つからなかった場合、前記有向パスの根または葉ノードを前記他のノードとみなす手順、
前記他のノードの情報を用いて補正を行う際は、前記他のノードのテスト結果としてシミュレーション結果を用い、
前記テスト実行装置上で前記他のノードに対応する前記システム構成の前記テストを実行する手順、
前記2つのノードを両端とする前記有向パスが、2つの前記ノード以外の少なくとも一つの中間ノードを含み、当該中間ノードに対応する前記システム構成が、前記テストが未実施である場合に、当該中間ノードを補正対象として補正処理を行う手順、をコンピュータに実行させるためのプログラム。
39. 28.から38.のいずれか一つに記載のプログラムにおいて、
前記システム構成グラフは、各前記システム構成のスループット、およびレイテンシの少なくともいずれか一つの性能指標の性能値を元に構築されるプログラム。
この出願は、2017年3月30日に出願された日本出願特願2017-067471号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (10)

  1. 異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得するシミュレーション実行手段と、
    前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得するテスト実行制御手段と、
    テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する補正手段と、
    を備える情報処理装置。
  2. 請求項1に記載の情報処理装置において、
    前記補正手段は、
    前記シミュレーション結果を元に構築された、複数の前記システム構成間の前記性能値の距離を示すシステム構成グラフを用いて、前記テスト未実施の少なくとも一つの前記システム構成を補正対象として選択する、情報処理装置。
  3. 請求項1または2に記載の情報処理装置において、
    前記テスト実行制御手段は、
    前記シミュレーション結果に基づいて、前記性能値がシステムの要件を満たすシステム構成を特定し、特定された前記システム構成のコストに基づいて、前記コストが最小となる前記システム構成を候補として選択し、前記テスト実行装置上で選択された前記候補の前記システム構成の前記テストを実行する情報処理装置。
  4. 請求項2に記載の情報処理装置において、
    前記テスト実行制御手段は、
    前記システム構成グラフにおいて、前記シミュレーション結果と前記テスト結果の差が閾値以上であり、かつ、前記差が最大の前記システム構成を選択し、
    選択された前記システム構成に対応するノードを起点として、前記システム構成間の前記性能値の距離が所定範囲内にあるシステム構成に対応する少なくとも一つのノードを探索し、
    前記起点の前記ノードと、探索された各前記ノードとを両端とする有向パスにおいて、テスト実施済みのノードが存在しない場合、探索された前記ノードについて、前記テスト実行装置上で前記テストを実行し、
    前記補正手段は、
    各前記ノードについて、各前記ノードの前記シミュレーション結果と前記テスト結果の前記差が前記閾値未満になるまで、補正処理を繰り返し行う情報処理装置。
  5. 請求項1から4のいずれか一項に記載の情報処理装置において、
    前記補正手段は、
    以下の式(a)を用いて、補正対象のシステム構成のシミュレーション結果Scを補正し、補正後のシミュレーション結果をSC’とする、情報処理装置。
    Figure 0007136085000007
    ここで、前記補正対象の前記システム構成は、前記テスト済みの前記システム構成を有する2つのノードAとノードBの間のノードCとし、前記ノードA、B、Cのシミュレーション結果をそれぞれSA、SB、SC(SA<SC<SB)とし、前記ノードAから前記ノードCへの有向エッジACの重みをWAC=SC-SA、前記ノードCから前記ノードBへの有向エッジCBの重みをWCB=SB-SCとし、前記ノードA、Bの前記テスト結果をTA、TBとする。
  6. 請求項1から5のいずれか一項に記載の情報処理装置において、
    前記補正手段は、
    前記シミュレーション結果が補正された前記システム構成を前記テスト済みの前記システム構成とみなし、当該システム構成の補正後の前記シミュレーション結果を用いて、補正処理を繰り返す、情報処理装置。
  7. 請求項1から6のいずれか一項に記載の情報処理装置において、
    前記シミュレーション結果と前記テスト結果の差が所定値未満の前記システム構成を、最適システム構成として出力する出力手段をさらに備え、
    前記補正手段は、
    前記シミュレーション結果と前記テスト結果の差が所定値以上の場合、選択された前記システム構成について補正処理を行う、情報処理装置。
  8. 請求項2、および請求項2を引用する請求項3から7のいずれか一項に記載の情報処理装置において、
    前記システム構成グラフにおいて、つのノードの間の距離は、当該2つのノードを結ぶパスが到達可能である場合に定義され、当該2つのシステム構成の前記シミュレーション結果の前記性能値の差で示される情報処理装置。
  9. 情報処理装置が、
    異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得し、
    前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得し、
    テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する情報処理装置の情報処理方法。
  10. コンピュータに、
    異なる複数のコンフィグレーションをそれぞれ有する複数のシステム構成の各々についてシミュレーションを実行し、性能値のシミュレーション結果を取得する手順、
    前記複数のシステム構成の中から選択されたシステム構成を示すデータをテスト実行装置に出力し、当該テスト実行装置でのテストのテスト結果を取得する手順、
    テスト済みの前記システム構成の前記テスト結果と前記シミュレーション結果の差を用いて、少なくとも一つのテスト未実施の前記システム構成の前記シミュレーション結果を補正する手順、を実行させるためのプログラム。
JP2019509876A 2017-03-30 2018-03-27 情報処理装置、情報処理方法、およびプログラム Active JP7136085B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017067471 2017-03-30
JP2017067471 2017-03-30
PCT/JP2018/012402 WO2018181293A1 (ja) 2017-03-30 2018-03-27 情報処理装置、情報処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2018181293A1 JPWO2018181293A1 (ja) 2020-02-13
JP7136085B2 true JP7136085B2 (ja) 2022-09-13

Family

ID=63676379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019509876A Active JP7136085B2 (ja) 2017-03-30 2018-03-27 情報処理装置、情報処理方法、およびプログラム

Country Status (2)

Country Link
JP (1) JP7136085B2 (ja)
WO (1) WO2018181293A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012198799A (ja) 2011-03-22 2012-10-18 Mitsubishi Electric Corp シミュレータ自動生成装置およびシミュレータ検証システム
WO2012173283A1 (ja) 2011-06-16 2012-12-20 日本電気株式会社 システム性能予測方法、情報処理装置およびその制御プログラム
WO2015083333A1 (ja) 2013-12-04 2015-06-11 日本電気株式会社 性能予測装置、性能予測方法、及び、コンピュータ・プログラムが格納された記憶媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012198799A (ja) 2011-03-22 2012-10-18 Mitsubishi Electric Corp シミュレータ自動生成装置およびシミュレータ検証システム
WO2012173283A1 (ja) 2011-06-16 2012-12-20 日本電気株式会社 システム性能予測方法、情報処理装置およびその制御プログラム
WO2015083333A1 (ja) 2013-12-04 2015-06-11 日本電気株式会社 性能予測装置、性能予測方法、及び、コンピュータ・プログラムが格納された記憶媒体

Also Published As

Publication number Publication date
JPWO2018181293A1 (ja) 2020-02-13
WO2018181293A1 (ja) 2018-10-04

Similar Documents

Publication Publication Date Title
Becker et al. Simulizar: Design-time modeling and performance analysis of self-adaptive systems
US8635599B2 (en) System and method for evaluating adherence to a standardized process
JP5034955B2 (ja) 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム
US20160321037A1 (en) Performance verification device for verifying performance of program, method, and recording medium having program recorded thereon for causing computer to perform the method
US11362891B2 (en) Selecting and using a cloud-based hardware accelerator
US11372739B2 (en) Accelerator monitoring and testing
CN108363660B (zh) 一种测试程序生成方法和装置
JP2012099110A (ja) 分散コンピューティング環境におけるソフトウェアの解析の効率的な並列化のためのポリシーのスケジューリング
Morton Considerations for benchmarking virtual network functions and their infrastructure
US20200050490A1 (en) Accelerator validation and reporting
US7860700B2 (en) Hardware verification batch computing farm simulator
Barve et al. Fecbench: A holistic interference-aware approach for application performance modeling
US20160077860A1 (en) Virtual machine placement determination device, virtual machine placement determination method, and virtual machine placement determination program
JPWO2014080598A1 (ja) 運用管理装置、及び、運用管理方法
US10740257B2 (en) Managing accelerators in application-specific integrated circuits
JP5845810B2 (ja) 分散コンピューティング環境におけるソフトウェアの解析の並列化のための効率的な部分計算
US10248462B2 (en) Management server which constructs a request load model for an object system, load estimation method thereof and storage medium for storing program
JP7136085B2 (ja) 情報処理装置、情報処理方法、およびプログラム
US20040024673A1 (en) Method for optimizing the allocation of resources based on market and technology considerations
JP4149762B2 (ja) メモリ資源最適化支援方法、プログラム及び装置
Gu et al. Analyzing execution dynamics of scientific workflows for latency minimization in resource sharing environments
US20230020719A1 (en) Technology environment for a software application
US20230021004A1 (en) Determining an improved technology environment for a software application
US20170061054A1 (en) Automated timing analysis
JPWO2012093469A1 (ja) 性能評価装置及び性能評価方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190926

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220322

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: 20220802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220815

R151 Written notification of patent or utility model registration

Ref document number: 7136085

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151