(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023173353
(43)【公開日】2023-12-07
(54)【発明の名称】遅延分析システム、遅延分析方法及び遅延分析プログラム
(51)【国際特許分類】
H04L 43/106 20220101AFI20231130BHJP
H04L 43/0852 20220101ALI20231130BHJP
【FI】
H04L43/106
H04L43/0852
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022085543
(22)【出願日】2022-05-25
(71)【出願人】
【識別番号】000006208
【氏名又は名称】三菱重工業株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】川嶋 大樹
(72)【発明者】
【氏名】舟橋 聡
(72)【発明者】
【氏名】中出 実
(57)【要約】
【課題】ホストマシンの遅延をより高い精度で分析を可能にする。
【解決手段】仮想化されたコントローラと、コントローラと他の機器との通信を管理するホスト通信部と、を実行するホストマシンと、ホストマシンの処理の遅延を計測する遅延調査用パケットをホストマシンに入力し、ホストマシンで処理された遅延調査用パケットを分析して、ホストマシンの処理の遅延を計測する遅延分析装置と、を有し、コントローラは、遅延調査用パケットを処理し、かつ、タイムスタンプを遅延調査用パケットに書き込み、ホスト通信部に出力し、ホスト通信部は、遅延調査用パケットを処理し、かつ、タイムスタンプを遅延調査用パケットに書き込み、遅延分析装置に出力し、遅延分析装置は、遅延調査用パケットに書き込まれた、コントローラのタイムスタンプと、ホスト通信部のタイムスタンプに基づいて、各部の処理時間を算出する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
仮想化されたコントローラと、前記コントローラと他の機器との通信を管理するホスト通信部と、を実行するホストマシンと、
前記ホストマシンの処理の遅延を計測する遅延調査用パケットを前記ホストマシンに入力し、前記ホストマシンで処理された遅延調査用パケットを分析して、前記ホストマシンの処理の遅延を計測する遅延分析装置と、を有し、
前記コントローラは、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記ホスト通信部に出力し、
前記ホスト通信部は、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記遅延分析装置に出力し、
前記遅延分析装置は、前記遅延調査用パケットに書き込まれた、前記コントローラのタイムスタンプと、前記ホスト通信部のタイムスタンプに基づいて、各部の処理時間を算出する遅延分析システム。
【請求項2】
前記遅延分析装置は、前記ホストマシンから出力された前記遅延調査用パケットの受信時のタイムスタンプを取得する請求項1に記載の遅延分析システム。
【請求項3】
前記コントローラは、前記遅延調査用パケットの受信時に、タイムスタンプを格納する領域を前記遅延調査用パケットに作成し、タイムスタンプを格納する領域に、作成時のタイムスタンプを書き込む請求項1に記載の遅延分析システム。
【請求項4】
前記コントローラは、仮想化され、他の機器とのデータの送受信を行う仮想通信インターフェースを有し、
仮想通信インターフェースは、前記遅延調査用パケットの通信時に、通信時のタイムスタンプを前記遅延調査用パケットに書き込む請求項1に記載の遅延分析システム。
【請求項5】
前記コントローラは、前記遅延調査用パケットを作成する調査パケット作成部を有し、
前記調査パケット作成部は、タイムスタンプを格納する領域を前記遅延調査用パケットに作成し、タイムスタンプを格納する領域に、前記遅延調査用パケットの作成時のタイムスタンプを書き込む請求項1に記載の遅延分析システム。
【請求項6】
前記遅延分析装置は、前記遅延調査用パケットを作成する調査パケット作成部を有し、
前記調査パケット作成部は、タイムスタンプを格納する領域を前記遅延調査用パケットに作成し、タイムスタンプを格納する領域に、前記遅延調査用パケットの作成時のタイムスタンプを書き込む請求項1に記載の遅延分析システム。
【請求項7】
前記コントローラは、タイムスタンプを書き込む前記遅延調査用パケットであるか否かを判定し、
前記ホスト通信部は、タイムスタンプを書き込む前記遅延調査用パケットであるか否かを判定する請求項1から請求項6のいずれか一項に記載の遅延分析システム。
【請求項8】
前記ホストマシンは、前記遅延分析装置とデータの送受信を行う通信部を有し、
前記通信部は、前記遅延調査用パケットの通信時に、通信時のタイムスタンプを前記遅延調査用パケットに書き込む請求項1から請求項6のいずれか一項に記載の遅延分析システム。
【請求項9】
前記タイムスタンプの少なくとも1つは、遅延要因調査情報とともに書き込まれ、
前記遅延分析装置は、前記遅延調査用パケットに書き込まれた、前記タイムスタンプに加え、遅延要因調査情報に基づいて、各部での処理の遅延を評価する請求項1から請求項6のいずれか一項に記載の遅延分析システム。
【請求項10】
前記ホストマシン及び前記遅延分析装置と接続し、前記ホストマシン及び前記遅延分析装置と時刻情報を同期させる同期装置をさらに備える請求項1から請求項6のいずれか一項に記載の遅延分析システム。
【請求項11】
仮想化されたコントローラと、前記コントローラと他の機器との通信を管理するホスト通信部と、を実行するホストマシンの制御の遅延を遅延計測装置で分析する遅延分析方法であって、
前記ホストマシンの処理の遅延を計測する遅延調査用パケットを前記ホストマシンに入力するステップと、
前記コントローラが、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記ホスト通信部に出力するステップと、
前記ホスト通信部が、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記遅延分析装置に出力するステップと、
前記遅延調査用パケットに書き込まれた、前記コントローラのタイムスタンプと、前記ホスト通信部のタイムスタンプに基づいて、各部の処理時間を算出するステップと、を含む遅延分析方法。
【請求項12】
仮想化されたコントローラと、前記コントローラと他の機器との通信を管理するホスト通信部と、を実行するホストマシンの制御の遅延を遅延計測装置で分析する遅延分析システムに、
前記ホストマシンの処理の遅延を計測する遅延調査用パケットを前記ホストマシンに入力するステップと、
前記コントローラが、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記ホスト通信部に出力するステップと、
前記ホスト通信部が、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記遅延分析装置に出力するステップと、
前記遅延調査用パケットに書き込まれた、前記コントローラのタイムスタンプと、前記ホスト通信部のタイムスタンプに基づいて、各部の処理時間を算出するステップと、を実行させる遅延分析プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、遅延分析システム、遅延分析方法及び遅延分析プログラムに関する。
【背景技術】
【0002】
制御対象の動作を制御する装置として、1つの演算部で複数の制御機能を仮想化した仮想化コントローラを用いるホストマシン(制御装置)がある。制御装置は、複数の仮想化コントローラの複数の制御ソフトで複数の制御機能を実行し、かつ、複数の仮想化コントローラのデータをオペレーティングシステムソフト(OS(Operating System)ソフト)の仮想化制御部またはOS上もしくはOSと独立した仮想化ソフトウェア(ハイパーバイザー等)で処理して、制御対象の機器に制御信号を出力する(特許文献1参照)。また、特許文献1では、複数の仮想化した制御の負荷を予測し、負荷の分散処理を行うことが記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、負荷を分散した処理を行っても、仮想化コントローラを効率化できない場合がある。ここで、インターネット通信網の通信遅延を評価する処理として、各部での処理を別の監視装置で監視する方法がある。仮想化コントローラで監視装置を設ける場合、ホストマシンでの一定の処理負荷が生じ、実際の処理の状態と異なる状態での評価となる。
【0005】
本開示は、上記の課題に鑑みてなされたものであって、ホストマシンの遅延をより高い精度で分析できる遅延分析システム、遅延分析方法及び遅延分析プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示は、仮想化されたコントローラと、前記コントローラと他の機器との通信を管理するホスト通信部と、を実行するホストマシンと、前記ホストマシンの処理の遅延を計測する遅延調査用パケットを前記ホストマシンに入力し、前記ホストマシンで処理された遅延調査用パケットを分析して、前記ホストマシンの処理の遅延を計測する遅延分析装置と、を有し、前記コントローラは、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記ホスト通信部に出力し、前記ホスト通信部は、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記遅延分析装置に出力し、前記遅延分析装置は、前記遅延調査用パケットに書き込まれた、前記コントローラのタイムスタンプと、前記ホスト通信部のタイムスタンプに基づいて、各部の処理時間を算出する遅延分析システムを提供する。
【0007】
本開示は、仮想化されたコントローラと、前記コントローラと他の機器との通信を管理するホスト通信部と、を実行するホストマシンの制御の遅延を遅延計測装置で分析する遅延分析方法であって、前記ホストマシンの処理の遅延を計測する遅延調査用パケットを前記ホストマシンに入力するステップと、前記コントローラが、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記ホスト通信部に出力するステップと、前記ホスト通信部が、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記遅延分析装置に出力するステップと、前記遅延調査用パケットに書き込まれた、前記コントローラのタイムスタンプと、前記ホスト通信部のタイムスタンプに基づいて、各部の処理時間を算出するステップと、を含む遅延分析方法を提供する。
【0008】
本開示は、仮想化されたコントローラと、前記コントローラと他の機器との通信を管理するホスト通信部と、を実行するホストマシンの制御の遅延を遅延計測装置で分析する遅延分析システムに、前記ホストマシンの処理の遅延を計測する遅延調査用パケットを前記ホストマシンに入力するステップと、前記コントローラが、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記ホスト通信部に出力するステップと、前記ホスト通信部が、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記遅延分析装置に出力するステップと、前記遅延調査用パケットに書き込まれた、前記コントローラのタイムスタンプと、前記ホスト通信部のタイムスタンプに基づいて、各部の処理時間を算出するステップと、を実行させる遅延分析プログラムを提供する。
【発明の効果】
【0009】
上記構成とすることで、ホストマシンの遅延をより高い精度で分析できるという効果を奏する。
【図面の簡単な説明】
【0010】
【
図1】
図1は、遅延分析システムの構成の一例を示すブロック図である。
【
図2】
図2は、遅延分析システムの機能構成の一例を示すブロック図である。
【
図3】
図3は、遅延分析システムの処理の一例を示す説明図である。
【
図4】
図4は、遅延調査用パケットのデータ構成の一例を示す説明図である。
【
図5】
図5は、遅延時間の評価の一例を概念的に示す説明図である。
【
図6】
図6は、遅延時間の評価の一例を概念的に示す説明図である。
【
図7】
図7は、遅延時間の評価の一例を概念的に示す説明図である。
【
図8】
図8は、遅延時間の評価の一例を概念的に示す説明図である。
【
図9】
図9は、遅延分析システムの処理の一例を示す説明図である。
【
図10】
図10は、遅延分析システムの処理の一例を示す説明図である。
【発明を実施するための形態】
【0011】
以下に、本開示に係る実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、下記実施形態における構成要素には、当業者が置換可能かつ容易なもの、あるいは実質的に同一のものが含まれる。さらに、以下に記載した構成要素は適宜組み合わせることが可能であり、また、実施形態が複数ある場合には、各実施形態を組み合わせることも可能である。
【0012】
図1は、遅延分析システムの構成の一例を示すブロック図である。遅延分析システム10は、ホストマシン12と、遅延分析装置14と、同期装置16と、を有する。遅延分析システム10は、ホストマシン12の各部での処理時間を遅延分析装置14で分析する。
【0013】
ホストマシン12は、複数の制御を実行する仮想化コントローラの機能を実行する。ホストマシン12は、制御対象の機器と通信を行い、仮想化コントローラで生成した制御信号を制御対象の機器に出力する。ホストマシン12は、演算部20と、記憶部22と、通信部24と、を有する。
【0014】
演算部20は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)等の集積回路(プロセッサ)と、作業領域となるメモリとを含み、これらのハードウェア資源を用いて各種プログラムを実行することによって各種処理を実行する。具体的に、演算部20は、記憶部22に記憶されているプログラムを読み出してメモリに展開し、メモリに展開されたプログラムに含まれる命令をプロセッサに実行させることで、各種処理を実行する。
【0015】
記憶部22は、磁気記憶装置や半導体記憶装置等の不揮発性を有する記憶装置からなり、各種のプログラムおよびデータを記憶する。通信部24は、通信インターフェースを用いて、データの送信を行う。通信部24は、外部機器と通信を行い取得した各種データ、プログラムを記憶部22に送り、保存する。通信部24は、有線の通信回線で外部機器と接続しても、無線の通信回線で外部機器と接続してもよい。
【0016】
遅延分析装置14は、ホストマシン12の内部で実行される各部の処理時間の情報を取得し、処理の遅延の発生を分析する装置である。遅延分析装置14は、入力部30と、出力部32と、演算部34と、記憶部36と、通信部38と、を含む。
【0017】
入力部30は、キーボード及びマウス、タッチパネル、またはオペレータからの発話を集音するマイク等の入力装置を含み、オペレータが入力装置に対して行う操作に対応する信号を演算部34へ出力する。出力部32は、ディスプレイ等の表示装置を含み、演算部34から出力される表示信号に基づいて、処理結果や処理対象の画像等、各種情報を含む画面を表示する。また、出力部32は、データを記録媒体で出力する記録装置を含んでもよい。通信部38は、通信インターフェースを用いて、データの送受信を行う。
【0018】
演算部34は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)等の集積回路(プロセッサ)と、作業領域となるメモリとを含み、これらのハードウェア資源を用いて各種プログラムを実行することによって各種処理を実行する。具体的に、演算部34は、記憶部36に記憶されているプログラムを読み出してメモリに展開し、メモリに展開されたプログラムに含まれる命令をプロセッサに実行させることで、各種処理を実行する。
【0019】
記憶部36は、磁気記憶装置や半導体記憶装置等の不揮発性を有する記憶装置からなり、各種のプログラムおよびデータを記憶する。通信部38は、外部機器と通信を行い取得した各種データ、プログラムを記憶部36に送り、保存する。通信部38は、有線の通信回線で外部機器と接続しても、無線の通信回線で外部機器と接続してもよい。
【0020】
同期装置16は、ホストマシン12と、遅延分析装置14と通信を行い、ホストマシン12と、遅延分析装置14との時刻機能を同期させる。同期装置16は、PTP(Precision Time Protocol)等の高精度絶対時刻同期手法で、ホストマシン12と、遅延分析装置14の時刻機能を同期させる。ホストマシン12と、遅延分析装置14は、同期装置16から取得する情報に基づいて時刻同期を行うソフト(プログラム)が入力され、同期処理が行われる。
【0021】
図2は、遅延分析システムの機能構成の一例を示すブロック図である。ホストマシン12は、複数の仮想化コントローラ40と、仮想化ホストOS部42とNIC(Network Interface Card)44と、を有する。ここで、仮想化OSとは、仮想化制御部を有するホストOS、もしくはホストOSと独立した仮想化ソフトウェア(ハイパーバイザー等)を含めたシステムソフトウェアを指す。複数の仮想化コントローラ40と、仮想化ホストOS部42とは、記憶部22に記憶されるプログラムを演算部20で実行することで実現される機能である。NIC44は、通信部24で実現される機能である。NIC44は、仮想化コントローラ40と他の機器との通信を管理するホスト通信部となる。
【0022】
仮想化コントローラ40は、複数の制御ソフト50と、遅延調査用パケット送信プログラム51と、通信インターフェース52と、を有する。なお、本実施形態では制御ソフト50を複数としたが、1つでもよい。また、各仮想化コントローラ40で実行される制御ソフト50は、同じでも異なってもよい。
【0023】
制御ソフト50は、仮想化コントローラ40に設定される機能を実行するプログラムである。複数の制御ソフト50は、それぞれの機能を実行し、コントローラとしての機能を実現する。制御ソフト50は、仮想化ホストOS部42を介して取得したデータに基づいて、処理を実行し、算出した制御情報を出力する。仮想化コントローラ40は、複数の制御ソフト50を並行して処理しても、連動させて処理してもよい。
【0024】
遅延調査用パケット送信プログラム51は、ホストマシン12の処理の遅延を計測するために用いる遅延調査用パケットを作成し、送信するプログラムである。遅延調査用パケット送信プログラム51は、調査パケット作成部となる。遅延調査用パケットは、ホストマシン12の処理の遅延を計測する処理を実行させる命令と、各部で取得した遅延を評価するための情報を格納する領域と、を含む。遅延調査用パケット送信プログラム51は、仮想化コントローラ40で実行される制御の処理時間の遅延を評価する処理を実行させる遅延調査用パケットを作成する。
【0025】
通信インターフェース52は、仮想化された通信の接続部であり、仮想化ホストOS部42と通信を行う。
【0026】
仮想化ホストOS部42は、各仮想化コントローラ40の通信インターフェース52と通信を行い、NIC44と通信を行う。仮想化ホストOS部42は、仮想ブリッジ60と通信回線62がソフトウェア的に接続されたネットワークであり、仮想化コントローラ40同士のデータの送受信、各仮想化コントローラ40とNIC44とのデータの送受信の処理を行う。仮想ブリッジ60は、通信回線62の中継を行う。仮想化ホストOS部42は、通信回線62の接続関係を変更可能であり、仮想化コントローラ40同士の経路、各仮想化コントローラ40とNIC44との経路を変更することができる。
【0027】
NIC44は、外部の機器とデータの送受信を行う接続部である。NIC44は、有線、無線のいずれで外部の機器と通信してもよい。NIC44は、通信プロトコルに基づいて、外部の機器とIDの交換等を行い、コネクションを確立する処理も実行する。NIC44は、遅延分析装置14や、ホストマシン12の制御対象の機器と接続する。
【0028】
遅延分析装置14は、パケット受信部70と、解析部72と、遅延調査用パケット送信プログラム74と、NIC76と、を含む。パケット受信部70と、解析部72と、遅延調査用パケット送信プログラム74との機能は、記憶部36に記憶されるプログラムを演算部34で実行することで実現される機能である。NIC76は、通信部38で実現される機能である。
【0029】
パケット受信部70は、評価対象の経路を通過した遅延調査用パケットを受信する。パケット受信部70は、受信した遅延調査用パケットを解析部72に出力する。
【0030】
解析部72は、パケット受信部70から出力された遅延調査用パケットを解析し、遅延調査用パケットが通過した各部での処理タイミングの情報を取得する。解析部72は、取得した各部の処理タイミングの情報に基づいて、仮想化コントローラ40を含むホストマシン12の各部、ホストマシン12と通信を行う機器の各部での処理の遅延を分析する。
【0031】
遅延調査用パケット送信プログラム74は、ホストマシン12の処理の遅延を計測するために用いる遅延調査用パケットを作成し、送信するプログラムである。遅延調査用パケット送信プログラム74は、調査パケット作成部となる。遅延調査用パケット送信プログラム74は、遅延分析装置14からホストマシン12に出力し、仮想化コントローラ40に到達し、仮想化コントローラ40から遅延分析装置14に出力される各処理の時間を計測する遅延調査用パケットを作成する。
【0032】
NIC76は、外部の機器とデータの送受信を行う接続部である。NIC76は、有線、無線のいずれで外部の機器と通信してもよい。NIC76は、通信プロトコルに基づいて、外部の機器とIDの交換等を行い、コネクションを確立する処理も実行する。NIC76は、ホストマシン12と接続する。
【0033】
次に、
図3を用いて、遅延分析システムの処理の一例について説明する。
図3は、遅延分析システムの処理の一例を示す説明図である。
図3では、1つの仮想化コントローラの遅延(処理時間)のみを評価する場合を示すが、複数の仮想化コントローラのそれぞれについて同様の処理を実行することができる。
【0034】
図3に示す例は、仮想化コントローラ40の遅延調査用パケット送信プログラム51で遅延調査用パケットを作成し、処理を実行する。ホストマシン12、遅延分析装置14は、遅延調査用パケットを処理する各部にタイムスタンプ部82、84、86、88を有する。タイムスタンプ部82、84、86、88は、各部の制御機能の一部の機能である。タイムスタンプ部82は、遅延調査用パケット送信プログラム51に含まれる。タイムスタンプ部84は、通信インターフェース52に含まれる。タイムスタンプ部86は、NIC44に含まれる。タイムスタンプ部88は、NIC76に含まれる。なお、タイムスタンプ部は、処理時間を計測したい対象に配置すればよい。例えば、仮想化ホストOS部42の仮想ブリッジにも設けてもよい。タイムスタンプ部82、84、86、88は、通過する遅延調査用パケットに通過時の時刻を示す情報を書き込む。
【0035】
図3に示す例の遅延調査用パケットは、遅延調査用パケット送信プログラム51で作成され、データ経路100で各部を通過して、パケット受信部70に到達する。具体的には、遅延調査用パケットは、遅延調査用パケット送信プログラム51で作成されたのち、通信インターフェース52を通過して、仮想化ホストOS部42を通過し、NIC44から、遅延分析装置14に出力される。遅延調査用パケットは、NIC76で受信され、パケット受信部70に到達する。
【0036】
タイムスタンプ部82は、遅延調査用パケット送信プログラムで作成され、通信インターフェース52に出力される遅延調査用パケットに対して打刻処理102を行う。タイムスタンプ部84は、通信インターフェース52から仮想化ホストOS部42に出力される遅延調査用パケットに対して打刻処理104を行う。タイムスタンプ部86は、NIC44からNIC76に出力される遅延調査用パケットに対して打刻処理106を行う。タイムスタンプ部88は、NIC76からパケット受信部70に出力される遅延調査用パケットに対して打刻処理108を行う。
【0037】
図4は、遅延調査用パケットのデータ構成の一例を示す説明図である。遅延調査用パケット90は、データ経路100を通過し、打刻処理102、104、106、108が行われることで、複数のタイムスタンプ92、94、96、98のデータが格納される。タイムスタンプ92、94、96、98は、打刻処理102、104、106、108が行われた時刻が含まれる。遅延調査用パケットは、データ経路100が規定されているため、打刻したタイムスタンプ部の識別情報を含めなくてもよい。識別情報を時刻順で処理することで、各部の通過時間を検出することができる。ここで、遅延調査用パケットは、タイムスタンプを追加するパケットのペイロードを、あらかじめタイムスタンプを追加する領域を空けておき、各タイムスタンプ取得地点で決められた領域に追加するようにしてもよい。タイムスタンプを追加するパケットの判別方法は、ペイロードに判別するためのコードをソケット作成時に追加するようにすることができる。これにより、各タイムスタンプ取得地点にてそのコードを参照し判断することができる。
【0038】
遅延分析システム10は、
図3に示す処理を繰り返し実行し、各部の処理時間の情報が記憶された所定数遅延調査用パケットを取得する。ここで、繰り返し処理の回数は、特に限定されないが、例えば、数千回から数万回である。遅延分析装置14は、同じ経路、同じ処理を、繰り返し実行した情報に基づいて、各部での処理時間を算出する。具体的には、各部のタイムスタンプの時間の差分に基づいて、各部の処理時間を算出する。
【0039】
図5から
図8は、それぞれ遅延時間の評価の一例を概念的に示す説明図である。遅延分析装置14は、解析部72で各部のタイムスタンプから各部での処理時間を算出する。具体的には、タイムスタンプの時刻の差分から、各タイムスタンプの間で実行した処理の処理時間を算出する。遅延分析装置14は、処理毎に処理時間の統計を算出する。算出結果は、例えば、
図5から
図8のようになる。
図5から
図8は、それぞれ、横軸が処理時間、縦軸が頻度(回数)となる。
図5、
図6に示すように、処理時間にばらつきが少ない場合、適切な処理が行われていると判定できる。また、
図6の処理が、
図5の処理よりも時間がかかる処理という判定もできる。一方で、
図7に示すように、処理時間に変動が多い場合、遅延が生じる場合があると判断できる。また、
図8に示す範囲120の計測点のように、突発的に遅延が発生することも検出することができる。遅延分析装置14は、遅延時間に対して閾値を設定し、閾値を基準に遅延を判定してもよい。例えば、遅延分析装置14は、閾値を超える遅延が発生した処理の回数が設定した回数以上の場合遅延が発生していると判定する。また、遅延時間の平均値に対して閾値を設定して、全体の遅延時間に基づいて判定してもよい。また、遅延分析装置14は、分析結果に基づいて遅延が発生していると判定した場合、警告を出力してもよい。また、遅延分析装置14は、リアルタイムで処理時間を算出し、計測した遅延時間が閾値を超えた場合、警告を出力してもよい。つまり、複数回の処理に限定されず、1回の処理を判定してもよい。
【0040】
遅延分析システム10は、分析対象のホストマシン12に対して、遅延時間を分析するための遅延調査用パケットを入力し、分析対象の処理部で遅延調査用パケットを処理し、かつ、処理時のタイムスタンプを遅延調査用パケットに処理部で書き込む。ここで、処理部は、データを処理する部分と、データを送受信する部分の両方を含む。遅延分析システム10は、遅延分析装置14でタイムスタンプが格納された遅延調査用パケットのタイムスタンプの時間差を算出することで、データ経路100のタイムスタンプの打刻時点の間の処理にかかった時間を算出することができ、それぞれの処理部での時間を算出することができる。これにより、ホストマシン12の各部の処理の遅延時間を検出することができる。
【0041】
遅延分析システム10は、ホストマシン12の仮想化された各処理部では、タイムスタンプを打刻する処理のみで、各処理部の遅延時間を算出することができる。また、遅延時間分析装置12は、遅延調査用パケットの情報を分析することで、ホストマシン12の遅延時間を分析することができる。これにより、従来の処理のようにホストマシンで処理時間の算出や、処理の監視ログの取得処理等の処理が不要となるため、ホストマシン12の演算部20での演算処理の増加を抑制しつつ、遅延時間の算出が行うことができる。また、ホストマシン12の演算部20で、遅延時間の算出のための処理を少なくできることで、ホストマシン12の各部の処理をより高い精度で分析することができる。各処理部での遅延状態を高い精度で分析でき、遅延が生じている箇所が把握できることで、仮想化コントローラ、仮想化ホストOS部の、仮想化した制御部の接続関係や配置、設定を適切に調整し、ホストマシン12の遅延を低下する改良をより簡単に行うことができる。
【0042】
また、遅延分析システム10は、タイムスタンプ部82、88を設け、遅延時間の判定の遅延調査用パケットの処理開始時と、処理終了時のタイムスタンプを記憶することで、ホストマシン12の各部での処理時間をより適切に検出することができる。
【0043】
また、タイムスタンプ部の打刻処理を含む処理時間は、各処理部での処理時間、データ経路100の通過に係る処理に対して十分に小さい時間である。このため、上述したように、遅延調査用パケットの処理の時間を高い精度で計測することができる。ここで、タイムスタンプ部の処理時間の影響を考慮する場合、タイムスタンプ部の前後でタイムスタンプを取得し、その差分からパケット判別・タイムスタンプ追加処理を計測することができる。また、評価対象のタイムスタンプ部の打刻処理を行う場合の遅延調査用パケットと、評価対象のタイムスタンプ部の打刻処理を行わない場合の遅延調査用パケットと、を取得し、全体の処理時間の差分を、評価対象のタイムスタンプ部の打刻処理の処理時間として、算出してもよい。
【0044】
遅延分析装置14は、遅延調査用パケットを複数回取得し、処理時間の分布を検出し、各処理での処理タイミングの揺らぎ(ジッタ)を分析することで、遅延要因箇所を特定することができる。
【0045】
なお、タイムスタンプの取得箇所は、本実施形態に限定されない。また、各処理部は、遅延調査用パケットの受信時と送信時のそれぞれについて、タイムスタンプを打刻してもよい。これにより、1つの処理部の処理にかかった時間を評価することができる。
【0046】
また、本実施形態では、時刻情報であるタイムスタンプを遅延調査用パケットに書き込んだが、遅延調査用パケットにさらに遅延要因調査用情報を加えてもよい。遅延要因調査用情報は、遅延調査用パケット送信プログラムが遅延調査用パケット作成時に書き込んでも、ホストマシン12、遅延分析装置14の各処理部のタイムスタンプ部が、打刻処理と共に書き込んでもよい。遅延要因調査用情報としては、ソフトウェアのループ回数、変数の値、CPU使用率、内部エラーコードなどがある。遅延要因調査用情報を遅延調査用パケットに加えることで、遅延分析装置14で各処理部での遅延状態をより高精度で分析することができる。例えば、遅延要因調査用情報としてソフトウェアのループ回数情報をパケットに追加した場合に、遅延の大きい箇所でループ回数が大きい場合、ループ回数を減らして一度に処理する量を分散化するなどの遅延低減対策を分析結果として出力できる。また、遅延要因調査用情報をホストマシンの仮想化コントローラと、遅延分析装置の両方で取得することで、処置遅延が発生した場合に、遅延要因調査用情報から仮想化コントローラ、遅延分析装置のそれぞれ、または両方が関連した遅延要因の分析できる。
【0047】
遅延調査用パケット送信プログラムは、各部でのデータの送受信の処理時間を計測するために、制御ソフト50で実行する処理の指令が含まれない遅延調査用パケットを作成してもよい。また、遅延調査用パケット送信プログラムは、各部での処理時間も比較するために、制御ソフト50での処理が実行する命令を含む遅延調査用パケットを作成してもよい。
【0048】
図9は、遅延分析システムの処理の一例を示す説明図である。
図9に示す例は、仮想化コントローラ40の遅延調査用パケット送信プログラム51で遅延調査用パケットを作成し、制御ソフトで処理を実行する。
【0049】
図9に示す例の遅延調査用パケットは、遅延調査用パケット送信プログラム51で作成され、データ経路140で各部を通過して、パケット受信部70に到達する。具体的には、遅延調査用パケットは、遅延調査用パケット送信プログラム51で作成されて、制御ソフト50に入力される。遅延調査用パケットは、制御ソフト50で処理され、遅延調査用パケット送信プログラム51、通信インターフェース52を通過して、仮想化ホストOS部42を通過し、NIC44から、遅延分析装置14に出力される。遅延調査用パケットは、NIC76で受信され、パケット受信部70に到達する。
【0050】
タイムスタンプ部82、84、86、88は、遅延調査用パケットの検出した場合、打刻処理を行う遅延調査用パケットか、打刻処理をしない遅延調査用パケットかを判定する。タイムスタンプ部82、84、86、88は、遅延調査用パケット送信プログラム51で作成された遅延調査用パケットは、打刻処理する遅延調査用パケットと判定する。タイムスタンプ部82は、遅延調査用パケット送信プログラム51で作成され、通信インターフェース52に出力される遅延調査用パケットに対して打刻処理102を行う。タイムスタンプ部84は、通信インターフェース52から仮想化ホストOS部42に出力される遅延調査用パケットに対して打刻処理104を行う。タイムスタンプ部86は、NIC44からNIC76に出力される遅延調査用パケットに対して打刻処理106を行う。タイムスタンプ部88は、NIC76からパケット受信部76に出力される遅延調査用パケットに対して打刻処理108を行う。
【0051】
図9に示すデータ経路140の遅延時間を分析することで、制御ソフト51で実行される処理の遅延調査用パケットが送られるデータ経路142の遅延時間を分析することができる。ここで、データ経路142は、制御ソフト50で処理し、通信インターフェース52を通過して、仮想化ホストOS部42を通過し、NIC44から、制御対象に出力される制御パケット、つまり遅延調査用ではないパケットである。
【0052】
このように、制御ソフト50で処理を実行する遅延調査用パケットとすることで、制御ソフト50の遅延時間も分析することができる。
【0053】
データ経路140で送信される遅延調査用パケットは、制御ソフト50で実行される処理が、データ経路142で送信される制御パケットと同じ処理となるパケットとすることが好ましい。これにより、実際の処理の制御ソフト50の遅延を分析することができる。
【0054】
遅延分析システム10は、タイムスタンプ部82、84、86、88で、打刻処理を行う遅延調査用パケットか否かを判定することで、仮想化コントローラ40が対象を制御する遅延調査用パケット、つまり、データ経路142で通過する遅延調査用パケットに打刻処理を行うことが無くなり、ホストマシン12の遅延分析時以外の制御に生じる影響を少なくすることができる。
【0055】
上記実施形態では、1つの仮想化コントローラの遅延(処理時間)のみを評価したが、複数の仮想化コントローラで連動する制御を行う場合も同様に遅延時間を評価できる。例えば、遅延調査用パケットが、1つの仮想化コントローラ40を通過して、仮想化ホストOS部42に出力された後、別の仮想化コントローラ40に入力され、通過して、仮想化ホストOS部42に出力された後、パケット受信部70に出力される経路とすることもできる。この場合も通過時にタイムスタンプを遅延調査用パケットに書き込むことで、解析部72で、各処理の遅延時間を分析することができる。
【0056】
図10は、遅延分析システムの処理の一例を示す説明図である。
図10に示す処理は、遅延分析装置14の遅延調査用パケット作成プログラム74で遅延調査用パケットを作成して、ホストマシン12の遅延を分析する例を示している。ホストマシン12、遅延分析装置14は、遅延調査用パケットを処理する各部にタイムスタンプ部84、86、88、89を有する。タイムスタンプ部89は、制御ソフト50に含まれる。
【0057】
図10に示す例の遅延調査用パケットは、遅延調査用パケット送信プログラム74で作成され、データ経路150で各部を通過して、ホストマシン12を通過した後、パケット受信部70に到達する。具体的には、遅延調査用パケットは、遅延調査用パケット送信プログラム74で作成されたのち、NIC76からNIC44に出力され、仮想化ホストOS部42を通過して、通信インターフェース52を通過して、制御ソフト51に到達する。遅延調査用パケットは、制御ソフト51で処理された後、通信インターフェース52を通過して、仮想化ホストOS部42を通過し、NIC44から、遅延分析装置14に出力される。遅延調査用パケットは、NIC76で受信され、パケット受信部70に到達する。
【0058】
タイムスタンプ部88は、NIC76からNIC44に出力される遅延調査用パケットに対して打刻処理151を行う。タイムスタンプ部86は、NIC44から仮想化ホストOS部42に出力される遅延調査用パケットに対して打刻処理152を行う。タイムスタンプ部84は、通信インターフェース52から制御ソフト50に出力される遅延調査用パケットに対して打刻処理154を行う。タイムスタンプ部140は、制御ソフト50が受信した遅延調査用パケットに対して打刻処理156を行う。タイムスタンプ部140は、制御ソフト50から通信インターフェース52に出力する遅延調査用パケットに対して打刻処理158を行う。タイムスタンプ部84は、通信インターフェース52からOS部42に出力される遅延調査用パケットに対して打刻処理160を行う。タイムスタンプ部86は、NIC44からNIC76に出力される遅延調査用パケットに対して打刻処理162を行う。タイムスタンプ部88は、NIC76からパケット受信部70に出力される遅延調査用パケットに対して打刻処理164を行う。
【0059】
遅延分析システム10は、分析処理装置12の遅延調査用パケット送信プログラム74で遅延調査用パケットを作成し、ホストマシン12に入力し、ホストマシン12で処理を行い、ホストマシン12から分析処理装置12に出力するデータ経路150で遅延調査用パケットを処理して、タイムスタンプを取得することで、仮想化コントローラ40の制御対象の機器から、遅延調査用パケットが入力され、仮想化コントローラ40で処理して、制御対象の機器に遅延調査用パケットを出力する経路と同様の処理で生じる遅延時間を計測することができる。また、仮想化コントローラ40の制御対象の機器から、遅延調査用パケットが入力され、仮想化コントローラ40に到達する前の遅延時間も分析することができる。これにより、仮想化コントローラ40の制御対象の機器との処理で生じる遅延時間をより広範囲に分析することができる。遅延分析システム10は、制御対象への出力指令の処理遅延だけでなく、制御対象からのセンサ入力信号等の処理遅延も分析することができる。
【0060】
本実施形態の遅延分析システム10は、同期装置16を用いることで、ホストマシン12と遅延分析装置14との時刻同期を高い精度で行うことができる。各仮想化制御コントローラ40、ホストマシン12、遅延分析装置14のそれぞれの処理部で設定される時刻の精度の違いや時差を考慮する必要が無くなり、処理時間の算出を容易とすることができる。なお、本実施形態では、同期装置16をホストマシン12、遅延分析装置14とは別体で設けたが、ホストマシン12、遅延分析装置14のいずれかと一体としてもよい。つまり、時刻を同期させる機能をホストマシン12、遅延分析装置14に設けてもよい。また、遅延分析システム10は、同期装置16を設けることが好ましいが設けない構成としてもよい。
【0061】
本開示は、以下の発明を開示している。なお、下記に限定されない。
(1)仮想化されたコントローラと、前記コントローラと他の機器との通信を管理するホスト通信部と、を実行するホストマシンと、前記ホストマシンの処理の遅延を計測する遅延調査用パケットを前記ホストマシンに入力し、前記ホストマシンで処理された遅延調査用パケットを分析して、前記ホストマシンの処理の遅延を計測する遅延分析装置と、を有し、前記コントローラは、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記ホスト通信部に出力し、前記ホスト通信部は、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記遅延分析装置に出力し、前記遅延分析装置は、前記遅延調査用パケットに書き込まれた、前記コントローラのタイムスタンプと、前記ホスト通信部のタイムスタンプに基づいて、各部の処理時間を算出する遅延分析システム。
【0062】
これにより、ホストマシンの仮想化された各処理部では、タイムスタンプを打刻する処理のみで、各処理部の遅延時間を算出することができる。また、遅延時間分析装置は、遅延調査用パケットの情報を分析することで、ホストマシンの遅延時間を分析することができる。これにより、従来の処理のようにホストマシンで処理時間の算出や、処理の監視ログの取得処理等の処理が不要となるため、ホストマシンの演算部での演算処理の増加を抑制しつつ、遅延時間の算出が行うことができる。
【0063】
(2)前記遅延分析装置は、前記ホストマシンから出力された前記遅延調査用パケットの受信時のタイムスタンプを取得する(1)に記載の遅延分析システム。これにより、各部での処理時間をより適切に検出することができる。
【0064】
(3)前記コントローラは、前記遅延調査用パケットの受信時に、タイムスタンプを格納する領域を前記遅延調査用パケットに作成し、タイムスタンプを格納する領域に、作成時のタイムスタンプを書き込む(1)または(2)に記載の遅延分析システム。これにより、各部での処理時間をより適切に検出することができる。
【0065】
(4)前記コントローラは、仮想化され、他の機器とのデータの送受信を行う仮想通信インターフェースを有し、仮想通信インターフェースは、前記遅延調査用パケットの通信時に、通信時のタイムスタンプを前記遅延調査用パケットに書き込む(1)から(3)のいずれかに記載の遅延分析システム。これにより、各部での処理時間をより適切に検出することができる。
【0066】
(5)前記コントローラは、前記遅延調査用パケットを作成する調査パケット作成部を有し、前記調査パケット作成部は、タイムスタンプを格納する領域を前記遅延調査用パケットに作成し、タイムスタンプを格納する領域に、前記遅延調査用パケットの作成時のタイムスタンプを書き込む(1)または(2)に記載の遅延分析システム。これにより、各部での処理時間をより適切に検出することができる。
【0067】
(6)前記遅延分析装置は、前記遅延調査用パケットを作成する調査パケット作成部を有し、前記調査パケット作成部は、タイムスタンプを格納する領域を前記遅延調査用パケットに作成し、タイムスタンプを格納する領域に、前記遅延調査用パケットの作成時のタイムスタンプを書き込む(1)または(2)に記載の遅延分析システム。これにより、各部での処理時間をより適切に検出することができる。
【0068】
(7)前記コントローラは、タイムスタンプを書き込む前記遅延調査用パケットであるか否かを判定し、前記ホスト通信部は、タイムスタンプを書き込む前記遅延調査用パケットであるか否かを判定する(1)から(6)のいずれかに記載の遅延分析システム。これにより、ホストマシンの遅延分析時以外の制御に生じる影響を少なくすることができる。
【0069】
(8)前記ホストマシンは、前記遅延分析装置とデータの送受信を行う通信部を有し、前記通信部は、前記遅延調査用パケットの通信時に、通信時のタイムスタンプを前記遅延調査用パケットに書き込む(1)から(7)のいずれかに記載の遅延分析システム。これにより、各部での処理時間をより広範囲に検出することができる。
【0070】
(9)前記タイムスタンプの少なくとも1つは、遅延要因調査情報とともに書き込まれ、前記遅延分析装置は、前記遅延調査用パケットに書き込まれた、前記タイムスタンプに加え、遅延要因調査情報に基づいて、各部での処理の遅延を評価する(1)から(8)のいずれかに記載の遅延分析システム。これにより、各部での処理時間をより高精度で解析することができる。
【0071】
(10)前記ホストマシン及び前記遅延分析装置と接続し、前記ホストマシン及び前記遅延分析装置と時刻情報を同期させる同期装置をさらに備える(1)から(9)のいずれかに記載の遅延分析システム。これにより、各部での処理時間をより高精度で解析することができる。
【0072】
(11)仮想化されたコントローラと、前記コントローラと他の機器との通信を管理するホスト通信部と、を実行するホストマシンの制御の遅延を遅延計測装置で分析する遅延分析方法であって、前記ホストマシンの処理の遅延を計測する遅延調査用パケットを前記ホストマシンに入力するステップと、前記コントローラが、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記ホスト通信部に出力するステップと、前記ホスト通信部が、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記遅延分析装置に出力するステップと、前記遅延調査用パケットに書き込まれた、前記コントローラのタイムスタンプと、前記ホスト通信部のタイムスタンプに基づいて、各部の処理時間を算出するステップと、を含む遅延分析方法。
【0073】
これにより、ホストマシンの仮想化された各処理部では、タイムスタンプを打刻する処理のみで、各処理部の遅延時間を算出することができる。また、遅延時間分析装置は、遅延調査用パケットの情報を分析することで、ホストマシンの遅延時間を分析することができる。これにより、従来の処理のようにホストマシンで処理時間の算出や、処理の監視ログの取得処理等の処理が不要となるため、ホストマシンの演算部での演算処理の増加を抑制しつつ、遅延時間の算出が行うことができる。
【0074】
(12)仮想化されたコントローラと、前記コントローラと他の機器との通信を管理するホスト通信部と、を実行するホストマシンの制御の遅延を遅延計測装置で分析する遅延分析システムに、前記ホストマシンの処理の遅延を計測する遅延調査用パケットを前記ホストマシンに入力するステップと、前記コントローラが、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記ホスト通信部に出力するステップと、前記ホスト通信部が、前記遅延調査用パケットを処理し、かつ、タイムスタンプを前記遅延調査用パケットに書き込み、前記遅延分析装置に出力するステップと、前記遅延調査用パケットに書き込まれた、前記コントローラのタイムスタンプと、前記ホスト通信部のタイムスタンプに基づいて、各部の処理時間を算出するステップと、を実行させる遅延分析プログラム。
【0075】
これにより、ホストマシンの仮想化された各処理部では、タイムスタンプを打刻する処理のみで、各処理部の遅延時間を算出することができる。また、遅延時間分析装置は、遅延調査用パケットの情報を分析することで、ホストマシンの遅延時間を分析することができる。これにより、従来の処理のようにホストマシンで処理時間の算出や、処理の監視ログの取得処理等の処理が不要となるため、ホストマシンの演算部での演算処理の増加を抑制しつつ、遅延時間の算出が行うことができる。
【符号の説明】
【0076】
10 遅延分析システム
12 ホストマシン
14 遅延分析装置
16 同期装置
20、34 演算部
22、36 記憶部
24、38 通信部
30 入力部
32 出力部
40 仮想化コントローラ
42 仮想化ホストOS部
44、76 NIC
50 制御ソフト(仮想化制御部)
51、74 遅延調査用パケット送信プログラム
52 通信インターフェース(仮想化通信インターフェース)
60 仮想ブリッジ
62 通信回線
70 パケット受信部
72 解析部
82、84、86、88、89 タイムスタンプ部
90 遅延調査用パケット
92、94、96 タイムスタンプデータ
100、142、150 データ経路
102、104、106、108、151、152、154、156、158、160、162、164 打刻処理