JP2019149043A - 見積り装置および見積り方法 - Google Patents

見積り装置および見積り方法 Download PDF

Info

Publication number
JP2019149043A
JP2019149043A JP2018033798A JP2018033798A JP2019149043A JP 2019149043 A JP2019149043 A JP 2019149043A JP 2018033798 A JP2018033798 A JP 2018033798A JP 2018033798 A JP2018033798 A JP 2018033798A JP 2019149043 A JP2019149043 A JP 2019149043A
Authority
JP
Japan
Prior art keywords
processing performance
module
value
performance value
cpu cores
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.)
Granted
Application number
JP2018033798A
Other languages
English (en)
Other versions
JP6996341B2 (ja
Inventor
文彦 澤崎
Fumihiko Sawazaki
文彦 澤崎
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2018033798A priority Critical patent/JP6996341B2/ja
Priority to US16/975,509 priority patent/US11256550B2/en
Priority to PCT/JP2019/006968 priority patent/WO2019167859A1/ja
Publication of JP2019149043A publication Critical patent/JP2019149043A/ja
Application granted granted Critical
Publication of JP6996341B2 publication Critical patent/JP6996341B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/506Constraint

Abstract

【課題】マイクロサービスアーキテクチャを採用した情報処理装置のモジュールへの割り当てCPUコア数および性能の見積りを可能とする。【解決手段】コア数算出部111は、性能算出部112が出力した一時処理性能値の処理に必要なCPUコア数の総数を算出する。性能算出部112は、一時処理性能値への処理性能値増分の加算を繰り返しながら、コア数算出部111に必要なCPUコア数の総数を算出させ、所定の割り当て可能CPUコア上限数を超えない最大の一時処理性能値である処理性能上限値を求める。【選択図】図5

Description

本発明は、複数のモジュールから構成される情報処理装置におけるモジュールへの割り当てCPU(Central Processing Unit)コア数と処理性能値とを見積もる見積り装置および見積り方法に関する。
従来、キャリア内の転送系サービス機能は、機能に応じた専用ハードウェアによって実現されており、機能とハードウェアが一体化していた。このため、ある機能のハードウェアの使用率が低い場合であっても、他の機能には転用できず非効率であった。このような問題を解消するために、汎用物理サーバ上に複数の仮想マシンを稼働させ、必要に応じて仮想マシンに機能を実現させて、サービスを提供するネットワーク機能の仮想化が普及している。
1つの汎用物理サーバ上で稼働する複数の仮想マシンを接続する手法として、非特許文献1に記載のあるように、仮想的なスイッチであるOvS(Open vSwitch)という標準的なソフトウェアを用いる手法がある。また、SR−IOV(Single Root I/O Virtualization)という技術を用いて物理NIC(Network Interface Card)を直接仮想マシンがアクセスできるようにして、ソフトウェアによるスイッチング処理をハードウェアで実現する手法がある。
OvSやSR−IOVを用いた転送系装置とは別に、機能を実現するモジュールをCPUコアが専有されるように割り当て、複数のモジュールが順次IP(Internet Protocol)パケットを処理する転送系装置が出現している。このような複数のモジュールを組み合わせて1つのサービス(装置)を実現する形態をマイクロサービスアーキテクチャという。この転送系装置において、複数あるモジュールのなかに処理負荷が高いモジュールがあると、そのモジュールがボトルネックとなり、全体の処理性能が低下してしまう。
このような場合には、処理負荷が高いモジュールにCPUコアを複数割り当て、当該モジュールの処理能力を向上させることで、ボトルネックを解消し、転送系装置としての処理性能を向上させることができる。各モジュールに適切な数のCPUコアを割り当て、CPUコアの処理能力の空きを削減することにより、ハードウェアリソースを無駄なく使うことができる。
なお、以下では、CPUコアが割り当てられたモジュールをモジュールインスタンスとも記す。マイクロサービスアーキテクチャでは、処理が重いモジュールについては、複数のモジュールインスタンスを生成して処理することで、全体の処理を高速化し、かつ、リソース使用率を向上させる。
図7は、従来技術であるマイクロサービスアーキテクチャを採用した転送系装置201のモジュール構成を説明するための図である。転送系装置201は、それぞれ別の機能を有するモジュールA、モジュールB、モジュールCおよびモジュールDから構成される。モジュールAにはCPUコアが1つ専有するように割り当てられ、モジュールインスタンスA(図7ではM_Aと記載)211AとしてIPパケットを処理する。同様に、モジュールB、モジュールCおよびモジュールDには、CPUコアがそれぞれ1つ、2つ、1つ専有するように割り当てられ、モジュールインスタンスB(図7ではM_Bと記載)211B、モジュールインスタンスC(図7ではM_Cと記載)211C1、211C2および、モジュールインスタンスD(図7ではM_Dと記載)211Dが、それぞれの機能を実現してIPパケットを処理する。
高負荷なモジュール(機能)については、複数のコアを割り当てて複数のモジュールインスタンスを生成させて処理させることで、負荷を分散させることができ、全体処理のなかで当該モジュールがボトルネックになることを防ぐことができる。
メモリバッファ(図7ではBと記載)221Aは、モジュールインスタンスA211AとモジュールインスタンスB211Bとの間に介在しており、モジュールインスタンスA211Aが処理したIPパケットが格納される。続いて、モジュールインスタンスB211Bが、メモリバッファ221AからIPパケットを取り出して処理する。モジュールインスタンスB211BとモジュールインスタンスC211C1との間のメモリバッファ221B1についても同様であり、モジュールインスタンスB211BとモジュールインスタンスC211C2との間のメモリバッファ221B2についても同様である。モジュールインスタンスC211C1とモジュールインスタンスD211Dとの間のメモリバッファ221C1、および、モジュールインスタンスC211C2とモジュールインスタンスD211Dとの間のメモリバッファ221C2についても同様である。なお、物理NICやメモリ上のIPパケットの操作には、DPDK(Data Plane Development Kit)(非特許文献2参照)と呼ばれる技術が用いられる。
このように、コアを専有するモジュールインスタンスがメモリバッファを介して、次々とIPパケットを処理することで、高速な中継処理やヘッダの編集処理が可能となる。また、高負荷な機能を実現するモジュールについては、複数のコアを割り当てて複数のモジュールインスタンスとすることで、IPパケットを並列処理することができ、他のモジュールと同等の処理性能を実現することができる。
中村哲朗, 他3名, MAGONIA (SPP): 機能間高速連携技術, NTT技術ジャーナル, 2016.8, pp.31-33, [online], [平成30年2月14日検索], インターネット<URL:http://www.ntt.co.jp/journal/1608/files/jn20160831.pdf> DPDK, [online], [平成30年2月14日検索], インターネット<URL:http://dpdk.org/>
従来の転送系装置のソフトウェアは、モノリシックにできている。このため、転送系装置を1つのモジュールとみなし、転送系装置に対する入力トラフィックと使用リソース量から処理可能なトラフィックの上限を判断して、性能値を求めている。一方、マイクロサービスアーキテクチャを採用した転送系装置においては、処理内容に応じてモジュールの構成を変えたり、1つのモジュールに対するモジュールインスタンスの数(モジュールに割り当てるCPUコア数)を増減したりすることが可能である。このため、従来までのモノリシックな転送系装置に対する性能値の見積りとは異なる見積り手法が求められる。さらに、予想されるトラフィック量の処理に必要な、モジュールインスタンスの数を見積もる手法が求められている。
このようなマイクロサービスアーキテクチャを採用した装置に対する見積りは、転送系装置に限らず、他の情報処理装置でも必要となる。
このような背景を鑑みて本発明がなされたのであり、本発明は、複数のモジュールから構成される情報処理装置におけるモジュールへの割り当てCPUコア数および処理性能値の見積りを可能とする見積り装置および見積り方法を提供することを課題とする。
前記した課題を解決するため、請求項1に記載の発明は、複数のモジュールから構成される情報処理装置の処理性能値の上限を示す処理性能上限値を見積もる見積り装置であって、前記モジュールそれぞれに1つのCPU(Central Processing Unit)コアが割り当てられたときの前記処理性能値を示す各モジュールの単位処理性能値、前記処理性能値の最小の見積り値を示す処理性能初期値、および、所定の割り当て可能CPUコア上限数を記憶する記憶部と、前記処理性能初期値に所定の処理性能の増分を示す処理性能値増分を加算して一時処理性能値を算出し、前記算出した一時処理性能値および前記単位処理性能値を用いて、当該一時処理性能値を満たすのに必要なCPUコア数を示す必要CPUコア数を前記モジュールごとに算出し、前記モジュールごとに算出された必要CPUコア数の総数を割り当てCPUコア総数として算出するコア数算出部と、前記算出された割り当てCPUコア総数が前記割り当て可能CPUコア上限数を超えるか否かの判定を、前記一時処理性能値への前記処理性能値増分の加算を繰り返すごとに実行し、前記算出された割り当てCPUコア総数が前記割り当て可能CPUコア上限数を超えない最大の前記一時処理性能値を前記処理性能上限値として算出する性能算出部とを備えることを特徴とする見積り装置とした。
また、請求項4に記載の発明は、複数のモジュールから構成される情報処理装置の処理性能値の上限を示す処理性能上限値を見積もる見積り装置の見積り方法であって、前記見積り装置が、前記モジュールそれぞれに1つのCPUコアが割り当てられたときの前記処理性能値を示す各モジュールの単位処理性能値、前記処理性能値の最小の見積り値を示す処理性能初期値、および、所定の割り当て可能CPUコア上限数を記憶部に記憶しており、前記処理性能初期値に所定の処理性能の増分を示す処理性能値増分を加算して一時処理性能値を算出し、前記算出した一時処理性能値および前記単位処理性能値を用いて、当該一時処理性能値を満たすのに必要なCPUコア数を示す必要CPUコア数を前記モジュールごとに算出し、前記モジュールごとに算出された必要CPUコア数の総数を割り当てCPUコア総数として算出するステップと、前記算出された割り当てCPUコア総数が前記割り当て可能CPUコア上限数を超えるか否かの判定を、前記一時処理性能値への前記処理性能値増分の加算を繰り返すごとに実行し、前記算出された割り当てCPUコア総数が前記割り当て可能CPUコア上限数を超えない最大の前記一時処理性能値を前記処理性能上限値として算出するステップとを実行することを特徴とする見積り方法とした。
このような構成にすることで、見積り装置は、割り当て可能CPUコア上限数以下のコアで処理可能な処理性能上限値を算出することができる。
また、請求項2に記載の発明は、前記性能算出部が、前記処理性能上限値および前記単位処理性能値を用いて、前記処理性能上限値を満たす前記必要CPUコア数を前記モジュールごとに算出し、当該モジュールそれぞれの割り当てCPUコア数とすることを特徴とする請求項1に記載の見積り装置とした。
このような構成にすることで、見積り装置は、処理性能上限値の処理に必要なCPUコア数をモジュールごとに算出することができる。
請求項3に記載の発明は、前記情報処理装置が、通信データを処理する情報処理装置であり、前記処理性能値が、単位時間当たりに処理する前記通信データの数であることを特徴とする請求項1または請求項2に記載の見積り装置とした。
このような構成にすることで、見積り装置は、割り当て可能CPUコア上限数以下のコアで処理可能な通信データ数の上限値を算出することができる。また、この上限値の処理に必要なCPUコア数をモジュールごとに出力することができる。
本発明によれば、複数のモジュールから構成される情報処理装置におけるモジュールへの割り当てCPUコア数および処理性能値の見積りを可能とする見積り装置および見積り方法を提供することができる。
本実施形態に係る見積り装置が、性能やモジュールインスタンス数を見積もる対象となる転送系装置のモジュール構成を例示する図である。 本実施形態に係る、モジュールインスタンスの単位処理量を示すモジュール性能テーブルのデータ構成を例示する図である。 本実施形態に係る、モジュール構成を例示する図である。 本実施形態に係る見積り装置が実行する見積り処理を説明するための図である。 本実施形態に係る見積り装置の全体構成を例示する図である。 本実施形態に係る見積り処理のフローチャートである。 従来技術であるマイクロサービスアーキテクチャを採用した転送系装置のモジュール構成を説明するための図である。
以下に、転送系装置のモジュールインスタンス数(モジュールに割り当てるCPUコア数)と処理性能値の見積り手法の概要を説明した後に、本発明を実施するための形態(実施形態)における見積り装置(後記する図5参照)について説明する。
≪見積り手法の概要≫
図1は、本実施形態に係る見積り装置が、処理性能値やモジュールインスタンス数を見積もる対象となる転送系装置200のモジュール構成を例示する図である。転送系装置200は、モジュールA210A、モジュールB210B、モジュールC210C、モジュールD210D、モジュールE210EおよびモジュールF210Fの6つのモジュールから構成され、IPパケットを順次処理する。なお、モジュール間に存在するメモリバッファ(図7参照)は省略している。
図2は、本実施形態に係る、モジュールインスタンスの単位処理量を示すモジュール性能テーブル121のデータ構成を例示する図である。単位処理量とは、モジュールに1つのCPUコアを割り当てたときの処理性能値を示す。モジュール性能テーブル121は、モジュールとモジュールインスタンスの単位処理量(単位処理性能値、モジュール単位処理量またはモジュールの単位処理量とも記す)とを関連付けて記憶する表形式のデータである。モジュール単位処理量は、1コアが割り当てられたモジュール(モジュールインスタンス)の単位時間に処理可能なIPパケットの量を示しており、単位は、例えば、kpps(kilo packets per second)である。
モジュール性能テーブル121によれば、モジュールA210Aの単位処理量が2000kppsであるのに対して、モジュールE210Eの単位処理量は200kppsである。モジュールの単位処理量は、モジュールに1つのコアを割り当てて、処理可能なトラフィックの上限値を実測することで測定できる。
図3は、本実施形態に係る、モジュール構成を例示する図である。図3記載のモジュール構成(モジュールインスタンス構成)の例では、モジュールA210A、モジュールB210B、モジュールC210C、モジュールD210D、モジュールE210EおよびモジュールF210Fのインスタンスが、それぞれ1個、2個、2個、4個、10個、1個含まれている。このようなモジュール構成にすることにより、全てのモジュールが2000kppsのトラフィックを処理することが可能である。このため、何れのモジュールがボトルネックになることもなく、転送系装置200(図1参照)は、2000kppsのトラフィックを処理できるようになる。
図4は、本実施形態に係る見積り装置100が実行する見積り処理を説明するための図である。見積り処理では、利用可能なモジュールインスタンス数(後記する割り当て可能コア数)の上限(割り当て可能CPUコア上限数)が決まっており、この上限以下で処理可能なトラフィック量の最大値を求める。ここでは、上限が20であると仮定して説明する。
見積り装置100は、初期値(処理性能初期値)のトラフィック量を200kppsとして、転送系装置200が、このトラフィック量を処理するのに必要なモジュールインスタンス総数を求める。必要なモジュールインスタンス総数は、各モジュールについて、トラフィックを処理するのに必要なモジュールインスタンス数(必要CPUコア数、必要コア数)を求め、次に、その総和を計算することで算出できる。例えば、トラフィック量が200kppsの場合は、モジュールA210A〜モジュールF210Fの全てのモジュールの単位処理量が200kpps以上(図2参照)なので、各モジュールは、1つのモジュールインスタンスでトラフィックを処理でき、モジュールインスタンス総数は6となる(図4のトラフィック量が200の行を参照)。
モジュールインスタンス数の上限は20なので、さらに多くのトラフィックが処理可能と考えられる。見積り装置100は、トラフィック量を200kpps増やして400kppsとして、同様に計算すると、モジュールインスタンス総数は7となる(図4のトラフィック量が400の行を参照)。
見積り装置100は、トラフィック量を200kpps増やして600kppsとして、同様に計算すると、モジュールインスタンス総数は9となる(図4のトラフィック量が600の行を参照)。なお、モジュールD210Dの単位処理量は500kppsであり、600kppsを処理するには、2つのモジュールインスタンスが必要となる。モジュールインスタンス数は、トラフィック量を単位処理量(単位処理性能値)で割った値の小数点以下を切り上げることで求められる。
以下、見積り装置100は、トラフィック量を200kppsずつ増やしながら、トラフィックを処理するのに必要なモジュールインスタンス数が20を超えるまで、計算を繰り返す。
トラフィック量が2000kppsでの処理に必要なモジュールインスタンス総数は、20である(図4のトラフィック量が2000の行を参照)。まだ、上限の20を超えていないので、見積り装置100は、200kpps増やして2200kppsの場合を計算する。2200kppsのトラフィックの処理に必要なモジュールインスタンス総数は26であり(図4のトラフィック量が2200の行を参照)、上限の20を超えており、見積り装置100は、処理不可能と判定して、2000kppsが処理可能なトラフィック量の上限であると算出する。最後に、見積り装置100は、2000kppsのトラフィック処理に必要な、モジュールごとのモジュールインスタンス数を算出する。
以上の処理により、見積り装置100は、モジュールインスタンス総数の上限(割り当て可能CPUコア上限数)が20である場合に、処理可能なトラフィック量の上限が2000kppsであることが求めることができ、このときのモジュールごとのモジュールインスタンス数を算出することができる。
≪見積り装置の全体構成≫
図5は、本実施形態に係る見積り装置100の全体構成を例示する図である。見積り装置100は、制御部110、記憶部120、入出力部130を含んで構成される。制御部110は、CPUから構成され、後記する見積りプログラム122を記憶部120に展開して、実行することで見積り処理を実行する。制御部110は、コア数算出部111および性能算出部112を備える。
コア数算出部111は、与えられたトラフィック量を処理するのに必要な各モジュールのインスタンス数(モジュールに割り当てるコア数、割り当てコア数、割り当てCPUコア数、必要CPUコア数とも記す)およびその総数(割り当てCPUコア総数)を算出する。
性能算出部112は、後記する入出力部130から入力された割り当て可能コア数から処理可能なトラフィック量(処理性能値)の上限(処理性能上限値)を算出する。また、この処理性能上限値のトラフィック量を処理するのに必要な各モジュールのインスタンス数(必要CPUコア数)を算出する。
記憶部120は、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)およびフラッシュメモリなどから構成され、モジュール性能テーブル121や見積りプログラム122、OS(Operating System)(不図示)、見積り処理の実行中に必要となるデータを記憶する。
モジュール性能テーブル121(図2参照)は、各モジュールの単位処理量を記憶する。図2では、テーブル形式のデータ構成をしているが、これに限る必要はなく、他のデータ形式であってもよい。モジュールの名称や数、単位処理量は、後記する入出力部130を介して、見積り装置100の外部から入力される。
見積りプログラム122は、見積り処理を実行するプログラムである。
入出力部130は、見積り装置100の外部とのデータの入出力を実行し、例えば、キーボード、ディスプレイ、NICなどのデバイスを含む。見積り処理の入力データであり、モジュール性能テーブル121に格納されるモジュールの単位処理量や後記する割り当て可能なCPUコア数は、キーボードから入力されたり、通信データとしてNICが受信することで入力されたりする。また、見積り処理の処理結果である各モジュールのインスタンス数(割り当てられたコア数)は、ディスプレイ上の表示データやNICが送信した通信データとして出力される。
≪見積り処理≫
図6は、本実施形態に係る見積り処理のフローチャートである。図6を参照しながら、制御部110が実行する見積り処理を説明する。見積り処理の入力データは、モジュールの名称、各モジュールの単位処理量、後記する割り当て可能コア数、後記する性能見積り精度(処理性能値増分)、および、後記する処理性能初期値である。入力データは、入出力部130から入力され、記憶部120に記憶される。なお、モジュールの名称と各モジュールの単位処理量は、モジュール性能テーブル121に記憶される。
割り当て可能コア数(割り当て可能CPUコア上限数)は、モジュールに割り当て可能なコア数の上限である(図4の説明では20)。見積り処理では、割り当て可能コア数以下で処理可能なトラフィック量の最大値を算出する。なお、以下ではこの最大値のことを割り当て可能コア数における性能上限値または単に性能上限値(処理性能上限値)とも記す。
性能見積り精度(処理性能値増分)は、性能上限値を算出する際の誤差の許容値である。性能見積り精度は、図4で説明した繰り返し処理におけるトラフィック量の増分の200kppsに相当し、性能上限値を求める精度になる。
処理性能初期値は、処理性能値の初期値であり、処理性能値の見積り値の最小値である。例えば、処理性能初期値は、複数あるモジュールの単位処理量のなかで最小の単位処理量である。
見積り処理の出力データは、各モジュールの割り当てコア数(モジュールインスタンス数)と割り当て可能コア数における性能上限値である。出力データは、入出力部130を介して出力される。
以下、図6に記載した各ステップを説明する。なお、ceil関数は、天井関数とも呼ばれる、引数以上で最小の整数を求める関数である。引数が正ならば、小数点以下を切り上げる関数である。例えば、ceil(1.5)=2であり、ceil(3)=3である。
入力データの性能見積り精度(図4では200kpps)をΔTとする。処理性能初期値(図4では200kpps)をT0とする。Tは、処理性能値の変数(一時処理性能値)である。
ステップS101において、性能算出部112が、整数変数のnを0とする。
ステップS102において、性能算出部112が、T=T0+ΔT×nとする。Tは、初期値(処理性能初期値)の200kppsから、200kppsずつ増えていく。
ステップS103において、コア数算出部111が、各モジュールについてceil(T/モジュールの単位処理量)を計算することで、処理性能値Tのトラフィック量の処理に必要なコア数(モジュールインスタンス数、割り当てCPUコア数、必要CPUコア数、必要コア数)を算出する。例えば、Tが600kppsであるとすると、モジュールD210D(図2に示すように単位処理量は500kpps)の必要コア数は2となる(図4のトラフィック量が600の行を参照)。
ステップS104において、コア数算出部111が、ステップS103で算出した各モジュールの必要コア数の合計を計算して必要総コア数(モジュールインスタンス総数、割り当てCPUコア総数、図4のモジュールインスタンス総数)を算出する。
ステップS105において、性能算出部112が、入力データである割り当て可能コア数が、ステップS104で算出した必要総コア数以上であるか否か判定する。割り当て可能コア数が必要総コア数以上であれば(ステップS105→Y)ステップS106に進み、そうでなければ(ステップS105→N)ステップS107に進む。
ステップS106において、性能算出部112が、nに1を加算し、ステップS102に戻る。
ステップS107において、性能算出部112が、T=T0+ΔT×(n−1)を性能上限値として出力する。図4においては、2000kppsが性能上限値であった。
ステップS108において、性能算出部112が、ceil(T/モジュールの単位処理量)を各モジュールの必要コア数として出力する。図4においては、モジュールA210A〜モジュールF210Fの必要コア数は、それぞれ、1、2、2、4、10、1であった(図4のトラフィック量が2000の行を参照)。
≪見積り処理の特徴≫
ステップS103〜S104において、コア数算出部111が、性能算出部112が算出したトラフィック量(一時処理性能値)Tを処理するのに必要な各モジュールのコア数(モジュールインスタンス数、割り当てCPUコア数)とその総数(モジュールインスタンス総数、割り当てCPUコア総数)を算出する。
ステップS102、S105、S106において、性能算出部112が、コア数算出部111が算出する必要コア総数が割り当て可能コア数(割り当て可能CPUコア上限数)を超過するまでTを初期値(処理性能初期値)からΔTずつ加算する。続いて、ステップS107、S108において、性能算出部112が、必要コア総数が割り当て可能コア数を超過する直前のTを性能上限値(処理性能上限値)として出力し、このTに対する各モジュールの必要コア数(割り当てCPUコア数)を出力する。
≪見積り処理の効果≫
見積り装置100が見積り処理を実行することで、マイクロサービスアーキテクチャの転送系装置の性能値(処理可能なトラフィック量)が見積り可能となる。また、モジュールごとに処理に必要なモジュールインスタンス数(割り当てコア数)が見積り可能となり、最適なモジュール構成におけるモジュールインスタンス数が見積り可能となる。引いては、転送系装置のプロビジョニングが可能となる。
≪変形例:情報処理装置≫
見積り装置100は、マイクロサービスアーキテクチャの転送系装置を見積り対象としていた。しかしながら、転送系装置に限らず、処理モジュールが独立しており、モジュールに割り当てるコア数に比例して処理量が増加するモジュール構成をしている情報処理装置に対しても、見積り装置100を適用することができる。この場合、見積り装置100は、情報処理装置の性能上限値や各モジュールの割り当てコア数(モジュールインスタンス数、割り当てCPUコア数)を算出することができる。
100 見積り装置
110 制御部
111 コア数算出部
112 性能算出部
120 記憶部
121 モジュール性能テーブル
122 見積りプログラム
130 入出力部

