(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023039500
(43)【公開日】2023-03-22
(54)【発明の名称】計算機システム及びデータ送信制御方法
(51)【国際特許分類】
G06F 13/00 20060101AFI20230314BHJP
G06F 13/14 20060101ALI20230314BHJP
【FI】
G06F13/00 357Z
G06F13/14 330B
G06F13/14 330G
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2021146630
(22)【出願日】2021-09-09
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】羽原 拓哉
(72)【発明者】
【氏名】齊藤 信一郎
【テーマコード(参考)】
5B089
【Fターム(参考)】
5B089GA11
5B089GB03
5B089GB10
5B089JA11
5B089KA05
5B089KC60
5B089MA03
5B089MA07
5B089MC06
(57)【要約】 (修正有)
【課題】データ処理の性能を向上させる、データフロー型アプリケーションに対するデータの割り振りを実現する計算機システム及びデータ送信制御方法を提供する。
【解決手段】計算機システムは、ソースオブジェクトからデータを取得し、当該データに対して所定の処理を実行して、ディスティネーションオブジェクトに送信する、複数の処理アプリケーションの各々から、処理アプリケーションのデータの送受信性能を評価する通信指標を取得し、通信指標に基づいて、複数の処理アプリケーションの各々の処理性能を表すリンク許容値を算出し、リンク許容値に基づいて、複数の処理アプリケーションに割り当てるデータ量に関する送信計画を生成し、送信計画に基づいて、複数の処理アプリケーションに対するデータの送信を制御する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
計算機システムであって、
プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有する、少なくとも一つの計算機を備え、
前記プロセッサは、
ソースオブジェクトからデータを取得し、当該データに対して所定の処理を実行して、ディスティネーションオブジェクトに送信する、複数の処理アプリケーションの各々から、前記処理アプリケーションのデータの送受信性能を評価する通信指標を取得し、
前記通信指標に基づいて、前記複数の処理アプリケーションの各々の処理性能を表すリンク許容値を算出し、
前記リンク許容値に基づいて、前記複数の処理アプリケーションに割り当てるデータ量に関する送信計画を生成し、
前記送信計画に基づいて、前記複数の処理アプリケーションに対するデータの送信を制御することを特徴とする計算機システム。
【請求項2】
請求項1に記載の計算機システムであって、
前記プロセッサは、
前記複数の処理アプリケーションの各々の前記リンク許容値を用いて、前記複数の処理アプリケーションの各々に送信するデータ量の比率を算出し、
前記複数の処理アプリケーションの各々に送信するデータ量の比率を含む前記送信計画を生成することを特徴とする計算機システム。
【請求項3】
請求項2に記載の計算機システムであって、
前記プロセッサは、
前記複数の処理アプリケーションの各々について、データ量が異なるテストデータを複数回送信することによって、前記ソースオブジェクトと前記処理アプリケーションとの間の第1データ転送量、及び前記処理アプリケーションと前記ディスティネーションオブジェクトとの間の第2データ転送量を、前記通信指標として取得し、
前記第2データ転送量以下であり、かつ、最も大きい前記第1データ転送量を前記リンク許容値として算出することを特徴とする計算機システム。
【請求項4】
請求項2に記載の計算機システムであって、
前記プロセッサは、
前記複数の処理アプリケーションの各々について、データ量が異なるテストデータを複数回送信することによって、前記処理アプリケーションが、前記ソースオブジェクトからデータを受信し、前記ディスティネーションオブジェクトへデータを送信するまでの転送時間を、前記通信指標として取得し、
前記転送時間の変化量が所定の範囲内であり、かつ、最も長い前記転送時間を前記リンク許容値として算出することを特徴とする計算機システム。
【請求項5】
請求項2に記載の計算機システムであって、
前記プロセッサは、前記送信計画を用いた、前記複数の処理アプリケーションに対するデータの送信の制御中に、前記通信指標が前記リンク許容値より大きいターゲット処理アプリケーションを検知した場合、前記ターゲット処理アプリケーション以外の前記複数の処理アプリケーションの前記リンク許容値に基づいて、前記送信計画を変更することを特徴とする計算機システム。
【請求項6】
請求項2に記載の計算機システムであって、
前記プロセッサは、
前記送信計画を用いた、前記複数の処理アプリケーションに対するデータの送信の制御中に、前記送信計画の再生成契機を監視し、
前記送信計画の再生成契機が検知された場合、前記送信計画を再度生成することを特徴とする計算機システム。
【請求項7】
請求項2に記載の計算機システムであって、
前記プロセッサは、取得する前記通信指標の指定を受け付けるためのインタフェース、及び前記送信計画を用いた、前記複数の処理アプリケーションに対するデータの送信の制御の状況を表示するためのインタフェースを提供することを特徴とする計算機システム。
【請求項8】
計算機システムが実行するデータ送信制御方法であって、
前記計算機システムは、プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有する、少なくとも一つの計算機を含み、
前記データ送信制御方法は、
前記プロセッサが、ソースオブジェクトからデータを取得し、当該データに対して所定の処理を実行して、ディスティネーションオブジェクトに送信する、複数の処理アプリケーションの各々から、前記処理アプリケーションのデータの送受信性能を評価する通信指標を取得する第1のステップと、
前記プロセッサが、前記通信指標に基づいて、前記複数の処理アプリケーションの各々の処理性能を表すリンク許容値を算出する第2のステップと、
前記プロセッサが、前記リンク許容値に基づいて、前記複数の処理アプリケーションに割り当てるデータ量に関する送信計画を生成する第3のステップと、
前記プロセッサが、前記送信計画に基づいて、前記複数の処理アプリケーションに対するデータの送信を制御する第4のステップと、を含むことを特徴とするデータ送信制御方法。
【請求項9】
請求項8に記載のデータ送信制御方法であって、
前記第3のステップは、
前記プロセッサが、前記複数の処理アプリケーションの各々の前記リンク許容値を用いて、前記複数の処理アプリケーションの各々に送信するデータ量の比率を算出するステップと、
前記プロセッサが、前記複数の処理アプリケーションの各々に送信するデータ量の比率を含む前記送信計画を生成するステップと、を含むことを特徴とするデータ送信制御方法。
【請求項10】
請求項9に記載のデータ送信制御方法であって、
前記第1のステップは、前記プロセッサが、前記複数の処理アプリケーションの各々について、データ量が異なるテストデータを複数回送信することによって、前記ソースオブジェクトと前記処理アプリケーションとの間の第1データ転送量、及び前記処理アプリケーションと前記ディスティネーションオブジェクトとの間の第2データ転送量を、前記通信指標として取得するステップを含み、
前記第2のステップは、前記プロセッサが、前記第2データ転送量以下であり、かつ、最も大きい前記第1データ転送量を前記リンク許容値として算出するステップを含むことを特徴とするデータ送信制御方法。
【請求項11】
請求項9に記載のデータ送信制御方法であって、
前記第1のステップは、前記プロセッサが、前記複数の処理アプリケーションの各々について、データ量が異なるテストデータを複数回送信することによって、前記処理アプリケーションが、前記ソースオブジェクトからデータを受信し、前記ディスティネーションオブジェクトへデータを送信するまでの転送時間を、前記通信指標として取得するステップを含み、
前記第2のステップは、前記プロセッサが、前記転送時間の変化量が所定の範囲内であり、かつ、最も長い前記転送時間を前記リンク許容値として算出するステップを含むことを特徴とするデータ送信制御方法。
【請求項12】
請求項9に記載のデータ送信制御方法であって、
前記プロセッサが、前記送信計画を用いた、前記複数の処理アプリケーションに対するデータの送信の制御中に、前記通信指標が前記リンク許容値より大きいターゲット処理アプリケーションを検知した場合、前記ターゲット処理アプリケーション以外の前記複数の処理アプリケーションの前記リンク許容値に基づいて、前記送信計画を変更するステップを含むことを特徴とするデータ送信制御方法。
【請求項13】
請求項9に記載のデータ送信制御方法であって、
前記プロセッサが、前記送信計画を用いた、前記複数の処理アプリケーションに対するデータの送信の制御中に、前記送信計画の再生成契機を監視するステップと、
前記送信計画の再生成契機が検知された場合、前記プロセッサが、前記送信計画を再度生成するステップと、を含むことを特徴とするデータ送信制御方法。
【請求項14】
請求項9に記載のデータ送信制御方法であって、
前記プロセッサが、取得する前記通信指標の指定を受け付けるためのインタフェースを提供するステップと、
前記プロセッサが、前記送信計画を用いた、前記複数の処理アプリケーションに対するデータの送信の制御の状況を表示するためのインタフェースを提供するステップと、を含むことを特徴とするデータ送信制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多重化されたデータフロー型アプリケーションの負荷分散技術に関する。
【背景技術】
【0002】
IoT(Internet of Things)の活用方法として、クラウドサービス上のマシンから、工場の現場等のエッジに配置された機器に至るまで様々な部位でデータ処理を行う分散コンピューティングの形態がある。近年、モノリシックなアプリケーションをデータ処理の機能ごとに細分化してパッケージ化するマイクロサービス化の動きが加速している。パッケージ化することによってハードウェア及びOS(Operating System)の制限がなくなるため、様々な環境で細分化されたアプリケーションを稼働させることができる。以下の説明では、細分化されたアプリケーションを単にアプリケーションとも記載する。
【0003】
アプリケーションは計算資源が豊富なクラウドサービス上で動作するとは限らず、エッジに存在する計算資源の乏しい機器で動作する可能性がある。計算資源の乏しい機器でアプリケーションを動作させる場合、アプリケーションの単位時間当たりに処理可能なデータ量が低下する。そこで、スケールアウトという技術が存在する。スケールアウトではアプリケーションのレプリカを生成し、複数で複数のアプリケーション並列で処理を実行させる。マイクロサービスアーキテクチャを採用するシステムの場合、実行負荷が高く、単位時間当たりに処理可能なデータ量が低下するアプリケーションのみ、レプリカを作成すればよい。レプリカを含む複数のアプリケーションに並列で処理を実行させることによって、単一のアプリケーションを動作させる場合より、システム全体のデータ処理のスループットを向上させることができる。
【0004】
アプリケーション及びそのレプリカは、クラウドサービス及びエッジ上の機器に限らず、Multi-access Edge Computingサーバ等の通信のレイヤに位置づけられる機器にも配置できる。また、ソフトウェア的に通信の制御が可能となることで、通信の帯域及び経路が容易に変更可能となる。
【0005】
このように、アプリケーションを配置する選択肢が多様な状況下では、アプリケーションの通信環境が時々刻々と変化する。マイクロサービスを構成するアプリケーション全体のデータ処理のスループットを向上させるためには、各アプリケーションが配置される環境の変化に追従する必要が生じる。
【0006】
環境変化へ追従するために、多重化され、かつ、分散配置されたアプリケーションの選択方法を工夫することが一案である。多重化されたアプリケーションが分散配置されるシステムでは、処理を実行するアプリケーションを選択する必要がある。データ処理の結果はいずれのアプリケーションを使用しても変わらないが、計算資源及び通信環境次第ではデータ処理のスループットが異なる。また、データフロー型アプリケーションではサーバ/クライアントの区別が明確なアプリケーションとは異なり、データフローの接続を意識してデータの格納及び取り出し双方で計算資源及び通信環境を考慮したアプリケーションの選択を行う必要がある。
【0007】
分散配置されたアプリケーションの中からデータ処理を行うアプリケーションを選択する技術として特許文献1及び特許文献2に記載の技術が知られている。
【0008】
特許文献1には、「データおよび当該データに対するアクセスログ情報を記憶する記憶部を備える複数のエッジサーバとの間で通信可能なストレージ管理装置にあって、各エッジサーバからアクセスログ情報を取得し、取得したアクセスログ情報に基づいて、各エッジサーバのデータ記憶部に記憶されたデータに対するアクセスの状況があらかじめ設定された基準を満たすか否かを判定し、アクセス状況が上記基準を満たさないと判定されたデータを転送対象として選択して、当該データが記憶されていた記憶部とは異なる他の記憶部に転送させるように制御する」ことが記載されている。
【0009】
特許文献2には、「受信したリクエストの転送先サーバが複数候補ある場合は、そのうち応答待ちリクエストの数が閾値に達していないサーバに対してリクエストを送信する。転送先サーバの全候補が応答待ちリクエスト数の閾値に達している場合は、そのリクエストをバッファに格納し、いずれかのサーバで応答待ちリクエスト数の閾値が下回るまで転送を待ち合わせる。さらに、リクエストまたはレスポンス単位で細粒度に個々のサーバへのリクエスト転送の可否を判定する。さらに、応答待ちリクエスト数が閾値に達していないサーバが複数ある場合は、各サーバの応答待ちリクエスト数に基づいてサーバを選択する」ことが記載されている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2020-91706号公報
【特許文献2】特開2008-40718号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
特許文献1に記載の技術は、データ取り出しの効率向上とストレージの有効利用を実現できる。しかし、データフロー型のアプリケーションの場合、格納したデータは均等に取り出すことが想定され、使用頻度の多寡が生じないため、特許文献1に記載の技術は効果を奏さない。特許文献2に記載の技術は、データ格納時のデータあふれを防ぐことができる。しかし、データ出力時の負荷については考慮されていないため、アプリケーションが分散配置されるシステムでは必ずしも効果を奏さない。
【0012】
本発明は、データ処理の性能を向上させる、多重化されたデータフロー型アプリケーションに対するデータの割当てを実現する技術を提供することを目的とする。
【課題を解決するための手段】
【0013】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、計算機システムであって、プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有する、少なくとも一つの計算機を備え、前記プロセッサは、ソースオブジェクトからデータを取得し、当該データに対して所定の処理を実行して、ディスティネーションオブジェクトに送信する、複数の処理アプリケーションの各々から、前記処理アプリケーションのデータの送受信性能を評価する通信指標を取得し、前記通信指標に基づいて、前記複数の処理アプリケーションの各々の処理性能を表すリンク許容値を算出し、前記リンク許容値に基づいて、前記複数の処理アプリケーションに割り当てるデータ量に関する送信計画を生成し、前記送信計画に基づいて、前記複数の処理アプリケーションに対するデータの送信を制御する。
【発明の効果】
【0014】
本発明によれば、システム全体のデータ処理のスループットを向上させる、多重化されたデータフロー型アプリケーションに対するデータの割当てを実現できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0015】
【
図1】実施例1のシステムの構成の一例を示す図である。
【
図2】実施例1の制御システムを構成する計算機の一例を示す図である。
【
図3】実施例1のユーザ入力部によって提示されるインタフェースの一例を示す図である。
【
図4】実施例1のユーザ出力部によって提示されるインタフェースの一例を示す図である。
【
図5】実施例1の制御システムの動作状態の遷移を示す図である。
【
図6】実施例1の計測結果情報のデータ構造の一例を示す図である。
【
図7】実施例1のリンク許容値情報のデータ構造の一例を示す図である。
【
図8】実施例1の制御システムがトレーニング状態で実行する処理を説明するフローチャートである。
【
図9】実施例1の制御システムが安定状態で実行する処理を説明するフローチャートである。
【
図10】実施例1の制御システムが高負荷状態で実行する処理を説明するフローチャートである。
【
図11】実施例1のシステムの制御対象のアプリケーションの構成例を示す図である。
【
図12A】実施例1の制御システムの通信指標の計測方法を説明する図である。
【
図12B】実施例1の制御システムの通信指標の計測方法を説明する図である。
【
図12C】実施例1の制御システムの通信指標の計測方法を説明する図である。
【
図13A】実施例1の計測結果情報の具体例を示す図である。
【
図13B】実施例1の計測結果情報の具体例を示す図である。
【
図13C】実施例1の計測結果情報の具体例を示す図である。
【
図14】実施例1のリンク許容値情報の具体例を示す図である。
【
図15A】実施例1の制御対象のアプリケーションの通信状態の一例を示す図である。
【
図15B】実施例1の制御対象のアプリケーションの通信状態の一例を示す図である。
【
図16】実施例2の計測結果情報のデータ構造の一例を示す図である。
【
図17A】実施例2の計測結果情報の具体例を示す図である。
【
図17B】実施例2の計測結果情報の具体例を示す図である。
【
図17C】実施例2の計測結果情報の具体例を示す図である。
【
図18】実施例2のリンク許容値情報の具体例を示す図である。
【
図19A】実施例2の制御対象のアプリケーションの通信状態の一例を示す図である。
【
図19B】実施例2の制御対象のアプリケーションの通信状態の一例を示す図である。
【
図19C】実施例2の制御対象のアプリケーションの通信状態の一例を示す図である。
【
図20】実施例2の制御対象のアプリケーションの通信状態の一例を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0017】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0018】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例0019】
図1は、実施例1のシステムの構成の一例を示す図である。
図2は、実施例1の制御システムを構成する計算機の一例を示す図である。
【0020】
システムは、制御システム1、送信アプリケーション2、処理アプリケーション3、及び受信アプリケーション4から構成される。送信アプリケーション2、処理アプリケーション3、及び受信アプリケーション4は、システムのデータの利用方法に応じて、送信アプリケーション2、処理アプリケーション3、受信アプリケーション4の内、複数の役割を兼ねる可能性がある。例えば、送信アプリケーション2が受信アプリケーション4として機能してもよい。
【0021】
本明細書では、送信アプリケーション2、処理アプリケーション3、及び受信アプリケーション4を区別しない場合、アプリケーションと記載する。また、データが流れる経路上の送信アプリケーション2、処理アプリケーション3、及び受信アプリケーション4の組をリンクと記載する。
【0022】
制御システム1は、
図2に示すような計算機200から構成される。なお、制御システム1は、ストレージシステム及びネットワークスイッチ等を含んでもよい。
【0023】
計算機200は、プロセッサ201、主記憶装置202、副記憶装置203、及びネットワークインタフェース204を有する。なお、計算機200は、入力装置及び出力装置を有してもよい。
【0024】
プロセッサ201は、主記憶装置202に格納されるプログラムを実行する。プロセッサ201がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ201が当該機能部を実現するプログラムを実行していることを示す。主記憶装置202は、メモリ等であり、プロセッサ201が実行するプログラム及びプログラムが使用するデータを格納する。副記憶装置203は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等であり、データを永続的に格納する。主記憶装置202に格納されるプログラム及びデータは、副記憶装置203に格納されてもよい。この場合、プロセッサ201が副記憶装置203からプログラム及びデータを読み出し、主記憶装置202にロードする。ネットワークインタフェース204は、ネットワークを介して他の装置と通信する。
【0025】
制御システム1は、機能構成として、負荷分散制御部11、負荷分散評価部12、ユーザ入力部13、ユーザ出力部14、及び記憶部15を含む。
【0026】
負荷分散制御部11は、分散制御計画部111及び分散制御実行部112を含む。分散制御計画部111は、処理アプリケーション3に対する送信アプリケーション2から受信したデータの送信を制御するための送信計画を生成する。分散制御実行部112は、分散制御計画部111が生成した送信計画に基づいて、送信アプリケーション2から受信したデータを処理アプリケーション3へ送信する。
【0027】
負荷分散評価部12は、計測部121、122及びフィードバック部123を含む。計測部121は、送信アプリケーション2と処理アプリケーション3との間の通信に関する指標(通信指標)を取得し、計測部122は、処理アプリケーション3と受信アプリケーション4との間の通信に関する指標(通信指標)を取得する。通信指標の一例として、単位時間当たりの転送メッセージ数、単位時間当たりの転送データサイズ、転送時間、Round Trip Time、及びホップ数等が考えられる。ただし、通信指標は上記に限定されない。また、計測部121、122はアプリケーションのレプリカ数及びアプリケーション同士の接続状態を取得する。
【0028】
ユーザ入力部13は、トレーニング実行スケジュール指定部131、状態確認スケジュール指定部132、指標指定部133、及び終了コマンド実行部134を含む。トレーニング実行スケジュール指定部131は、送信計画を生成するためのトレーニングのスケジュールの入力を受け付ける。状態確認スケジュール指定部132は、状態確認のスケジュールの入力を受け付ける。ここで、状態確認とは、分散制御計画部111によって生成された送信計画が適切であるか、すなわち、安定状態S3(
図5参照)を継続できるか否かを確認することを意味する。指標指定部133は、送信計画を生成するために用いる通信指標の入力を受け付ける。終了コマンド実行部134は、制御システム1の停止指示を受け付け、制御システム1を停止させるコマンドを実行する。
【0029】
ユーザ出力部14は、トポロジ表示部141及び分散制御状況表示部142を含む。トポロジ表示部141は、アプリケーション間のつながりを示すトポロジをユーザに表示する。分散制御状況表示部142は、分散制御計画部111及び分散制御実行部112の動作状況をユーザに表示する。
【0030】
記憶部15は、ユーザ設定情報151、計測結果情報152、リンク許容値情報153を管理する。ユーザ設定情報151は、ユーザ入力部13により入力された設定値を格納する。計測結果情報152は、計測部121によって計測された通信指標を格納する。リンク許容値情報153は、指標指定部133を介して指定された通信指標の許容値を格納する。
【0031】
図3は、実施例1のユーザ入力部13によって提示されるインタフェースの一例を示す図である。
【0032】
ユーザ入力部13は、
図3に示すような入力画面300を提示する。入力画面300は、操作欄310、操作欄320、操作欄330、及び、停止ボタン340を含む。
【0033】
操作欄310は、入力欄311及び適用ボタン312を含む。入力欄311は、トレーニング実行スケジュール指定部131に対して、トレーニングのスケジュールを入力するための欄である。ユーザが適用ボタン312を押下した場合、入力欄311に入力されたスケジュールがトレーニング実行スケジュール指定部131を介して分散制御実行部112へ伝達される。分散制御実行部112は、後述するようにスケジュールにしたがってトレーニングを行う。
【0034】
操作欄320は、入力欄321及び適用ボタン312を含む。入力欄321は、状態確認スケジュール指定部132に対して、状態確認のスケジュールを入力するための欄である。ユーザが適用ボタン322を押下した場合、入力欄321に入力されたスケジュールが状態確認スケジュール指定部132を介して分散制御実行部112へ伝達される。分散制御実行部112は、後述するようにスケジュールに状態確認を行う。
【0035】
操作欄330は、入力欄331及び適用ボタン332を含む。入力欄331は分散制御計画部111が使用する通信指標、すなわち、処理アプリケーション3のデータの送受信性能を評価する通信指標の種別を入力するための欄である。ユーザが適用ボタン332を押下した場合、入力欄331に入力された通信指標の種別が指標指定部133を介して分散制御計画部111に伝達される。
【0036】
実施例1では、処理アプリケーション3が送信アプリケーション2から受信するデータ量(データ転送量)と、処理アプリケーション3が受信アプリケーション4に送信するデータ量(データ転送量)とを、処理アプリケーション3のデータの送受信性能を評価する通信指標として用いる。
【0037】
停止ボタン340は、制御システム1の停止を指示するためのボタンであり、ユーザが停止ボタン340を押下した場合、終了コマンド実行部134が制御システム1を停止させる。
【0038】
図4は、実施例1のユーザ出力部14によって提示されるインタフェースの一例を示す図である。
【0039】
ユーザ出力部14は、
図4に示すような出力画面400を提示する。出力画面400は、表示欄410及び表示欄420を含む。
【0040】
表示欄410は、トポロジ表示部141が生成した情報を表示する欄である。トポロジ表示部141は、制御システム1が管理するアプリケーション間のつながりと、計測部121によって計測された通信指標とを表示欄410に表示する。
【0041】
表示欄420は、分散制御状況表示部142が生成した情報を表示する欄である。分散制御状況表示部142は、指標指定部133を介して指定された通信指標の種別、分散制御実行部112の実行ログ、及びユーザへの指示等を表示欄420に表示する。
【0042】
図5は、実施例1の制御システム1の動作状態の遷移を示す図である。
【0043】
制御システム1の初期状態は停止状態S1である。制御システム1は、起動した場合、トレーニング状態S2に遷移する。
【0044】
トレーニング状態S2では、制御システム1はトレーニング処理を実行する。制御システム1は、トレーニング処理が完了した場合、安定状態S3に遷移する。
【0045】
安定状態S3では、制御システム1は、周期的に、状態確認及びトレーニングの実行契機を確認する。
【0046】
状態確認及びトレーニングの実行契機が検知されなかった場合、制御システム1は安定状態S3を維持する。トレーニングの実行契機を検知した場合、制御システム1はトレーニング状態S2に遷移する。状態確認の実行契機を検知した場合、制御システム1は、送信計画の適否を判定する。当該判定の結果、送信計画を変更する必要がない場合、制御システム1は安定状態S3を維持する。当該判定の結果、送信計画を変更する必要がある場合、制御システム1は高負荷状態S4に遷移する。
【0047】
高負荷状態S4では、制御システム1は送信計画を変更する。送信計画の変更が成功した場合、制御システム1は安定状態S3に遷移する。送信計画の変更が成功しなかった場合、制御システム1は警告状態S5に遷移する。
【0048】
警告状態S5では、制御システム1は、分散制御状況表示部142を介して、条件を満たす分散制御が不可能である旨をユーザに提示する。
【0049】
なお、警告状態S5であっても、制御システム1は、送信計画にしたがってデータの送受信を実行してもよい。ただし、データ処理の滞留が発生する可能性があるため、ユーザはレプリカ数の増加、送信アプリケーション2から送信するデータ量の削減等を行う必要がある。
【0050】
トレーニング状態S2、安定状態S3、高負荷状態S4、及び警告状態S5において、停止ボタン340が押下された場合、終了コマンド実行部134によって終了コマンドが実行され、制御システム1は停止状態S1に遷移する。
【0051】
図6は、実施例1の計測結果情報152のデータ構造の一例を示す図である。
【0052】
計測結果情報152は、テーブル形式の情報であり、送信アプリケーションT101、処理アプリケーションT102、受信アプリケーションT103、データ転送量(1)T104、及びデータ転送量(2)T105を含むエントリを格納する。一つのリンクの計測結果に対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。
【0053】
送信アプリケーションT101は、送信アプリケーション2の識別情報を格納するフィールドである。処理アプリケーションT102は、処理アプリケーション3の識別情報を格納するフィールドである。受信アプリケーションT103は、受信アプリケーション4の識別情報を格納するフィールドである。データ転送量(1)T104は、送信アプリケーション2と処理アプリケーション3との間のデータ転送量を格納するフィールドである。データ転送量(2)T105は、処理アプリケーション3と受信アプリケーション4との間のデータ転送量を格納するフィールドである。
【0054】
なお、計測結果情報152は、テーブル形式に限定されず、CSV及びXML形等でもよい。
【0055】
図7は、実施例1のリンク許容値情報153のデータ構造の一例を示す図である。
【0056】
リンク許容値情報153は、テーブル形式の情報であり、送信アプリケーションT201、処理アプリケーションT202、及びリンク許容値T203を含むエントリを格納する。一つのリンクに対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。
【0057】
送信アプリケーションT201は、送信アプリケーション2の識別情報を格納するフィールドである。処理アプリケーションT202は、処理アプリケーション3の識別情報を格納するフィールドである。リンク許容値T203は、リンクにおけるデータ転送量の許容値(最大値)を格納するフィールドである。本実施例では、送信アプリケーション2と処理アプリケーション3との間のデータ転送量の最大値が格納される。
【0058】
なお、リンク許容値情報153は、テーブル形式に限定されず、CSV形式及びXML形等でもよい。
【0059】
図8は、実施例1の制御システム1がトレーニング状態S2で実行する処理を説明するフローチャートである。
【0060】
制御システム1の分散制御実行部112は、監視対象の処理アプリケーション3の中から一つの処理アプリケーション3を選択する(ステップS21)。
【0061】
分散制御実行部112はデータの送信量を設定する(ステップS22)。データの送信量を初めて設定する場合、分散制御実行部112は初期値を設定し、データ送信量が設定されている場合、分散制御実行部112は、現在の値に増加量を追加する。初期値及び増加量は予め設定されているものとする。なお、初期値及び増加量を更新できるようにしてよい。
【0062】
分散制御実行部112は、送信アプリケーション2に設定したデータ量のトレーニングパケットの送信を指示し、選択した処理アプリケーション3に受信したトレーニングパケットを送信する(ステップS23)。トレーニングパケットは処理アプリケーション3を経由して受信アプリケーション4に到達する。
【0063】
負荷分散評価部12の計測部121、122は、トレーニングパケットの送信期間において、指標指定部133を介して指定された通信指標の値を計測し、フィードバック部123を介して分散制御計画部111に計測結果を出力する。分散制御計画部111は、計測結果情報152に計測結果を格納する(ステップS24)。なお、分散制御計画部111は、トレーニングパケットに含まれるIPアドレス等に基づいて各アプリケーションを特定できる。
【0064】
分散制御実行部112は、計測部121、122による計測が完了した後、計測を完了するか否かを判定する(ステップS25)。
【0065】
例えば、分散制御実行部112は、処理アプリケーション3と受信アプリケーション4との間のデータ転送量が、送信アプリケーション2と処理アプリケーション3との間のデータ転送量より小さい場合、分散制御実行部112は計測を完了する。
【0066】
計測を完了しない場合、分散制御実行部112は、ステップS22に戻り、同様の処理を実行する。
【0067】
計測を完了する場合、分散制御実行部112は、全ての処理アプリケーション3の計測が完了したか否かを判定する(ステップS26)。
【0068】
全ての処理アプリケーション3の計測が完了していない場合、分散制御実行部112は、ステップS21に戻り、同様の処理を実行する。
【0069】
全ての処理アプリケーション3の計測が完了した場合、分散制御実行部112は、送信計画の生成を分散制御計画部111に指示する。分散制御計画部111は、計測結果に基づいて、各リンクのリンク許容値を算出する(ステップS27)。例えば、以下のような処理が実行される。
【0070】
分散制御計画部111は、リンクを選択し、選択したリンクの計測結果のデータ転送量(1)T104及びデータ転送量(2)T105の値を参照し、データ転送量(1)T104の値が、データ転送量(2)の値以下で、かつ、最大となる値をリンク許容値として算出する。分散制御計画部111は、各リンクについて同様の処理を実行する。なお、許容値の算出方法は一例であってこれに限定されない。
【0071】
データ転送量(1)T104の値がデータ転送量(2)の値以下の状態は、データの滞留が発生していないことを表す。したがって、データの滞留が発生しないデータ転送量(1)の最大値は、処理アプリケーション3の入力、データ処理、及び出力の一連の処理性能を評価するための指標として用いることができる。
【0072】
分散制御計画部111は、リンク許容値に基づいて、各リンクのデータ量の割当比率を算出する(ステップS28)。その後、分散制御計画部111は、各リンクのデータ量の割当比率を送信計画として分散制御実行部112に出力する。
【0073】
実施例1では、分散制御計画部111は、各リンクのリンク許容値の逆数の比を割当比率として算出する。なお、割当比率の算出方法は一例であってこれに限定されない。
【0074】
分散制御実行部112は、分散制御計画部111から送信計画を受け付けた後、安定状態S3に遷移する(ステップS29)。
【0075】
分散制御実行部112は、送信計画に基づいて、各処理アプリケーション3に対して、送信アプリケーション2から受信したデータを振り分ける。
【0076】
図9は、実施例1の制御システム1が安定状態S3で実行する処理を説明するフローチャートである。制御システム1は、安定状態S3において以下で説明する処理を周期的に実行する。
【0077】
制御システム1の分散制御実行部112は、状態確認の実行契機を検知していたか否かを判定する(ステップS31)。例えば、分散制御実行部112は、安定状態S3の遷移後、又は、前回の処理後からの一定時間の経過を、状態確認の実行契機として検知する。
【0078】
状態確認の実行契機を検知した場合、分散制御実行部112は、計測部121及び計測部122から各リンクのデータ転送量を取得し、全てのリンクのデータ転送量がリンク許容値以下であるか否かを判定する(ステップS32)。
【0079】
少なくとも一つのリンクのデータ転送量がリンク許容値より大きい場合、分散制御実行部112は高負荷状態S4に遷移する(ステップS33)。
【0080】
全てのリンクのデータ転送量がリンク許容値以下である場合、分散制御実行部112は安定状態S3を維持する(ステップS34)。
【0081】
ステップS31において、状態確認の実行契機を検知していない場合、分散制御実行部112は、トレーニングの実行契機を検知したか否かを判定する(ステップS35)。例えば、分散制御実行部112は、前回の処理後からの一定時間の経過、又は、アプリケーションのレプリカ数及びアプリケーションの接続状態の変化を、トレーニングの実行契機として検知する。アプリケーションのレプリカ数及びアプリケーションの接続状態の変化は、計測部121、122を介して検知できる。
【0082】
トレーニングの実行契機を検知していない場合、分散制御実行部112は安定状態S3を維持する(ステップS34)。
【0083】
トレーニングの実行契機を検知した場合、分散制御実行部112はトレーニング状態S2に遷移する(ステップS36)。
【0084】
なお、分散制御実行部112は、上記処理とは別に、送信計画にしたがって、処理アプリケーション3に送信するデータ量の制御を行っている。
【0085】
図10は、実施例1の制御システム1が高負荷状態S4で実行する処理を説明するフローチャートである。
【0086】
分散制御実行部112は、計測部121、122から各リンクのデータ転送量を取得し、全てのリンクのデータ転送量がリンク許容値以下であるか否かを判定する(ステップS41)。
【0087】
全てのリンクのデータ転送量がリンク許容値以下である場合、分散制御実行部112は安定状態S3に遷移する(ステップS44)。
【0088】
少なくとも一つのリンクのデータ転送量がリンク許容値より大きい場合、分散制御実行部112は、データ転送量を変更可能なリンクが存在するか否かを判定する(ステップS42)。具体的には、分散制御実行部112は、計測部121から取得した各リンクのデータ転送量を参照し、データ量がリンク許容値より小さいリンクが存在するか否かを判定する。
【0089】
データ転送量を変更可能なリンクが存在する場合、分散制御実行部112は、分散制御計画部111に送信計画の変更を指示する。分散制御計画部111は、当該指示を受け付けた場合、送信計画を変更する(ステップS43)。
【0090】
具体的には、分散制御計画部111は、データ転送量を変更可能なリンクのデータ転送量を変更し、変更されたデータ転送量及び他のリンクの現在のデータ転送量に基づいて、各リンクのデータ量の割当比率を算出する。分散制御計画部111は、算出された割当比率を送信計画として分散制御実行部112に出力する。分散制御実行部112は、送信計画を受け付けた場合、当該送信計画に基づいてデータ量の制御を行う。分散制御実行部112は、一定時間経過した後、ステップS41に戻る。
【0091】
データ転送量を変更可能なリンクが存在しない場合、分散制御実行部112は警告状態S5に遷移する(ステップS45)。
【0092】
以上で説明したように、実施例1によれば、制御システム1は、データフロー型アプリケーションである処理アプリケーション3における、データの入力、処理、及び出力の一連の処理性能を評価し、各処理アプリケーション3が処理するデータのデータ量を制御する。これによって、システム全体の処理のスループットが、特定の処理アプリケーション3の処理性能に律速されることを防ぐことができる。したがって、システム全体の処理のスループットを向上させることができる。
【0093】
次に、具体例を用いて制御システム1の動作及び制御について説明する。
【0094】
まず、トレーニング状態S2について説明する。
図11は、実施例1のシステムの制御対象のアプリケーションの構成例を示す図である。
図12A、
図12B、及び
図12Cは、実施例1の制御システム1の通信指標の計測方法を説明する図である。
図13A、
図13B、及び
図13Cは、実施例1の計測結果情報152の具体例を示す図である。
図14は、実施例1のリンク許容値情報153の具体例を示す図である。
【0095】
以下では、
図11に示すようなアプリケーション構成のサービスを想定する。具体的には、サービスは、一つの送信アプリケーション(Data Source A)2、処理アプリケーション(1)(App(1))3-1、処理アプリケーション(2)(App(2))3-2、処理アプリケーション(3)(App(3))3-3、及び受信アプリケーション(Data Sink A)4から構成される。なお、本発明は、
図11に示すようなアプリケーション構成以外の構成でも同様の効果を奏する。
【0096】
以下の説明では、送信アプリケーション2、処理アプリケーション(1)3-1、及び受信アプリケーション4の組をリンク(1)と記載し、送信アプリケーション2、処理アプリケーション(2)3-2、及び受信アプリケーション4の組をリンク(2)と記載し、送信アプリケーション2、処理アプリケーション(3)3-3、及び受信アプリケーション4の組をリンク(3)と記載する。
【0097】
トレーニング状態S2では、以下のような手順で通信指標(データ転送量)が計測される。まず、分散制御実行部112は、送信アプリケーション2に、処理アプリケーション(1)3-1へのトレーニングパケットの送信を指示する(
図12A)。処理アプリケーション(1)3-1は、トレーニングパケットを受信アプリケーション4に送信する。データ送信量が異なるトレーニングパケットが複数回送信される。計測部121、122は、アプリケーション間のデータ送信量を計測する。その結果、
図13Aのような測定結果が計測結果情報152に格納される。
【0098】
分散制御実行部112は、送信アプリケーション2に、処理アプリケーション(2)3-2へのトレーニングパケットの送信を指示する(
図12B)。処理アプリケーション(2)3-2は、トレーニングパケットを受信アプリケーション4に送信する。データ送信量が異なるトレーニングパケットが複数回送信される。計測部121、122は、アプリケーション間のデータ送信量を計測する。その結果、
図13Bのような測定結果が計測結果情報152に格納される。
【0099】
分散制御実行部112は、送信アプリケーション2に、処理アプリケーション(3)3-3へのトレーニングパケットの送信を指示する(
図12C)。処理アプリケーション(3)3-3は、トレーニングパケットを受信アプリケーション4に送信する。データ送信量が異なるトレーニングパケットが複数回送信される。計測部121、122は、アプリケーション間のデータ送信量を計測する。その結果、
図13Cのような測定結果が計測結果情報152に格納される。
【0100】
図13Aから
図13Cに示すような計測結果が計測結果情報152に格納されている場合、ステップS27では、分散制御計画部111は、リンク(1)のリンク許容値を「10topic/sec」、リンク(2)のリンク許容値を「20topic/sec」、リンク(3)のリンク許容値を「11topic/sec」と算出する。その結果、
図14に示すようなリンク許容値情報153が生成される。
【0101】
次に、安定状態S3及び高負荷状態S4について説明する。
図15A及び
図15Bは、実施例1の制御対象のアプリケーションの通信状態の一例を示す図である。
【0102】
状態確認の実行契機を検知した場合、分散制御実行部112は、計測部121及び計測部122から各リンクのデータ転送量を取得する。
【0103】
図15Aに示すような計測結果の場合、各リンク(1)、リンク(2)、リンク(3)のデータ転送量はリンク許容値以下である。したがって、分散制御実行部112は安定状態S3を維持する(ステップS34)。
【0104】
図15Bに示すような計測結果の場合、リンク(3)の送信アプリケーション2と処理アプリケーション3との間のデータ転送量がリンク許容値より大きい。したがって、分散制御実行部112は高負荷状態S4に遷移する(ステップS33)。リンク(1)及びリンク(2)の送信アプリケーション2と処理アプリケーション3との間のデータ送信量はリンク許容値に達しているため、転送量を変更可能なリンクが存在しない。したがって、分散制御実行部112は警告状態S5に遷移する(ステップS45)。
実施例2は、送信アプリケーション2から処理アプリケーション3を経由し、受信アプリケーション4へ到達するまでの転送時間を、処理アプリケーション3のデータの送受信性能を評価する通信指標として用いる。以下、実施例1等の差異を中心に実施例2について説明する。
実施例2では、計測結果情報152に格納されるエントリは、送信アプリケーションT101、処理アプリケーションT102、受信アプリケーションT103、データ転送量T111、及び転送時間T112を含む。データ転送量T111は、データ転送量(1)T104と同一のフィールドである。転送時間T112は、送信アプリケーション2から処理アプリケーション3を経由し、受信アプリケーション4へデータが到達するまでの転送時間を格納するフィールドである。
実施例2の制御システム1がトレーニング状態S2で実行する処理は実施例1と同一である。ただし、実施例2では、ステップS25及びステップS27の処理内容が実施例1と異なる。
ステップS25では、分散制御実行部112は、転送時間が急激に増加した場合、計測完了と判定する。転送時間の急激な増加は、例えば、転送時間の平均値、転送時間の変化量、及び転送時間変化率等を用いる方法が考えられる。なお、判定方法はこれに限定されない。実施例2では、転送時間が前回より1割以上変動した場合、転送時間の急激な増加があったものと判定する。
ステップS27では、分散制御実行部112は、急激に転送時間が増加した時点の転送時間の次に大きい転送時間をリンク許容値として算出する。なお、他の方法でリンク許容値を算出してもよい。当該転送時間は、処理アプリケーション3の入力、データ処理、及び出力の一連の処理性能を評価するための指標として用いることができる。