Claims (4)

  1. 複数のモジュールから構成される情報処理装置の処理性能値の上限を示す処理性能上限値を見積もる見積り装置であって、
    前記モジュールそれぞれに1つのCPU(Central Processing Unit)コアが割り当てられたときの前記処理性能値を示す各モジュールの単位処理性能値、前記処理性能値の最小の見積り値を示す処理性能初期値、および、所定の割り当て可能CPUコア上限数を記憶する記憶部と、
    前記処理性能初期値に所定の処理性能の増分を示す処理性能値増分を加算して一時処理性能値を算出し、前記算出した一時処理性能値および前記単位処理性能値を用いて、当該一時処理性能値を満たすのに必要なCPUコア数を示す必要CPUコア数を前記モジュールごとに算出し、前記モジュールごとに算出された必要CPUコア数の総数を割り当てCPUコア総数として算出するコア数算出部と、
    前記算出された割り当てCPUコア総数が前記割り当て可能CPUコア上限数を超えるか否かの判定を、前記一時処理性能値への前記処理性能値増分の加算を繰り返すごとに実行し、前記算出された割り当てCPUコア総数が前記割り当て可能CPUコア上限数を超えない最大の前記一時処理性能値を前記処理性能上限値として算出する性能算出部と
    を備えることを特徴とする見積り装置。
  2. 前記性能算出部は、
    前記処理性能上限値および前記単位処理性能値を用いて、前記処理性能上限値を満たす前記必要CPUコア数を前記モジュールごとに算出し、当該モジュールそれぞれの割り当てCPUコア数とする
    ことを特徴とする請求項1に記載の見積り装置。
  3. 前記情報処理装置は、通信データを処理する情報処理装置であり、
    前記処理性能値は、単位時間当たりに処理する前記通信データの数である
    ことを特徴とする請求項1または請求項2に記載の見積り装置。
  4. 複数のモジュールから構成される情報処理装置の処理性能値の上限を示す処理性能上限値を見積もる見積り装置の見積り方法であって、
    前記見積り装置は、前記モジュールそれぞれに1つのCPUコアが割り当てられたときの前記処理性能値を示す各モジュールの単位処理性能値、前記処理性能値の最小の見積り値を示す処理性能初期値、および、所定の割り当て可能CPUコア上限数を記憶部に記憶しており、
    前記処理性能初期値に所定の処理性能の増分を示す処理性能値増分を加算して一時処理性能値を算出し、前記算出した一時処理性能値および前記単位処理性能値を用いて、当該一時処理性能値を満たすのに必要なCPUコア数を示す必要CPUコア数を前記モジュールごとに算出し、前記モジュールごとに算出された必要CPUコア数の総数を割り当てCPUコア総数として算出するステップと、
    前記算出された割り当てCPUコア総数が前記割り当て可能CPUコア上限数を超えるか否かの判定を、前記一時処理性能値への前記処理性能値増分の加算を繰り返すごとに実行し、前記算出された割り当てCPUコア総数が前記割り当て可能CPUコア上限数を超えない最大の前記一時処理性能値を前記処理性能上限値として算出するステップと
    を実行することを特徴とする見積り方法。
JP2018033798A 2018-02-27 2018-02-27 見積り装置および見積り方法 Active JP6996341B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018033798A JP6996341B2 (ja) 2018-02-27 2018-02-27 見積り装置および見積り方法
US16/975,509 US11256550B2 (en) 2018-02-27 2019-02-25 Estimating device and estimating method
PCT/JP2019/006968 WO2019167859A1 (ja) 2018-02-27 2019-02-25 見積り装置および見積り方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018033798A JP6996341B2 (ja) 2018-02-27 2018-02-27 見積り装置および見積り方法

Publications (2)

Publication Number Publication Date
JP2019149043A true JP2019149043A (ja) 2019-09-05
JP6996341B2 JP6996341B2 (ja) 2022-01-17

Family

ID=67805851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018033798A Active JP6996341B2 (ja) 2018-02-27 2018-02-27 見積り装置および見積り方法

Country Status (3)

Country Link
US (1) US11256550B2 (ja)
JP (1) JP6996341B2 (ja)
WO (1) WO2019167859A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110855528A (zh) * 2019-11-22 2020-02-28 新华三技术有限公司 报文处理方法及测试设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI756974B (zh) 2020-12-09 2022-03-01 財團法人工業技術研究院 機器學習系統及其資源配置方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2927583B2 (ja) * 1991-09-27 1999-07-28 日東精工株式会社 並列処理プログラミングシミュレータ
JPH08249294A (ja) * 1995-03-10 1996-09-27 Hitachi Ltd 並列計算機システム及びプロセッサ数制御方法
JP4207994B2 (ja) * 2006-07-13 2009-01-14 トヨタ自動車株式会社 負圧発生装置の故障判定装置
JP4957256B2 (ja) 2007-01-12 2012-06-20 日本電気株式会社 システム構成変更ルール生成システム、方法およびプログラム
JP4797095B2 (ja) * 2009-07-24 2011-10-19 株式会社日立製作所 バッチ処理多重化方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110855528A (zh) * 2019-11-22 2020-02-28 新华三技术有限公司 报文处理方法及测试设备
CN110855528B (zh) * 2019-11-22 2021-10-29 新华三技术有限公司 报文处理方法及测试设备

Also Published As

Publication number Publication date
US20210034428A1 (en) 2021-02-04
US11256550B2 (en) 2022-02-22
JP6996341B2 (ja) 2022-01-17
WO2019167859A1 (ja) 2019-09-06

Similar Documents

Publication Publication Date Title
EP3637733B1 (en) Load balancing engine, client, distributed computing system, and load balancing method
Bourguiba et al. Improving network I/O virtualization for cloud computing
Huang et al. When backpressure meets predictive scheduling
WO2014208661A1 (ja) 仮想マシン配置設計装置及び方法とシステム並びにプログラム
JPWO2015141337A1 (ja) 受信パケット分散方法、キュー選択器、パケット処理装置、プログラム、およびネットワークインタフェースカード
KR20200076700A (ko) 성능 기반 패킷 스케줄러를 제공하기 위한 장치 및 방법
WO2017050215A1 (en) System and method for control traffic balancing in in-band software defined networks
JP6307377B2 (ja) 仮想ネットワーク割当方法および装置
Kashif et al. Buffer space allocation for real-time priority-aware networks
Wang et al. Infrastructure-efficient virtual-machine placement and workload assignment in cooperative edge-cloud computing over backhaul networks
WO2019167859A1 (ja) 見積り装置および見積り方法
EP3063969B1 (en) System and method for traffic engineering using link buffer status
CN111740903B (zh) 一种数据传输方法及装置
Zinner et al. A discrete-time model for optimizing the processing time of virtualized network functions
JP6325348B2 (ja) 仮想マシン配置装置
CN110113269B (zh) 一种基于中间件的流量控制的方法及相关装置
CN107239407B (zh) 一种内存的无线访问方法和装置
CN112685167A (zh) 资源使用方法、电子设备和计算机程序产品
JP6279427B2 (ja) 仮想ネットワーク割当方法および装置
Escudero-Sahuquillo et al. Feasible enhancements to congestion control in InfiniBand-based networks
US11714670B2 (en) VM priority level control system and VM priority level control method
KR102033339B1 (ko) 다중자원 인프라구조 관리 방법 및 장치
JP2017117009A (ja) マルチコアcpuを有するパケット転送装置の制御装置及びプログラム
Munir et al. Planning data transfers in grids: a multi‐service queueing approach
JP5984866B2 (ja) リソース管理装置およびリソース管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210413

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210611

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210727

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211129

R150 Certificate of patent or registration of utility model

Ref document number: 6996341

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150