[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2022107135A - 情報処理装置、情報処理システム、及び情報処理方法 - Google Patents

情報処理装置、情報処理システム、及び情報処理方法 Download PDF

Info

Publication number
JP2022107135A
JP2022107135A JP2021001871A JP2021001871A JP2022107135A JP 2022107135 A JP2022107135 A JP 2022107135A JP 2021001871 A JP2021001871 A JP 2021001871A JP 2021001871 A JP2021001871 A JP 2021001871A JP 2022107135 A JP2022107135 A JP 2022107135A
Authority
JP
Japan
Prior art keywords
rate
usage rate
reception
programs
transmission
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.)
Pending
Application number
JP2021001871A
Other languages
English (en)
Inventor
純 加藤
Jun Kato
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2021001871A priority Critical patent/JP2022107135A/ja
Priority to US17/489,842 priority patent/US11797642B2/en
Publication of JP2022107135A publication Critical patent/JP2022107135A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】演算処理部が実行する複数のプログラムそれぞれに対してリソースが割り当てられる情報処理装置において、演算処理部のリソースを有効活用する。【解決手段】記憶部は、各プログラムによる演算処理部の使用率、情報の送信レート、及び情報の受信レートに関する統計情報から求められた、各プログラムの第1相関関係及び第2相関関係を記憶する。演算処理部は、各プログラムに対する希望送信レートから保証送信レートを求め、各プログラムに対する希望受信レートから保証受信レートを求める。次に、演算処理部は、第1相関関係に基づいて保証送信レートを第1使用率に変換し、第2相関関係に基づいて保証受信レートを第2使用率に変換し、各プログラムに対する希望使用率、第1使用率、及び第2使用率を用いて目標使用率を決定する。そして、演算処理部は、目標使用率を各プログラムに割り当てる。【選択図】図1

Description

本発明は、情報処理に関する。
コンテナ環境においてネットワーク型CPU(Central Processing Unit)を隔離する技術が知られている(例えば、非特許文献1を参照)。非特許文献1によれば、高負荷なネットワークトラフィックを有するコンテナは、同じサーバを共有する他のコンテナが利用可能な計算リソースを減少させることがある。
QoS(Quality of Service)ポリシに基づいて、I/O(Input/Output)を処理する仮想計算機の計算機リソースを算出するI/Oアダプタ制御方法も知られている(例えば、特許文献1を参照)。ネットワークトラフィックの効果的な予測方法も知られている(例えば、非特許文献2を参照)。
特開2012-73660号公報
Junaid Khalid et al., "Iron: Isolating Network-based CPU in Container Environments", Proceedings of the 15th USENIX Symposium on Networked Systems Design and Implementation (NSDI ’18), pages 313-328, 2018. Muhammad Faisal Iqbal et al., "Efficient Prediction of Network Traffic for Real-Time Applications", Hindawi, Journal of Computer Networks and Communications, Volume 2019, Article ID 4067135, 11 pages, 2019.
非特許文献1に開示されているように、パケットの送受信に伴う割り込み処理は、その送受信の時点で動作しているアプリケーションプログラム(Application Program,AP)のCPU処理として、誤って計上されることがある。例えば、CPU使用率の高いAPの処理時間の6割近くを、別のAPによる割り込み処理の処理時間が占めていることもある。この場合、割り込み処理をパケットの送信元又は送信先のAPのCPU処理として計上することで、各APのCPU使用率を修正することができる。
このように、通信ネットワークのQoSを検討する際には、パケットの通信レートだけでなく、送受信の割り込み処理に伴って発生するCPU使用率も考慮され始めている。
通信ネットワークのQoSを実現する際、ユーザにより設定されたQoSに合わせてコンピュータのリソースが制御される。コンピュータのリソースには、CPUリソース及びネットワークリソースが含まれる。CPUリソースは、例えば、CPU使用率であり、ネットワークリソースは、例えば、ネットワークの通信レートである。パケットの通信には送信及び受信の2方向の通信が含まれるため、ネットワークの通信レートとして、送信レート及び受信レートが個別に設定される。
しかしながら、APがパケットを送信又は受信するために行うネットワーク処理には、送受信の割り込み処理も含まれる。ユーザが割り込み処理のようなOS(Operating System)の動作を考慮しながら、ネットワーク処理のCPU使用率を見積もることは難しい。さらに、送受信されるパケットの流量が同じであっても、パケットの処理ルートによってネットワーク処理のCPU使用率は変動する。このため、ユーザにより設定されたAPのCPU使用率が過剰になることがある。
なお、かかる問題は、コンテナを実装したサーバに限らず、様々なプログラムを実行する情報処理装置(コンピュータ)において生ずるものである。また、かかる問題は、CPUリソースの制御に限らず、様々な演算処理部のリソースの制御において生ずるものである。
1つの側面において、本発明は、演算処理部が実行する複数のプログラムそれぞれに対してリソースが割り当てられる情報処理装置において、演算処理部のリソースを有効活用することを目的とする。
1つの案では、情報処理装置は、複数のプログラムを実行する演算処理部及び記憶部を含む。記憶部は、各プログラムの送信レートと使用率との間の第1相関関係と、各プログラムの受信レートと使用率との間の第2相関関係とを記憶する。第1相関関係及び第2相関関係は、各プログラムに対する演算処理部の使用率と、各プログラムによって送信される情報の送信レートと、各プログラムによって受信される情報の受信レートとに関する統計情報から求められる。
演算処理部は、受付部、決定部、及び割り当て部を含む。受付部は、各プログラムに対する希望使用率と、各プログラムに対する希望送信レートと、各プログラムに対する希望受信レートとを受け付ける。
決定部は、希望送信レートから保証送信レートを求め、希望受信レートから保証受信レートを求める。次に、決定部は、第1相関関係に基づいて保証送信レートを第1使用率に変換し、第2相関関係に基づいて保証受信レートを第2使用率に変換し、希望使用率、第1使用率、及び第2使用率を用いて目標使用率を決定する。割り当て部は、各プログラムの目標使用率を各プログラムに割り当てる。
1つの側面によれば、演算処理部が実行する複数のプログラムそれぞれに対してリソースが割り当てられる情報処理装置において、演算処理部のリソースを有効活用することができる。
情報処理装置の機能的構成図である。 情報処理のフローチャートである。 情報処理システムの構成図である。 情報処理システムに含まれる情報処理装置の機能的構成図である。 QoS情報及び統計情報を示す図である。 統計情報から生成された情報を示す図である。 目標更新処理のフローチャートである。 目標計算処理のフローチャートである。 CPU使用率割り当て処理のフローチャートである。 送信レート制御処理のフローチャートである。 受信レート制御処理のフローチャートである。 第1情報処理及び第2情報処理を示す図(その1)である。 第1情報処理及び第2情報処理を示す図(その2)である。 第1情報処理及び第2情報処理を示す図(その3)である。 第1情報処理及び第2情報処理を示す図(その4)である。 第1情報処理及び第2情報処理を示す図(その5)である。 第1情報処理及び第2情報処理を示す図(その6)である。 第1情報処理及び第2情報処理を示す図(その7)である。 第1情報処理及び第2情報処理を示す図(その8)である。 第3情報処理を示す図である。 第4情報処理を示す図である。 情報処理装置のハードウェア構成図である。
以下、図面を参照しながら、実施形態を詳細に説明する。
通信ネットワークのQoS設定において、APのCPU使用率として70%が設定された場合、そのAPがCPUを1秒間に700ミリ秒までしか使用しないように、CPU使用率が制御される。
APの送信レートとして1Mppsが設定された場合、そのAPによって送信されるパケットの送信レートが少なくとも1Mppsになるように、送信レートが制御される。この場合、コンピュータは、送信レートが1Mppsを超えたら流量制限を行って、パケットをスロットリング又は破棄することができる。
APの受信レートとして1Mppsが設定された場合、そのAPによって受信されるパケットの受信レートが少なくとも1Mppsになるように、受信レートが制御される。この場合、コンピュータは、受信レートが1Mppsを超えたら流量制限を行って、パケットをスロットリング又は破棄することができる。送信レート及び受信レートは、1秒当たりのパケット数の代わりに、帯域幅を用いて設定されることもある。
APが行うネットワーク処理のCPU使用率が、1Mpps当たり10%であると仮定する。この場合、1Mppsの送信レート及び1Mppsの受信レートを保証するためには、CPU使用率を20%増加させればよいことになる。これにより、ネットワーク処理のCPU使用率を考慮して、CPUを制御することが可能になる。
しかしながら、ユーザが割り込み処理のようなOSの動作を考慮しながら、ネットワーク処理のCPU使用率を見積もることは難しい。さらに、送受信されるパケットの流量が同じであっても、パケットの処理ルートによってネットワーク処理のCPU使用率は変動する。
例えば、TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)とでは、プロトコル処理のCPU負荷がまったく異なっている。また、送信されるパケットの流量制限が行われている場合、送信の待ち合わせ及び再開の処理が追加される。1Mpps当たりのネットワーク処理のCPU使用率を仮定することは、説明上は都合がよいが、現実のネットワーク処理に適していないこともある。
QoSを保証するためにAPに割り当てられたCPU使用率は、パケットの送受信が発生しなければネットワーク処理のために使用されない。このため、常に送信及び受信の両方を行うベンチマークAP等でもない限り、パケットの流量によっては、割り当てられたCPU使用率が過剰になることがある。したがって、送信レート及び受信レートを保証するために割り当てられるCPU使用率を、パケットの流量に応じて変更することが望ましい。
また、静的に設定された送信レート及び受信レートに基づく流量制限を行う場合、CPU使用率が余っていても、パケットがスロットリング又は破棄されることがある。この場合、余剰分のCPU使用率をネットワーク処理に利用することが望ましい。
図1は、実施形態の情報処理装置の機能的構成例を示している。図1の情報処理装置101は、複数のプログラムを実行する演算処理部111及び記憶部112を含む。
記憶部112は、各プログラムの送信レートと使用率との間の第1相関関係131と、各プログラムの受信レートと使用率との間の第2相関関係132とを記憶する。第1相関関係131及び第2相関関係132は、各プログラムに対する演算処理部111の使用率と、各プログラムによって送信される情報の送信レートと、各プログラムによって受信される情報の受信レートとに関する統計情報から求められる。
演算処理部111は、受付部121、決定部122、及び割り当て部123を含み、第1相関関係131及び第2相関関係132を用いて情報処理を行う。
図2は、図1の情報処理装置101が行う情報処理の例を示すフローチャートである。まず、受付部121は、各プログラムに対する希望使用率と、各プログラムに対する希望送信レートと、各プログラムに対する希望受信レートとを受け付ける(ステップ201)。そして、演算処理部111は、複数のプログラムを実行する(ステップ202)。
次に、決定部122は、希望送信レートから保証送信レートを求め(ステップ203)、希望受信レートから保証受信レートを求める(ステップ204)。そして、決定部122は、第1相関関係131に基づいて保証送信レートを第1使用率に変換し(ステップ205)、第2相関関係に基づいて保証受信レートを第2使用率に変換する(ステップ206)。
次に、決定部122は、希望使用率、第1使用率、及び第2使用率を用いて目標使用率を決定する(ステップ207)。そして、割り当て部123は、各プログラムの目標使用率を各プログラムに割り当てる(ステップ208)。
図1の情報処理装置101によれば、演算処理部111のリソースを有効活用することができる。
図3は、図1の情報処理装置101を含む情報処理システムの構成例を示している。図3の情報処理システムは、情報処理装置301-1~情報処理装置301-P(Pは2以上の整数)を含む。各情報処理装置301-p(p=1~P)は、図1の情報処理装置101に対応する。
情報処理装置301-1~情報処理装置301-Pは、通信ネットワーク302を介して互いに通信することができる。通信ネットワーク302は、LAN(Local Area Network)又はWAN(Wide Area Network)である。
図4は、図3の情報処理装置301-pの機能的構成例を示している。図4の情報処理装置301-pは、CPU411、ネットワークインタフェース412、及び記憶部413を含む。CPU411は、プロセッサと呼ばれることもある。
記憶部413は、AP451-1~AP451-N(Nは1以上の整数)と、各AP451-i(i=1~N)の目標CPU使用率456、目標送信レート457、及び目標受信レート458とを記憶する。AP451-1~AP451-Nは、複数のプログラムの一例である。
CPU411は、実行部421、プロセススケジューラ422、パケット処理部423、送信パケットスケジューラ424、パケット送信部425、及びパケット受信部426を含む。CPU411は、受付部427、CPU使用率計測部428、流量計測部429、流量予測部430、及び計算部431をさらに含む。
ネットワークインタフェース412は、パケット送信部441、受信パケットスケジューラ442、及びパケット受信部443を含む。
CPU411は、図1の演算処理部111に対応し、記憶部413は、記憶部112に対応する。受付部427は、受付部121に対応し、流量予測部430及び計算部431は、決定部122に対応し、プロセススケジューラ422は、割り当て部123に対応する。
CPU使用率計測部428及び流量計測部429は、取得部の一例であり、送信パケットスケジューラ424は、送信制御部の一例であり、受信パケットスケジューラ442は、受信制御部の一例である。
実行部421は、AP451-1~AP451-Nを実行する。プロセススケジューラ422は、各AP451-iの目標CPU使用率456を各AP451-iに割り当てることで、各AP451-iの動作を制御する。CPU使用率は、演算処理部111の使用率に対応し、目標CPU使用率456は、目標使用率に対応する。
AP451-iは、他の情報処理装置301-pへ送信データを送信する際、送信データをパケット処理部423へ出力する。パケット処理部423は、AP451-iから出力される送信データに対するパケット処理を行って、送信データを含むパケットを送信パケットスケジューラ424へ出力する。送信データを含むパケットは、AP451-iによって送信される情報の一例である。
送信パケットスケジューラ424は、パケット処理部423から出力されるパケットをパケット送信部425へ出力する。このとき、送信パケットスケジューラ424は、出力されるパケットの流量を目標送信レート457に基づいて調整することで、パケットの送信レートを制御する。
パケット送信部425は、送信パケットスケジューラ424から出力されるパケットを、ネットワークインタフェース412へ出力する。パケット送信部441は、CPU411から出力されるパケットを、他の情報処理装置301-pへ送信する。
パケット受信部443は、他の情報処理装置301-pから受信データを含むパケットを受信して、受信パケットスケジューラ442へ出力する。受信データを含むパケットは、AP451-iによって受信される情報の一例である。
受信パケットスケジューラ442は、パケット受信部443から出力されるパケットをCPU411へ出力する。このとき、受信パケットスケジューラ442は、出力されるパケットの流量を目標受信レート458に基づいて調整することで、パケットの受信レートを制御する。
パケット受信部426は、ネットワークインタフェース412からパケットを受信して、パケット処理部423へ出力する。パケット処理部423は、パケット受信部426から出力されるパケットに対するパケット処理を行って、受信データを抽出し、抽出された受信データをAP451-iへ出力する。
ユーザは、各AP451-iに対する希望CPU使用率C1(i)、希望送信レートS1(i)、及び希望受信レートR1(i)を情報処理装置301-pに入力することで、QoSを設定する。受付部427は、入力されたC1(i)、S1(i)、及びR1(i)を受け付け、QoS情報452として記憶部413に格納する。希望CPU使用率C1(i)は、希望使用率に対応する。
CPU使用率計測部428は、各AP451-iのCPU使用率を計測し、計測されたCPU使用率を、記憶部413の統計情報453に記録する。流量計測部429は、各AP451-iによって送信されるパケットの送信レートと、各AP451-iによって受信されるパケットの受信レートとを計測し、計測された送信レート及び受信レートを、記憶部413の統計情報453に記録する。
流量予測部430は、統計情報453に記録された送信レート及び受信レートから、各AP451-iの予測送信レート及び予測受信レートをそれぞれ求める。
計算部431は、統計情報453を用いて、各AP451-iの送信レート変換式454及び受信レート変換式455を生成し、記憶部413に格納する。送信レート変換式454は、第1相関関係131に対応し、各AP451-iの送信レートとCPU使用率との間の相関関係を表す。受信レート変換式455は、第2相関関係132に対応し、各AP451-iの受信レートとCPU使用率との間の相関関係を表す。
計算部431は、QoS情報452に含まれる希望送信レートS1(i)から保証送信レートを求め、QoS情報452に含まれる希望受信レートR1(i)から保証受信レートを求める。
計算部431は、送信レート変換式454を用いて、保証送信レートを対応するCPU使用率に変換し、受信レート変換式455を用いて、保証受信レートを対応するCPU使用率に変換する。保証送信レートに対応するCPU使用率は、第1使用率に対応し、保証送信レートを保証するために消費されるCPU使用率を表す。保証受信レートに対応するCPU使用率は、第2使用率に対応し、保証受信レートを保証するために消費されるCPU使用率を表す。
統計情報453から生成された送信レート変換式454及び受信レート変換式455を用いることで、各AP451-iの保証送信レート及び保証受信レートに対応するCPU使用率を精度良く求めることができる。
計算部431は、QoS情報452に含まれる希望CPU使用率C1(i)と、保証送信レートに対応するCPU使用率と、保証受信レートに対応するCPU使用率とを用いて、各AP451-iの目標CPU使用率456を計算し、記憶部413に格納する。
また、計算部431は、各AP451-iの目標送信レート457及び目標受信レート458を計算し、記憶部413に格納する。目標送信レート457及び目標受信レート458の計算には、C1(i)、S1(i)、R1(i)、保証送信レートに対応するCPU使用率、保証受信レートに対応するCPU使用率、送信レート変換式454、及び受信レート変換式455が用いられる。
CPU411は、所定の契機で統計情報453を取得し、取得された統計情報453に基づいて、各AP451-iの目標CPU使用率456、目標送信レート457、及び目標受信レート458を動的に変更する。
図4の情報処理装置301-pによれば、希望送信レートS1(i)及び希望受信レートR1(i)を保証するためのCPU使用率が自動的に計算されて、目標CPU使用率456に反映される。このため、ユーザは、ネットワーク処理で消費されるCPU使用率を見積もることなく、AP451-iの視点のみからQoSを設定することができる。
CPU使用率計測部428は、各AP451-iの実行時間を計測し、計測された実行時間から各AP451-iの合計のCPU使用率C(i)を計算する。CPU使用率計測部428は、さらに、パケット処理部423、送信パケットスケジューラ424、パケット送信部425、パケット受信部426、及び受信パケットスケジューラ442の処理時間を計測する。そして、CPU使用率計測部428は、計測された処理時間を用いて、パケット送受信の割り込み処理の影響が反映されるように、C(i)を補正する。
CPU使用率計測部428は、例えば、非特許文献1の技術を用いて、各AP451-iのCPU使用率を補正することができる。この場合、CPU使用率計測部428は、次式により、AP451-iの送信のCPU使用率C(i,TX)を計算する。
C(i,TX)=(T1(i,TX)+T2(i,TX))/T (1)
T1(i,TX)は、割り込み処理に関連しない処理時間を表し、T2(i,TX)は、割り込み処理に関連する処理時間を表し、Tは、処理時間を計測している間に経過した計測時間を表す。
T1(i,TX)は、パケット処理部423の処理時間と、送信パケットスケジューラ424の処理時間と、AP451-iの送信処理の延長でパケット処理を行う場合のパケット送信部425の処理時間との和である。T2(i,TX)は、送信完了の割り込み処理の処理時間と、AP451-iの送信処理の延長ではないパケット処理を行う場合のパケット送信部425の処理時間との和である。
また、CPU使用率計測部428は、次式により、AP451-iの受信のCPU使用率C(i,RX)を計算する。
C(i,RX)=(T1(i,RX)+T2(i,RX))/T (2)
T1(i,RX)は、割り込み処理に関連しない処理時間を表し、T2(i,RX)は、割り込み処理に関連する処理時間を表し、Tは、処理時間を計測している間に経過した計測時間を表す。
T1(i,RX)は、割り込み処理以外でパケット処理部423が行う処理の処理時間である。T2(i,RX)は、パケット受信部426の処理時間と、割り込み処理時にパケット処理部423が行う処理の処理時間との和である。
CPU使用率計測部428は、次式により、T1(i,TX)及びT1(i,RX)を計算する。
T1(i,TX)=ΣT1(i,q,TX) (3)
T1(i,RX)=ΣT1(i,q,RX) (4)
T1(i,q,TX)は、AP451-iのq番目の送信処理の処理時間を表し、T1(i,q,RX)は、AP451-iのq番目の受信処理の処理時間を表す。式(3)のΣは、処理時間を計測している間に行われたすべての送信処理に関する総和を表し、式(4)のΣは、処理時間を計測している間に行われたすべての受信処理に関する総和を表す。
CPU使用率計測部428は、非特許文献1の技術を用いて、次式によりT1(i,q,TX)を計算する。
T1(i,q,TX)=Time_end-Time_start (5)
Time_startは、q番目の送信処理の開始時刻を表し、Time_endは、q番目の送信処理の終了時刻を表す。Time_start及びTime_endは、次式により計算される。
Time_X=cumtime+(now-swaptime) (6)
Time_Xは、Time_start又はTime_endを表す。cumtimeは、送信処理又は受信処理を行うスレッドの累計実行時間を表し、nowは、現在時刻を表し、swaptimeは、直近でスレッドが動作し始めた時刻を表す。now-swaptimeは、まだ累計実行時間にカウントされていない実行時間を表し、cumtimeにnow-swaptimeを加算することで、その時点における本当の累計実行時間が求められる。
CPU使用率計測部428は、T1(i,q,TX)と同様にして、T1(i,q,RX)を計算する。
パケット送受信の割り込み処理は、ハードウェア(hardware,HW)割り込み処理とソフトウェア(software,SW)割り込み処理とを含む。割り込み処理の種類は、HI、TX、RX、TIMER、SCSI、及びTASKLETの6種類である。
CPU使用率計測部428は、全種類のHW割り込み処理及びSW割り込み処理を含む割り込み処理の総処理時間Hと、各種類k(k=HI,TX,RX,TIMER,SCSI,TASKLET)のSW割り込み処理の処理時間S(k)とを計測する。H及びS(k)は、T1(i,q,TX)と同様の方法で計算される。
CPU使用率計測部428は、さらに、AP451-iの送信パケット数N(i,TX)及び受信パケット数N(i,RX)を計測する。そして、CPU使用率計測部428は、次式により、T2(i,TX)及びT2(i,RX)を計算する。
T2(i,TX)
=(O(TX)+S(TX))(N(i,TX)/ΣN(i,TX)) (7)
T2(i,RX)
=(O(RX)+S(RX))(N(i,RX)/ΣN(i,RX)) (8)
O(k)=(H-ΣS(k))(S(k)/ΣS(k)) (9)
O(k)は、種類kのHW割り込み処理の処理時間を表す。式(7)及び式(8)のΣは、i=1~Nに関する総和を表し、式(9)のΣは、k=HI,TX,RX,TIMER,SCSI,TASKLETに関する総和を表す。
CPU使用率計測部428は、式(3)のT1(i,TX)及び式(7)のT2(i,TX)を用いて、式(1)によりC(i,TX)を計算する。また、CPU使用率計測部428は、式(4)のT1(i,RX)及び式(8)のT2(i,RX)を用いて、式(2)によりC(i,RX)を計算する。
次に、CPU使用率計測部428は、補正値D(i)を用いて、次式により各AP451-iのC(i)を補正する。
C(i)=C(i)+D(i) (10)
D(i)の初期値は0である。パケットの送信に関する割り込み処理において、AP451-iがパケットの送信元であり、割り込み処理によりAP451-jが割り込まれた場合、i=jであれば補正値の更新は不要である。一方、i≠jであれば、CPU使用率計測部428は、次式によりAP451-iのD(i)及びAP451-jのD(j)を更新する。
D(i)=D(i)+U1(i) (11)
D(j)=D(j)-U1(i) (12)
U1(i)=T2(i,TX)/(T・N(i,TX)) (13)
U1(i)は、1つのパケットを送信した際の割り込み処理に関連するCPU使用率を表す。パケットが送信される度に、U1(i)が式(13)により更新され、D(i)が式(11)により更新され、D(j)が式(12)により更新される。これにより、AP451-jに計上されている送信の割り込み処理のCPU使用率が、AP451-iに正しく計上される。
パケットの受信に関する割り込み処理において、AP451-iがパケットの送信先であり、割り込み処理によりAP451-jが割り込まれた場合、i=jであれば補正値の更新は不要である。一方、i≠jであれば、CPU使用率計測部428は、次式によりAP451-iのD(i)及びAP451-jのD(j)を更新する。
D(i)=D(i)+U2(i) (14)
D(j)=D(j)-U2(i) (15)
U2(i)=T2(i,RX)/(T・N(i,RX)) (16)
U2(i)は、1つのパケットを受信した際の割り込み処理に関連するCPU使用率を表す。パケットが受信される度に、U2(i)が式(16)により更新され、D(i)が式(14)により更新され、D(j)が式(15)により更新される。これにより、AP451-jに計上されている受信の割り込み処理のCPU使用率が、AP451-iに正しく計上される。
CPU使用率計測部428は、所定回数の更新が行われた後のD(i)を用いて、式(10)により各AP451-iのC(i)を補正する。そして、CPU使用率計測部428は、各AP451-iの合計のCPU使用率C(i)、送信のCPU使用率C(i,TX)、及び受信のCPU使用率C(i,RX)を、統計情報453に記録する。
流量計測部429は、単位時間当たりに送信パケットスケジューラ424に入力される各AP451-iのパケットの個数と、単位時間当たりに送信パケットスケジューラ424から出力される各AP451-iのパケットの個数とを計測する。送信パケットスケジューラ424によりパケットのスロットリング又は破棄が行われていない場合、入力されるパケットの個数と出力されるパケットの個数とが等しくなる。
次に、流量計測部429は、単位時間当たりに送信パケットスケジューラ424に入力される各AP451-iのパケットの個数を、送信レート(in)として統計情報453に記録する。そして、流量計測部429は、単位時間当たりに送信パケットスケジューラ424から出力される各AP451-iのパケットの個数を、送信レート(out)として統計情報453に記録する。
また、流量計測部429は、単位時間当たりに受信パケットスケジューラ442に入力される各AP451-iのパケットの個数と、単位時間当たりに受信パケットスケジューラ442から出力される各AP451-iのパケットの個数とを計測する。受信パケットスケジューラ442によりパケットのスロットリング又は破棄が行われていない場合、入力されるパケットの個数と出力されるパケットの個数とが等しくなる。
次に、流量計測部429は、単位時間当たりに受信パケットスケジューラ442に入力される各AP451-iのパケットの個数を、受信レート(in)として統計情報453に記録する。そして、流量計測部429は、単位時間当たりに受信パケットスケジューラ442から出力される各AP451-iのパケットの個数を、受信レート(out)として統計情報453に記録する。
図5は、QoS情報452及び統計情報453の例を示している。APi(i=1~N)は、AP451-iの識別情報である。図5のQoS情報452は、各AP451-iの希望CPU使用率C1(i)、希望送信レートS1(i)、及び希望受信レートR1(i)を含む。
“-”は、ユーザによって具体的な数値が設定されなかったことを表す。この場合、ユーザからベストエフォートの指示が入力されたものとみなされ、C1(i)、S1(i)、又はR1(i)に0が設定される。
例えば、AP451-1の希望CPU使用率C1(1)は30%であり、AP451-2の希望送信レートS1(2)は1Mppsであり、AP451-3の希望受信レートR1(3)は1Mppsである。AP451-Nの希望CPU使用率C1(N)は10%であり、希望送信レートS1(N)は1Mppsであり、希望受信レートR1(N)は1Mppsである。
図5の統計情報453は、各AP451-iの合計のCPU使用率C(i)、送信のCPU使用率C(i,TX)、受信のCPU使用率C(i,RX)、送信レート(in)、受信レート(in)、送信レート(out)、及び受信レート(out)を含む。
例えば、AP451-1の合計のCPU使用率C(1)は30%であり、送信のCPU使用率C(1,TX)及び受信のCPU使用率C(1,RX)は0%である。AP451-1の送信レート(in)、受信レート(in)、送信レート(out)、及び受信レート(out)は0Mppsである。
AP451-2の合計のCPU使用率C(2)は5.9%であり、送信のCPU使用率C(2,TX)は0.6%であり、受信のCPU使用率C(2,RX)は0.3%である。AP451-2の送信レート(in)及び送信レート(out)は0.6Mppsであり、受信レート(in)及び受信レート(out)は0.3Mppsである。
各AP451-iのC(i)、C(i,TX)、C(i,RX)、送信レート(in)、受信レート(in)、送信レート(out)、及び受信レート(out)は、過去の複数の時刻それぞれについて取得される。
流量予測部430は、例えば、非特許文献2の技術を用いて、統計情報453に含まれる送信レート(in)及び受信レート(in)から、各AP451-iの予測送信レートS2(i)及び予測受信レートR2(i)をそれぞれ求める。この場合、流量予測部430は、以下の何れかの予測方法により、S2(i)及びR2(i)を求めることができる。
(a1)流量予測部430は、送信レート(in)をそのままS2(i)として用い、受信レート(in)をそのままR2(i)として用いる。少なくとも一定時間毎にS2(i)及びR2(i)を更新する場合、更新頻度を増加させることで予測精度が向上する。
(a2)流量予測部430は、過去の所定数の送信レート(in)の単純平均をS2(i)として用い、過去の所定数の受信レート(in)の単純平均をR2(i)として用いる。単純平均の代わりに加重平均を用いてもよい。
(a3)流量予測部430は、過去の送信レート(in)から二重指数平滑法を用いてS2(i)を求め、過去の受信レート(in)から二重指数平滑法を用いてR2(i)を求める。二重指数平滑法の計算負荷は比較的軽く、予測精度は高い。
計算部431は、統計情報453を用いて、各AP451-iの送信レート変換式454及び受信レート変換式455を求める。以下では、各AP451-iの送信レート変換式454をf1(i)と記載し、各AP451-iの受信レート変換式455をf2(i)と記載することがある。計算部431は、以下の何れかの計算方法により、f1(i)及びf2(i)を求めることができる。
(b1)ブラックボックス方式
計算部431は、複数の時刻それぞれにおける送信レート(out)と送信のCPU使用率C(i,TX)との間の関係から、補間によりf1(i)を求める。また、計算部431は、複数の時刻それぞれにおける受信レート(out)と受信のCPU使用率C(i,RX)との間の関係から、補間によりf2(i)を求める。
(b2)ホワイトボックス方式
CPU使用率計測部428は、送信の処理ルート毎のCPU使用率と受信の処理ルート毎のCPU使用率とを計測し、統計情報453に記録する。処理ルート毎のCPU使用率は、各処理ルートの処理時間から求められる。流量計測部429は、送信の処理ルート毎の処理パケット数と受信の処理ルート毎の処理パケット数とを計測し、統計情報453に記録する。
計算部431は、送信の処理ルート毎のCPU使用率及び処理パケット数から、1Mpps当たりのCPU使用率の期待値α1を求め、次式のようなf1(i)を生成する。
CPU使用率=α1・送信レート (21)
計算部431は、受信の処理ルート毎のCPU使用率及び処理パケット数から、1Mpps当たりのCPU使用率の期待値α2を求め、次式のようなf2(i)を生成する。
CPU使用率=α2・受信レート (22)
ホワイトボックス方式により求められたf1(i)及びf2(i)の変換精度は、ブラックボックス方式により求められたf1(i)及びf2(i)の変換精度よりも高くなる。
図6は、統計情報453から生成された情報の例を示している。統計情報453から生成された情報は、予測送信レートS2(i)、予測受信レートR2(i)、送信レート変換式f1(i)、及び受信レート変換式f2(i)を含む。
例えば、AP451-1の予測送信レートS2(1)及び予測受信レートR2(1)は0Mppsである。AP451-2の予測送信レートS2(2)は0.6Mppsであり、予測受信レートR2(2)は0.3Mppsである。
計算部431は、各AP451-iの目標CPU使用率456、目標送信レート457、及び目標受信レート458を、QoS情報452を保証するための第1部分と、それ以外の第2部分とに分けて求める。
以下では、目標CPU使用率456の第1部分をC3(i)と記載し、目標送信レート457の第1部分をS3(i)と記載し、目標受信レート458の第1部分をR3(i)と記載することがある。S3(i)は、保証送信レートに対応し、R3(i)は、保証受信レートに対応する。
以下では、目標CPU使用率456の第2部分をC4(i)と記載し、目標送信レート457の第2部分をS4(i)と記載し、目標受信レート458の第2部分をR4(i)と記載することがある。C4(i)は、第3使用率の一例であり、S4(i)は、追加送信レートの一例であり、R4(i)は、追加受信レートの一例である。S4(i)及びR4(i)については、次式が成り立つ。
0≦S4(i)≦S2(i)-S1(i) (23)
0≦R4(i)≦R2(i)-R1(i) (24)
まず、計算部431は、f1(i)を用いてS1(i)を変換することで、CPU使用率f1(i)[S1(i)]を求め、f2(i)を用いてR1(i)を変換することで、CPU使用率f2(i)[R1(i)]を求める。f1(i)[x]は、f1(i)を用いて送信レートxを変換することで求められたCPU使用率を表し、f2(i)[y]は、f2(i)を用いて受信レートyを変換することで求められたCPU使用率を表す。
次に、計算部431は、C1(i)、S1(i)、及びR1(i)が次式を満たすか否かをチェックする。
Σ(C1(i)+f1(i)[S1(i)]+f2(i)[R1(i)])
≦Cmax (25)
ΣS1(i)≦Smax (26)
ΣR1(i)≦Rmax (27)
式(25)のCmaxは、割り当て可能使用率の一例であり、CPU411の割り当て可能なCPU使用率の最大値を表す。Cmaxは、100%であってもよい。式(26)のSmaxは、HW仕様から決められる送信レートの最大値を表し、式(27)のRmaxは、HW仕様から決められる受信レートの最大値を表す。
式(25)~式(27)の何れかの条件が満たされない場合、QoS情報452を保証するための十分なリソースが存在しないと判定される。この場合、QoS違反は免れないため、計算部431は、リソース不足をユーザに通知し、ユーザは、リソース不足に対する対応を行う。ユーザは、QoS情報452を変更したり、情報処理装置301-pにリソースを追加したりすることができる。ユーザは、一部のAP451-iを他の情報処理装置301-pへ移動させることで、AP451-iの個数を削減することもできる。
一方、式(25)~式(27)のすべての条件が満たされる場合、QoS情報452を保証するための十分なリソースが存在すると判定される。そこで、計算部431は、次式によりC3(i)、S3(i)、及びR3(i)を計算する。
S3(i)=min(S1(i),S2(i)) (28)
R3(i)=min(R1(i),R2(i)) (29)
C3(i)=C1(i)+f1(i)[S3(i)]
+f2(i)[R3(i)] (30)
式(28)及び式(29)のmin(a,b)は、a及びbの最小値を表す。f1(i)[S3(i)]は、保証送信レートS3(i)に対応するCPU使用率を表し、f2(i)[R3(i)]は、保証受信レートR3(i)に対応するCPU使用率を表す。
式(30)によれば、希望CPU使用率C1(i)だけでなく、保証送信レートS3(i)及び保証受信レートR3(i)を保証するためのCPU使用率を含めて、C3(i)が計算される。このため、ユーザは、AP451-iのネットワーク処理で消費されるCPU使用率を見積もる必要がない。
式(28)によれば、希望送信レートS1(i)又は予測送信レートS2(i)のうち小さい方が保証送信レートS3(i)に設定される。したがって、S2(i)がS1(i)に達しない場合は、S1(i)よりも小さな送信レートに基づいてf1(i)[S3(i)]が計算されるため、過剰なCPU使用率の割り当てが防止される。
式(29)によれば、希望受信レートR1(i)又は予測受信レートR2(i)のうち小さい方が保証受信レートR3(i)に設定される。したがって、R2(i)がR1(i)に達しない場合は、R1(i)よりも小さな受信レートに基づいてf2(i)[R3(i)]が計算されるため、過剰なCPU使用率の割り当てが防止される。
このように、通信ネットワーク302の流量に合わせて、保証送信レート、保証受信レート、及びネットワーク処理のCPU使用率が最適化される。これにより、QoSを保証しながら、CPUリソース及びネットワークリソースを有効活用することができる。
例えば、図6のAP451-2の希望送信レートS1(2)は1Mppsであるが、予測送信レートS2(2)は0.6Mppsである。この場合、保証送信レートS3(2)を少なくとも0.6Mppsに設定しておけば、QoS違反は発生しない。
AP451-3の希望受信レートR1(3)は1Mppsであるが、予測受信レートR2(3)は1.5Mppsである。この場合、保証受信レートR3(3)を少なくとも1Mppsに設定しておけば、QoS違反は発生しない。
次に、計算部431は、i=1~Nに関するC3(i)の総和をCmaxから除外した後に残される余剰CPU使用率CSを、AP451-1~AP451-Nに分配することで、各AP451-iのC4(i)を決定する。これにより、QoS情報452を保証するCPU使用率よりも多くのCPU使用率を、各AP451-iに割り当てることができる。
このとき、計算部431は、S2(i)、S3(i)、R2(i)、及びR3(i)が次式を満たすか否かをチェックする。
f1(i)[S2(i)-S3(i)]+f2(i)[R2(i)-R3(i)]
≦CS/N (31)
CS=Cmax-ΣC3(i) (32)
式(32)のΣC3(i)は、合計使用率の一例であり、CSは、余剰使用率の一例である。
すべてのAP451-iについて式(31)が成り立つ場合、計算部431は、ベストケースの目標設定を行って、CS/NをC4(i)に決定する。
この場合、余剰CPU使用率CSがAP451-1~AP451-Nに対して公平に分配され、流量制限を行う必要がないため、S4(i)及びR4(i)は決定されない。したがって、各AP451-iの目標CPU使用率456はC3(i)+CS/Nとなり、目標送信レート457及び目標受信レート458は設定されない。この場合、流量制限が行われないため、送信レート及び受信レートが向上する。
例えば、図6のAP451-3の場合、S1(3)=0Mpps、R1(3)=1Mpps、S2(3)=0.2Mpps、R2(3)=1.5Mpps、S3(3)=S1(3)=0Mpps、R3(3)=R1(3)=1Mppsである。したがって、式(31)の左辺の値は、f1(3)[0.2Mpps-0Mpps]+f2(3)[1.5Mpps-1Mpps]となる。
ここで、CS/N=10%と仮定すると、左辺の値が8%である場合は式(31)が成り立つ。しかし、左辺の値が15%である場合は式(31)が成り立たず、他のAP451-iを犠牲にしない限り、AP451-3のすべての送信及び受信を処理することは困難である。
何れかのAP451-iについて式(31)が成り立たない場合、計算部431は、ベストケース以外の目標設定を行う。この場合、計算部431は、ユーザから指定されたポリシに合わせてS4(i)及びR4(i)を決定する。ユーザのポリシとしては、例えば、公平性優先のポリシ又は送受信優先のポリシが用いられる。
公平性優先のポリシでは、AP451-1~AP451-Nの間におけるCPU使用率の公平性が優先され、直ちに流量制限が行われる。公平性優先のポリシを用いる場合、計算部431は、次式を満たすS4(i)及びR4(i)を計算する。
f1(i)[S4(i)]+f2(i)[R4(i)]≦CS/N (33)
f1(i)[S4(i)]は、第1追加使用率の一例であり、f2(i)[R4(i)]は、第2追加使用率の一例である。この場合、計算部431は、以下の何れかの計算方法で、S4(i)及びR4(i)を求めることができる。
(c1)計算部431は、次式を満たす最小のjを求める。
f1(i)[S(i,j)]+f2(i)[R(i,j)]≦CS/N (34)
S(i,j)=(S2(i)-S3(i))/2 (35)
R(i,j)=(R2(i)-R3(i))/2 (36)
そして、計算部431は、求められたjを用いて、S(i,j)をS4(i)に決定し、R(i,j)をR4(i)に決定する。式(34)は、各AP451-iに対する制約条件を表している。
(c2)計算部431は、式(34)の条件を満たし、かつ、(S2(i)-S3(i)-S4(i))+(R2(i)-R3(i)-R4(i))を最小化するS4(i)及びR4(i)を、貪欲法、局所探索法等により求める。
送受信優先のポリシでは、ネットワーク処理のCPU使用率を割り当てることが優先され、全体のCPU使用率がCmaxに達するまでは、できるだけ流量制限が控えられる。送受信優先のポリシを用いる場合、計算部431は、次式を満たし、かつ、Σ((S2(i)-S3(i)-S4(i))+(R2(i)-R3(i)-R4(i)))を最小化するS4(i)及びR4(i)を、貪欲法、局所探索法等により求める。
Σ(f1(i)[S4(i)]+f2(i)[R4(i)])≦CS (37)
式(37)は、AP451-1~AP451-Nに対する制約条件を表している。Σ(f1(i)[S4(i)]+f2(i)[R4(i)])は、合計追加使用率の一例である。
ベストケース以外の場合、各AP451-iのC4(i)は、f1(i)[S4(i)]+f2(i)[R4(i)]となり、目標CPU使用率456は、C3(i)+f1(i)[S4(i)]+f2(i)[R4(i)]となる。また、目標送信レート457はS3(i)+S4(i)となり、目標受信レート458はR3(i)+R4(i)となる。
この場合、送信レートがS3(i)に達したとしても、流量制限が開始されるまでにS4(i)の余裕があるため、CPU使用率が余っていれば、S4(i)だけ送信レートが向上する。また、受信レートがR3(i)に達したとしても、流量制限が開始されるまでにR4(i)の余裕があるため、CPU使用率が余っていれば、R4(i)だけ受信レートが向上する。
図7は、図4の情報処理装置301-pが行う目標更新処理の例を示すフローチャートである。図7の目標更新処理は、例えば、一定周期で繰り返される。
まず、受付部427は、QoS情報452が変更されたか否かをチェックする(ステップ701)。新たなC1(i)、S1(i)、又はR1(i)が入力された場合、QoS情報452が変更されたと判定される。
QoS情報452が変更された場合(ステップ701,YES)、情報処理装置301-pは、目標計算処理を行い(ステップ704)、目標設定処理を行う(ステップ705)。
ステップ704において、計算部431は、各AP451-iの目標CPU使用率456、目標送信レート457、及び目標受信レート458を計算する。ステップ705において、プロセススケジューラ422は、記憶部413から目標CPU使用率456を取得する。ステップ705において、送信パケットスケジューラ424は、記憶部413から目標送信レート457を取得し、受信パケットスケジューラ442は、記憶部413から目標受信レート458を取得する。
一方、QoS情報452が変更されていない場合(ステップ701,NO)、流量計測部429は、流量変化が検出されたか否かをチェックする(ステップ702)。このとき、流量計測部429は、連続して計測された2つの送信レート(in)の差分DSと、連続して計測された2つの受信レート(in)の差分DRとを求める。そして、流量計測部429は、DS又はDRの何れかが閾値よりも大きい場合、流量変化が検出されたと判定し、DS及びDRの両方が閾値以下である場合、流量変化が検出されないと判定する。
流量変化が検出された場合(ステップ702,YES)、情報処理装置301-pは、ステップ704以降の処理を行う。一方、流量変化が検出されない場合(ステップ702,NO)、計算部431は、最後に目標計算処理が行われてから一定時間が経過したか否かをチェックする(ステップ703)。
一定時間が経過した場合(ステップ703,YES)、情報処理装置301-pは、ステップ704以降の処理を行う。一方、一定時間が経過していない場合(ステップ703,NO)、情報処理装置301-pは、処理を終了する。
図8は、図7のステップ704における目標計算処理の例を示すフローチャートである。まず、情報処理装置301-pは、統計情報453を取得する(ステップ801)。ステップ801において、CPU使用率計測部428は、各AP451-iの合計のCPU使用率C(i)、送信のCPU使用率C(i,TX)、及び受信のCPU使用率C(i,RX)を計測する。また、流量計測部429は、各AP451-iの送信レート(in)、受信レート(in)、送信レート(out)、及び受信レート(out)を計測する。
次に、流量予測部430は、各AP451-iの送信レート(in)及び受信レート(in)から、予測送信レートS2(i)及び予測受信レートR2(i)をそれぞれ求める(ステップ802)。
次に、計算部431は、統計情報453を用いて、各AP451-iの送信レート変換式f1(i)及び受信レート変換式f2(i)を求める(ステップ803)。そして、計算部431は、リソースが足りているか否かをチェックする(ステップ804)。QoS情報452を保証するための十分なリソースが存在する場合、リソースが足りていると判定される。
リソースが足りていない場合(ステップ804,NO)、計算部431は、リソース不足をユーザに通知する(ステップ805)。一方、リソースが足りている場合(ステップ804,YES)、計算部431は、QoS情報452に対応するCPU使用率を計算する(ステップ806)。ステップ806において、計算部431は、C3(i)、S3(i)、及びR3(i)を計算する。
次に、計算部431は、CPU使用率を公平に割り当て可能であるか否かをチェックする(ステップ807)。すべてのAP451-iについて式(31)が成り立つ場合、CPU使用率を公平に割り当て可能であると判定される。
CPU使用率を公平に割り当て可能である場合(ステップ807,YES)、計算部431は、流量制限を適用するか否かを判定する(ステップ808)。流量制限を適用しない場合(ステップ808,NO)、計算部431は、ベストケースの目標値を計算する(ステップ809)。ステップ809において、計算部431は、各AP451-iの目標CPU使用率456をC3(i)+CS/Nに決定する。
一方、CPU使用率を公平に割り当て可能ではない場合(ステップ807,NO)、計算部431は、ユーザから指定されたポリシに従って目標値を計算する(ステップ810)。ステップ810において、計算部431は、各AP451-iの目標CPU使用率456を、C3(i)+f1(i)[S4(i)]+f2(i)[R4(i)]に決定する。また、計算部431は、目標送信レート457をS3(i)+S4(i)に決定し、目標受信レート458をR3(i)+R4(i)に決定する。
流量制限を適用する場合(ステップ808,YES)、計算部431は、ステップ810の処理を行う。
図9は、プロセススケジューラ422が行うCPU使用率割り当て処理の例を示すフローチャートである。プロセススケジューラ422は、各AP451-iの目標CPU使用率456を、各AP451-iに割り当てる(ステップ901)。
プロセススケジューラ422は、各AP451-iの目標CPU使用率456のうち、C3(i)を最初に各AP451-iに割り当て、次にC4(i)を各AP451-iに割り当ててもよい。
図10は、送信パケットスケジューラ424が行う送信レート制御処理の例を示すフローチャートである。まず、送信パケットスケジューラ424は、パケット処理部423から入力されたパケットの送信元のAP451-iを特定する(ステップ1001)。そして、送信パケットスケジューラ424は、送信元のAP451-iに目標送信レート457が設定されているか否かをチェックする(ステップ1002)。
目標送信レート457が設定されている場合(ステップ1002,YES)、送信パケットスケジューラ424は、送信元のAP451-iの送信レート(in)が目標送信レート457を超えたか否かをチェックする(ステップ1003)。送信レート(in)が目標送信レート457を超えた場合(ステップ1003,YES)、送信パケットスケジューラ424は、入力されたパケットを破棄する(ステップ1004)。送信パケットスケジューラ424は、パケットを破棄する代わりにスロットリングを行ってもよい。
一方、目標送信レート457が設定されていない場合(ステップ1002,NO)、送信パケットスケジューラ424は、入力されたパケットをパケット送信部425へ出力する(ステップ1005)。送信レート(in)が目標送信レート457を超えていない場合(ステップ1003,NO)、送信パケットスケジューラ424は、ステップ1005の処理を行う。
図11は、受信パケットスケジューラ442が行う受信レート制御処理の例を示すフローチャートである。まず、受信パケットスケジューラ442は、パケット受信部443から入力されたパケットの送信先のAP451-iを特定する(ステップ1101)。そして、受信パケットスケジューラ442は、送信先のAP451-iに目標受信レート458が設定されているか否かをチェックする(ステップ1102)。
目標受信レート458が設定されている場合(ステップ1102,YES)、受信パケットスケジューラ442は、送信先のAP451-iの受信レート(in)が目標受信レート458を超えたか否かをチェックする(ステップ1103)。受信レート(in)が目標受信レート458を超えた場合(ステップ1103,YES)、受信パケットスケジューラ442は、入力されたパケットを破棄する(ステップ1104)。受信パケットスケジューラ442は、パケットを破棄する代わりにスロットリングを行ってもよい。
一方、目標受信レート458が設定されていない場合(ステップ1102,NO)、受信パケットスケジューラ442は、入力されたパケットをCPU411へ出力する(ステップ1105)。受信レート(in)が目標受信レート458を超えていない場合(ステップ1103,NO)、受信パケットスケジューラ442は、ステップ1105の処理を行う。
次に、図12A~図12Hを参照しながら、ユーザがネットワーク処理のCPU使用率を見積もって目標設定を行う第1情報処理と、計算部431がネットワーク処理のCPU使用率を自動的に計算して目標設定を行う第2情報処理とを比較する。
図12A~図12Hは、第1情報処理及び第2情報処理の例を示している。(A)は第1情報処理に対応し、(B)は第2情報処理に対応する。この例では、AP451-1~AP451-Nの何れかに対応する集計プログラムの動作について説明する。集計プログラムは、通信ネットワーク302を介して他の情報処理装置301-pからデータを収集し、収集されたデータの集計を行い、通信ネットワーク302を介して他の情報処理装置301-pへ集計結果を広報する。
図12Aは、ユーザにより設定された集計プログラムのQoS情報452の例を示している。ユーザは、集計プログラムに対して確保される基準CPU使用率を30%に設定し、集計プログラムに対する希望送信レート及び希望受信レートを1Mppsに設定する。
(A)の場合、ユーザは、1Mpps当たりの送信のCPU使用率を10%と見積り、1Mpps当たりの受信のCPU使用率を20%と見積もる。そして、基準CPU使用率、送信のCPU使用率、及び受信のCPU使用率の和である60%を、希望CPU使用率として設定する。さらに、ユーザは、送信レート又は受信レートが希望送信レート又は希望受信レートを超えた場合にパケットを破棄する流量制限を設定しておく。
この場合、ユーザにより見積もられた送信のCPU使用率又は受信のCPU使用率が実際のCPU使用率よりも多ければ、集計プログラムがCPUリソースを過剰に占有することになる。
(B)の場合、ユーザは、基準CPU使用率の30%を、そのまま希望CPU使用率として設定する。
図12Bは、集計プログラムによるデータ収集の受信レートが0.5Mppsである場合の情報処理の例を示している。
(A)の場合、統計情報453の送信レート(in)は0Mppsであり、受信レート(in)は0.5Mppsである。実際の状況において、CPU使用率は60%以上であり、送信レートは0Mppsであり、受信レートは0.5Mppsである。0.5Mppsは、希望受信レートの半分に相当する。
この場合、希望CPU使用率である60%が集計プログラムに割り当てられる。しかし、希望送信レートに対して見積もられた送信のCPU使用率である10%と、希望受信レートに対して見積もられた受信のCPU使用率の半分に相当する10%とが、実際には使用されていない。したがって、集計プログラムは、CPUリソースの20%を過剰に占有している。
(B)の場合、統計情報453は、(A)の場合と同様である。実際の状況において、CPU使用率は40%以上であり、送信レートは0Mppsであり、受信レートは0.5Mppsである。
この場合、希望CPU使用率である30%と、0.5Mppsの受信レートに対応するCPU使用率である10%とが、集計プログラムに割り当てられる。したがって、割り当てられるCPU使用率は40%となり、(A)の場合よりも20%だけ減少する。このため、減少したCPU使用率を他のAP451-iに割り当てることができる。
図12Cは、集計プログラムによるデータ収集の受信レートが1Mppsに上昇した場合の情報処理の例を示している。
(A)の場合、統計情報453の送信レート(in)は0Mppsであり、受信レート(in)は1Mppsである。実際の状況において、CPU使用率は60%以上であり、送信レートは0Mppsであり、受信レートは1Mppsである。1Mppsは、希望受信レートに相当する。
この場合、希望CPU使用率である60%が集計プログラムに割り当てられる。しかし、希望送信レートに対して見積もられた送信のCPU使用率である10%が、実際には使用されていない。したがって、集計プログラムは、CPUリソースの10%を過剰に占有している。
(B)の場合、統計情報453は、(A)の場合と同様である。実際の状況において、CPU使用率は50%以上であり、送信レートは0Mppsであり、受信レートは1Mppsである。
この場合、希望CPU使用率である30%と、1Mppsの受信レートに対応するCPU使用率である20%とが、集計プログラムに割り当てられる。したがって、割り当てられるCPU使用率は50%となり、(A)の場合よりも10%だけ減少する。このため、減少したCPU使用率を他のAP451-iに割り当てることができる。
図12Dは、集計プログラムによるデータ収集の受信レートが1.5Mppsに上昇した場合の情報処理の例を示している。
(A)の場合、統計情報453の送信レート(in)は0Mppsであり、受信レート(in)は1.5Mppsである。実際の状況において、CPU使用率は60%以上であり、送信レートは0Mppsであり、受信レートは1Mppsである。この場合、流量制限によって、受信レート(in)が1Mppsを超えた場合にパケットが破棄されるため、実際の受信レートは1Mppsとなる。
(B)の場合、統計情報453は、(A)の場合と同様である。実際の状況において、CPU使用率は50%以上であり、送信レートは0Mppsであり、受信レートは1Mpps以上である。例えば、ベストケースの場合、実際の受信レートは1.5Mppsとなり、実際のCPU使用率は60%以上となる。この場合、実際の受信レートは、(A)の場合よりも0.5Mppsだけ増加するため、余っているネットワークリソースを有効活用することができる。
図12Eは、集計プログラムによる集計が行われており、データの送受信が発生しない場合の情報処理の例を示している。
(A)の場合、統計情報453の送信レート(in)及び受信レート(in)は0Mppsである。実際の状況において、CPU使用率は60%以上であり、送信レート及び受信レートは0Mppsである。
この場合、希望CPU使用率である60%が集計プログラムに割り当てられる。しかし、希望送信レートに対して見積もられた送信のCPU使用率である10%と、希望受信レートに対して見積もられた受信のCPU使用率である20%とが、実際には使用されていない。したがって、集計プログラムは、CPUリソースの30%を過剰に占有している。
(B)の場合、統計情報453は、(A)の場合と同様である。実際の状況において、CPU使用率は30%以上であり、送信レート及び受信レートは0Mppsである。
この場合、希望CPU使用率である30%が集計プログラムに割り当てられる。したがって、割り当てられるCPU使用率は(A)の場合よりも30%だけ減少する。このため、減少したCPU使用率を他のAP451-iに割り当てることができる。
図12Fは、集計プログラムによる広報の送信レートが0.5Mppsである場合の情報処理の例を示している。
(A)の場合、統計情報453の送信レート(in)は0.5Mppsであり、受信レート(in)は0Mppsである。実際の状況において、CPU使用率は60%以上であり、送信レートは0.5Mppsであり、受信レートは0Mppsである。0.5Mppsは、希望送信レートの半分に相当する。
この場合、希望CPU使用率である60%が集計プログラムに割り当てられる。しかし、希望送信レートに対して見積もられた送信のCPU使用率の半分に相当する5%と、希望受信レートに対して見積もられた受信のCPU使用率である20%とが、実際には使用されていない。したがって、集計プログラムは、CPUリソースの25%を過剰に占有している。
(B)の場合、統計情報453は、(A)の場合と同様である。実際の状況において、CPU使用率は35%以上であり、送信レートは0.5Mppsであり、受信レートは0Mppsである。
この場合、希望CPU使用率である30%と、0.5Mppsの送信レートに対応するCPU使用率である5%とが、集計プログラムに割り当てられる。したがって、割り当てられるCPU使用率は35%となり、(A)の場合よりも25%だけ減少する。このため、減少したCPU使用率を他のAP451-iに割り当てることができる。
図12Gは、集計プログラムによる広報の送信レートが1Mppsに上昇した場合の情報処理の例を示している。
(A)の場合、統計情報453の送信レート(in)は1Mppsであり、受信レート(in)は0Mppsである。実際の状況において、CPU使用率は60%以上であり、送信レートは1Mppsであり、受信レートは0Mppsである。1Mppsは、希望送信レートに相当する。
この場合、希望CPU使用率である60%が集計プログラムに割り当てられる。しかし、希望受信レートに対して見積もられた受信のCPU使用率である20%が、実際には使用されていない。したがって、集計プログラムは、CPUリソースの20%を過剰に占有している。
(B)の場合、統計情報453は、(A)の場合と同様である。実際の状況において、CPU使用率は40%以上であり、送信レートは1Mppsであり、受信レートは0Mppsである。
この場合、希望CPU使用率である30%と、1Mppsの送信レートに対応するCPU使用率である10%とが、集計プログラムに割り当てられる。したがって、割り当てられるCPU使用率は40%となり、(A)の場合よりも20%だけ減少する。このため、減少したCPU使用率を他のAP451-iに割り当てることができる。
図12Hは、集計プログラムによる広報の送信レートが1.5Mppsに上昇した場合の情報処理の例を示している。
(A)の場合、統計情報453の送信レート(in)は1.5Mppsであり、受信レート(in)は0Mppsである。実際の状況において、CPU使用率は60%以上であり、送信レートは1Mppsであり、受信レートは0Mppsである。この場合、流量制限によって、送信レート(in)が1Mppsを超えた場合にパケットが破棄されるため、実際の送信レートは1Mppsとなる。
(B)の場合、統計情報453は、(A)の場合と同様である。実際の状況において、CPU使用率は40%以上であり、送信レートは1Mpps以上であり、受信レートは0Mppsである。例えば、ベストケースの場合、実際の送信レートは1.5Mppsとなり、実際のCPU使用率は45%以上となる。この場合、実際の送信レートは、(A)の場合よりも0.5Mppsだけ増加するため、余っているネットワークリソースを有効活用することができる。
図13は、AP451-1~AP451-3の3個のAPについて、ユーザがネットワーク処理のCPU使用率を見積もって目標設定を行う、第3情報処理の例を示している。この例では、ユーザは、AP451-1に対する基準CPU使用率を20%に設定し、基準CPU使用率をそのまま希望CPU使用率として設定する。そして、ユーザは、AP451-1に対する希望送信レート及び希望受信レートを設定しない。
次に、ユーザは、AP451-2に対する希望送信レート及び希望受信レートを1Mppsに設定し、AP451-2に対する基準CPU使用率を設定しない。そして、ユーザは、AP451-3に対する基準CPU使用率を20%に設定し、AP451-3に対する希望送信レート及び希望受信レートを1Mppsに設定する。
次に、ユーザは、1Mpps当たりの送信のCPU使用率を10%と見積り、1Mpps当たりの受信のCPU使用率を20%と見積もる。そして、ユーザは、AP451-2に対する送信のCPU使用率及び受信のCPU使用率の和である30%を、AP451-2に対する希望CPU使用率として設定する。また、ユーザは、AP451-3に対する基準CPU使用率、送信のCPU使用率、及び受信のCPU使用率の和である50%を、AP451-3に対する希望CPU使用率として設定する。
さらに、ユーザは、送信レート又は受信レートが希望送信レート又は希望受信レートを超えた場合にパケットを破棄する流量制限を設定しておく。
統計情報453において、AP451-1、AP451-2、及びAP451-3の送信レート(in)は、それぞれ、0Mpps、0.5Mpps、及び1.5Mppsである。AP451-1、AP451-2、及びAP451-3の受信レート(in)は、それぞれ、0Mpps、0.5Mpps、及び1.5Mppsである。
実際の状況において、AP451-1、AP451-2、及びAP451-3のCPU使用率は、それぞれ、20%、30%、及び50%である。AP451-1、AP451-2、及びAP451-3の送信レートは、それぞれ、0Mpps、0.5Mpps、及び1Mppsである。AP451-1、AP451-2、及びAP451-3の受信レートは、それぞれ、0Mpps、0.5Mpps、及び1Mppsである。
この場合、AP451-1~AP451-3の実際のCPU使用率の和が100%であるため、CPU使用率は余っていない。また、流量制限によって、AP451-3の送信レート(in)が1Mppsを超えた場合にパケットが破棄されるため、実際の送信レートは1Mppsとなる。同様に、流量制限によって、AP451-3の受信レート(in)が1Mppsを超えた場合にパケットが破棄されるため、実際の受信レートは1Mppsとなる。
図14は、図13の3個のAPについて、計算部431がネットワーク処理のCPU使用率を自動的に計算して目標設定を行う、第4情報処理の例を示している。AP451-1に対する希望CPU使用率と、AP451-1~AP451-3に対する希望送信レート及び希望受信レートは、図13と同様である。
この場合、ユーザは、AP451-2に対する希望CPU使用率を設定せず、AP451-3に対する基準CPU使用率である20%を、そのままAP451-3に対する希望CPU使用率として設定する。
統計情報453は、図13と同様である。実際の状況において、AP451-1、AP451-2、及びAP451-3のCPU使用率は、それぞれ、20%以上、15%以上、及び50%以上である。AP451-1、AP451-2、及びAP451-3の送信レートは、それぞれ、0Mpps、0.5Mpps以上、及び1Mpps以上である。AP451-1、AP451-2、及びAP451-3の受信レートは、それぞれ、0Mpps、0.5Mpps以上、及び1Mpps以上である。
送信レート(in)をS2(i)として用いた場合、S2(1)=0Mpps、S2(2)=0.5Mpps、S2(3)=1.5Mppsとなる。受信レート(in)をR2(i)として用いた場合、R2(1)=0Mpps、R2(2)=0.5Mpps、R2(3)=1.5Mppsとなる。
したがって、式(28)より、S3(1)=0Mpps、S3(2)=0.5Mpps、S3(3)=1Mppsとなり、式(29)より、R3(1)=0Mpps、R3(2)=0.5Mpps、R3(3)=1Mppsとなる。f1(1)~f1(3)としては、例えば、次式が生成される。
CPU使用率=10・送信レート (41)
f2(1)~f2(3)としては、例えば、次式が生成される。
CPU使用率=20・受信レート (42)
式(41)より、f1(1)[S3(1)]=0%、f1(2)[S3(2)]=5%、f1(3)[S3(3)]=10%となる。式(42)より、f2(1)[R3(1)]=0%、f2(2)[R3(2)]=10%、f2(3)[R3(3)]=20%となる。したがって、式(30)より、C3(1)=20%、C3(2)=15%、C3(3)=50%となる。
ここで、Cmax=100%と仮定すると、式(32)より、CS=15%となり、CS/N=5%となる。この場合、f1(3)[S2(3)-S3(3)]+f2(3)[R2(3)-R3(3)]=5%+10%=15%となるため、AP451-3について式(31)が成り立たない。そこで、計算部431は、ベストケース以外の目標設定を行う。
例えば、公平性優先のポリシを用いる場合、5%のCPU使用率による処理能力を超えるパケットの送受信が、流量制限の対象となる。この場合、AP451-1~AP451-3は、5%ずつ追加でCPU使用率を使用することができる。
送受信優先のポリシを用いる場合、余剰CPU使用率である15%のすべてがAP451-3に割り当てられる。この場合、AP451-1及びAP451-2には余剰CPU使用率が分配されないが、AP451-3は、流量制限を受けることなく、すべてのパケットを送受信することができる。
図1の情報処理装置101の構成は一例に過ぎず、情報処理装置101の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
図3の情報処理システムの構成は一例に過ぎず、情報処理システムの用途又は条件に応じて一部の構成要素を省略又は変更してもよい。図4の情報処理装置301-pの構成は一例に過ぎず、情報処理システムの用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
図2のフローチャートは一例に過ぎず、情報処理装置101の構成又は条件に応じて、一部の処理を省略又は変更してもよい。
図7~図11のフローチャートは一例に過ぎず、情報処理システムの構成又は条件に応じて、一部の処理を省略又は変更してもよい。
図5に示したQoS情報452及び統計情報453は一例に過ぎず、QoS情報452は、ユーザにより設定される希望CPU使用率、希望送信レート、及び希望受信レートに応じて変化し、統計情報453は、各AP451-iが行う処理に応じて変化する。希望送信レート及び希望受信レートは、1秒当たりのパケット数の代わりに、帯域幅を用いて設定されてもよい。
図6に示した予測送信レート及び予測受信レートは一例に過ぎず、予測送信レート及び予測受信レートは、統計情報453に応じて変化する。図12A~図12H、図13、及び図14に示した情報処理は一例に過ぎず、統計情報453及び実際の状況は、各AP451-iが行う処理に応じて変化する。
式(1)~式(42)は一例に過ぎず、情報処理装置301-pは、別の計算式を用いて情報処理を行ってもよい。
図15は、図1の情報処理装置101及び図4の情報処理装置301-pのハードウェア構成例を示している。図15の情報処理装置は、CPU1501、メモリ1502、入力装置1503、出力装置1504、補助記憶装置1505、媒体駆動装置1506、及びネットワーク接続装置1507を含む。これらの構成要素はハードウェアであり、バス1508により互いに接続されている。
メモリ1502は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを記憶する。メモリ1502は、図1の記憶部112又は図4の記憶部413として動作してもよい。
CPU1501は、例えば、メモリ1502を利用してプログラムを実行することにより、図1の受付部121、決定部122、及び割り当て部123として動作する。CPU1501は、図4のCPU411に対応し、メモリ1502を利用してプログラムを実行することにより、図4の実行部421、プロセススケジューラ422、パケット処理部423としても動作する。
CPU1501は、メモリ1502を利用してプログラムを実行することにより、図4の送信パケットスケジューラ424、パケット送信部425、及びパケット受信部426としても動作する。CPU1501は、メモリ1502を利用してプログラムを実行することにより、図4の受付部427、CPU使用率計測部428、流量計測部429、流量予測部430、及び計算部431としても動作する。
入力装置1503は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示又は情報の入力に用いられる。ユーザは、入力装置1503を用いて、希望CPU使用率、希望送信レート、及び希望受信レートを情報処理装置に入力することができる。
出力装置1504は、例えば、表示装置、プリンタ等であり、ユーザ又はオペレータへの問い合わせ又は指示、及び処理結果の出力に用いられる。処理結果は、各AP451-iが行う処理の結果であってもよい。
補助記憶装置1505は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置1505は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置1505にプログラム及びデータを格納しておき、それらをメモリ1502にロードして使用することができる。補助記憶装置1505は、図1の記憶部112又は図4の記憶部413として動作してもよい。
媒体駆動装置1506は、可搬型記録媒体1509を駆動し、その記録内容にアクセスする。可搬型記録媒体1509は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体1509は、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等であってもよい。ユーザ又はオペレータは、可搬型記録媒体1509にプログラム及びデータを格納しておき、それらをメモリ1502にロードして使用することができる。
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ1502、補助記憶装置1505、又は可搬型記録媒体1509のような、物理的な(非一時的な)記録媒体である。
ネットワーク接続装置1507は、通信ネットワーク302に接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置1507を介して受信し、それらをメモリ1502にロードして使用することができる。ネットワーク接続装置1507は、図4のネットワークインタフェース412として動作してもよい。
ネットワーク接続装置1507は、不図示のCPUを含む。ネットワーク接続装置1507内のCPUは、プログラムを実行することにより、図4のパケット送信部441、受信パケットスケジューラ442、及びパケット受信部443として動作する。
なお、情報処理装置が図15のすべての構成要素を含む必要はなく、情報処理装置の用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、可搬型記録媒体1509を使用しない場合は、媒体駆動装置1506を省略してもよい。
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
図1乃至図15を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数のプログラムを実行する演算処理部と、
前記複数のプログラム各々に対する前記演算処理部の使用率と、前記複数のプログラム各々によって送信される情報の送信レートと、前記複数のプログラム各々によって受信される情報の受信レートとに関する統計情報から求められた、前記複数のプログラム各々の送信レートと使用率との間の第1相関関係と、前記統計情報から求められた、前記複数のプログラム各々の受信レートと使用率との間の第2相関関係とを記憶する記憶部とを備え、
前記演算処理部は、
前記複数のプログラム各々に対する希望使用率と、前記複数のプログラム各々に対する希望送信レートと、前記複数のプログラム各々に対する希望受信レートとを受け付ける受付部と、
前記希望送信レートから保証送信レートを求め、前記希望受信レートから保証受信レートを求め、前記第1相関関係に基づいて前記保証送信レートを第1使用率に変換し、前記第2相関関係に基づいて前記保証受信レートを第2使用率に変換し、前記希望使用率、前記第1使用率、及び前記第2使用率を用いて目標使用率を決定する決定部と、
前記複数のプログラム各々の前記目標使用率を、前記複数のプログラム各々に割り当てる割り当て部とを含む、
ことを特徴とする情報処理装置。
(付記2)
前記演算処理部は、前記統計情報を取得する取得部をさらに含み、
前記決定部は、前記取得部によって取得された前記統計情報を用いて、前記第1相関関係及び前記第2相関関係を生成することを特徴とする付記1記載の情報処理装置。
(付記3)
前記演算処理部は、
前記複数のプログラム各々に対する目標送信レートに基づいて、前記複数のプログラム各々によって送信される情報の送信レートを制御する送信制御部をさらに含み、
前記情報処理装置は、
前記複数のプログラム各々に対する目標受信レートに基づいて、前記複数のプログラム各々によって受信される情報の受信レートを制御する受信制御部をさらに含み、
前記決定部は、前記希望使用率、前記第1使用率、前記第2使用率、前記第1相関関係、前記第2相関関係、前記保証送信レート、及び前記保証受信レートに基づいて、前記目標送信レート及び前記目標受信レートを決定することを特徴とする付記1又は2記載の情報処理装置。
(付記4)
前記決定部は、前記希望使用率、前記第1使用率、及び前記第2使用率を前記複数のプログラムそれぞれについて加算することで求められる合計使用率を、前記演算処理部の割り当て可能使用率から除外した後に残される余剰使用率を、前記複数のプログラムに分配することで、前記複数のプログラム各々の第3使用率を決定し、前記希望使用率、前記第1使用率、前記第2使用率、及び前記第3使用率を用いて前記目標使用率を決定することを特徴とする付記1乃至3の何れか1項に記載の情報処理装置。
(付記5)
前記決定部は、前記複数のプログラム各々の前記第1相関関係に基づいて前記複数のプログラム各々の追加送信レートを変換することで求められる第1追加使用率と、前記複数のプログラム各々の前記第2相関関係に基づいて前記複数のプログラム各々の追加受信レートを変換することで求められる第2追加使用率とを、前記複数のプログラムそれぞれについて加算することで求められる合計追加使用率が、前記余剰使用率以下となるように、前記追加送信レート及び前記追加受信レートを決定し、前記保証送信レート及び前記追加送信レートを用いて前記目標送信レートを決定し、前記保証受信レート及び前記追加受信レートを用いて前記目標受信レートを決定することを特徴とする付記4記載の情報処理装置。
(付記6)
複数の情報処理装置を備える情報処理システムであって、
前記複数の情報処理装置各々は、
複数のプログラムを実行する演算処理部と、
前記複数のプログラム各々に対する前記演算処理部の使用率と、前記複数のプログラム各々によって送信される情報の送信レートと、前記複数のプログラム各々によって受信される情報の受信レートとに関する統計情報から求められた、前記複数のプログラム各々の送信レートと使用率との間の第1相関関係と、前記統計情報から求められた、前記複数のプログラム各々の受信レートと使用率との間の第2相関関係とを記憶する記憶部とを含み、
前記演算処理部は、
前記複数のプログラム各々に対する希望使用率と、前記複数のプログラム各々に対する希望送信レートと、前記複数のプログラム各々に対する希望受信レートとを受け付ける受付部と、
前記希望送信レートから保証送信レートを求め、前記希望受信レートから保証受信レートを求め、前記第1相関関係に基づいて前記保証送信レートを第1使用率に変換し、前記第2相関関係に基づいて前記保証受信レートを第2使用率に変換し、前記希望使用率、前記第1使用率、及び前記第2使用率を用いて目標使用率を決定する決定部と、
前記複数のプログラム各々の前記目標使用率を、前記複数のプログラム各々に割り当てる割り当て部とを含む、
ことを特徴とする情報処理システム。
(付記7)
前記演算処理部は、前記統計情報を取得する取得部をさらに含み、
前記決定部は、前記取得部によって取得された前記統計情報を用いて、前記第1相関関係及び前記第2相関関係を生成することを特徴とする付記6記載の情報処理システム。
(付記8)
前記演算処理部は、
前記複数のプログラム各々に対する目標送信レートに基づいて、前記複数のプログラム各々によって送信される情報の送信レートを制御する送信制御部をさらに含み、
前記複数の情報処理装置各々は、
前記複数のプログラム各々に対する目標受信レートに基づいて、前記複数のプログラム各々によって受信される情報の受信レートを制御する受信制御部をさらに含み、
前記決定部は、前記希望使用率、前記第1使用率、前記第2使用率、前記第1相関関係、前記第2相関関係、前記保証送信レート、及び前記保証受信レートに基づいて、前記目標送信レート及び前記目標受信レートを決定することを特徴とする付記6又は7記載の情報処理システム。
(付記9)
前記決定部は、前記希望使用率、前記第1使用率、及び前記第2使用率を前記複数のプログラムそれぞれについて加算することで求められる合計使用率を、前記演算処理部の割り当て可能使用率から除外した後に残される余剰使用率を、前記複数のプログラムに分配することで、前記複数のプログラム各々の第3使用率を決定し、前記希望使用率、前記第1使用率、前記第2使用率、及び前記第3使用率を用いて前記目標使用率を決定することを特徴とする付記6乃至8の何れか1項に記載の情報処理システム。
(付記10)
前記決定部は、前記複数のプログラム各々の前記第1相関関係に基づいて前記複数のプログラム各々の追加送信レートを変換することで求められる第1追加使用率と、前記複数のプログラム各々の前記第2相関関係に基づいて前記複数のプログラム各々の追加受信レートを変換することで求められる第2追加使用率とを、前記複数のプログラムそれぞれについて加算することで求められる合計追加使用率が、前記余剰使用率以下となるように、前記追加送信レート及び前記追加受信レートを決定し、前記保証送信レート及び前記追加送信レートを用いて前記目標送信レートを決定し、前記保証受信レート及び前記追加受信レートを用いて前記目標受信レートを決定することを特徴とする付記9記載の情報処理システム。
(付記11)
複数のプログラム各々に対する希望使用率と、前記複数のプログラム各々に対する希望送信レートと、前記複数のプログラム各々に対する希望受信レートとを受け付け、
演算処理部を用いて前記複数のプログラムを実行し、
前記希望送信レートから保証送信レートを求め、
前記希望受信レートから保証受信レートを求め、
前記複数のプログラム各々に対する前記演算処理部の使用率と、前記複数のプログラム各々によって送信される情報の送信レートと、前記複数のプログラム各々によって受信される情報の受信レートとに関する統計情報から求められた、前記複数のプログラム各々の送信レートと使用率との間の第1相関関係に基づいて、前記保証送信レートを第1使用率に変換し、
前記統計情報から求められた、前記複数のプログラム各々の受信レートと使用率との間の第2相関関係に基づいて、前記保証受信レートを第2使用率に変換し、
前記希望使用率、前記第1使用率、及び前記第2使用率を用いて目標使用率を決定し、
前記複数のプログラム各々の前記目標使用率を、前記複数のプログラム各々に割り当てる、
処理をコンピュータが実行することを特徴とする情報処理方法。
(付記12)
前記統計情報を取得し、
取得された前記統計情報を用いて、前記第1相関関係及び前記第2相関関係を生成する、
処理を前記コンピュータがさらに実行することを特徴とする付記11記載の情報処理方法。
(付記13)
前記希望使用率、前記第1使用率、前記第2使用率、前記第1相関関係、前記第2相関関係、前記保証送信レート、及び前記保証受信レートに基づいて、前記複数のプログラム各々に対する目標送信レート及び目標受信レートを決定し、
前記目標送信レートに基づいて、前記複数のプログラム各々によって送信される情報の送信レートを制御し、
前記目標受信レートに基づいて、前記複数のプログラム各々によって受信される情報の受信レートを制御する、
処理を前記コンピュータがさらに実行することを特徴とする付記11又は12記載の情報処理方法。
(付記14)
前記目標使用率を決定する処理は、前記希望使用率、前記第1使用率、及び前記第2使用率を前記複数のプログラムそれぞれについて加算することで求められる合計使用率を、前記演算処理部の割り当て可能使用率から除外した後に残される余剰使用率を、前記複数のプログラムに分配することで、前記複数のプログラム各々の第3使用率を決定する処理と、前記希望使用率、前記第1使用率、前記第2使用率、及び前記第3使用率を用いて前記目標使用率を決定する処理とを含むことを特徴とする付記11乃至13の何れか1項に記載の情報処理方法。
(付記15)
前記目標送信レート及び前記目標受信レートを決定する処理は、前記複数のプログラム各々の前記第1相関関係に基づいて前記複数のプログラム各々の追加送信レートを変換することで求められる第1追加使用率と、前記複数のプログラム各々の前記第2相関関係に基づいて前記複数のプログラム各々の追加受信レートを変換することで求められる第2追加使用率とを、前記複数のプログラムそれぞれについて加算することで求められる合計追加使用率が、前記余剰使用率以下となるように、前記追加送信レート及び前記追加受信レートを決定する処理と、前記保証送信レート及び前記追加送信レートを用いて前記目標送信レートを決定する処理と、前記保証受信レート及び前記追加受信レートを用いて前記目標受信レートを決定する処理とを含むことを特徴とする付記14記載の情報処理方法。
101、301-1~301-P 情報処理装置
111 演算処理部
112、413 記憶部
121、427 受付部
122 決定部
123 割り当て部
131 第1相関関係
132 第2相関関係
302 通信ネットワーク
411、1501 CPU
412 ネットワークインタフェース
421 実行部
422 プロセススケジューラ
423 パケット処理部
424 送信パケットスケジューラ
425、441 パケット送信部
426、443 パケット受信部
428 CPU使用率計測部
429 流量計測部
430 流量予測部
431 計算部
442 受信パケットスケジューラ
452 QoS情報
453 統計情報
454 送信レート変換式
455 受信レート変換式
456 目標CPU使用率
457 目標送信レート
458 目標受信レート
1502 メモリ
1503 入力装置
1504 出力装置
1505 補助記憶装置
1506 媒体駆動装置
1507 ネットワーク接続装置
1508 バス
1509 可搬型記録媒体

Claims (7)

  1. 複数のプログラムを実行する演算処理部と、
    前記複数のプログラム各々に対する前記演算処理部の使用率と、前記複数のプログラム各々によって送信される情報の送信レートと、前記複数のプログラム各々によって受信される情報の受信レートとに関する統計情報から求められた、前記複数のプログラム各々の送信レートと使用率との間の第1相関関係と、前記統計情報から求められた、前記複数のプログラム各々の受信レートと使用率との間の第2相関関係とを記憶する記憶部とを備え、
    前記演算処理部は、
    前記複数のプログラム各々に対する希望使用率と、前記複数のプログラム各々に対する希望送信レートと、前記複数のプログラム各々に対する希望受信レートとを受け付ける受付部と、
    前記希望送信レートから保証送信レートを求め、前記希望受信レートから保証受信レートを求め、前記第1相関関係に基づいて前記保証送信レートを第1使用率に変換し、前記第2相関関係に基づいて前記保証受信レートを第2使用率に変換し、前記希望使用率、前記第1使用率、及び前記第2使用率を用いて目標使用率を決定する決定部と、
    前記複数のプログラム各々の前記目標使用率を、前記複数のプログラム各々に割り当てる割り当て部とを含む、
    ことを特徴とする情報処理装置。
  2. 前記演算処理部は、前記統計情報を取得する取得部をさらに含み、
    前記決定部は、前記取得部によって取得された前記統計情報を用いて、前記第1相関関係及び前記第2相関関係を生成することを特徴とする請求項1記載の情報処理装置。
  3. 前記演算処理部は、
    前記複数のプログラム各々に対する目標送信レートに基づいて、前記複数のプログラム各々によって送信される情報の送信レートを制御する送信制御部をさらに含み、
    前記情報処理装置は、
    前記複数のプログラム各々に対する目標受信レートに基づいて、前記複数のプログラム各々によって受信される情報の受信レートを制御する受信制御部をさらに含み、
    前記決定部は、前記希望使用率、前記第1使用率、前記第2使用率、前記第1相関関係、前記第2相関関係、前記保証送信レート、及び前記保証受信レートに基づいて、前記目標送信レート及び前記目標受信レートを決定することを特徴とする請求項1又は2記載の情報処理装置。
  4. 前記決定部は、前記希望使用率、前記第1使用率、及び前記第2使用率を前記複数のプログラムそれぞれについて加算することで求められる合計使用率を、前記演算処理部の割り当て可能使用率から除外した後に残される余剰使用率を、前記複数のプログラムに分配することで、前記複数のプログラム各々の第3使用率を決定し、前記希望使用率、前記第1使用率、前記第2使用率、及び前記第3使用率を用いて前記目標使用率を決定することを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
  5. 前記決定部は、前記複数のプログラム各々の前記第1相関関係に基づいて前記複数のプログラム各々の追加送信レートを変換することで求められる第1追加使用率と、前記複数のプログラム各々の前記第2相関関係に基づいて前記複数のプログラム各々の追加受信レートを変換することで求められる第2追加使用率とを、前記複数のプログラムそれぞれについて加算することで求められる合計追加使用率が、前記余剰使用率以下となるように、前記追加送信レート及び前記追加受信レートを決定し、前記保証送信レート及び前記追加送信レートを用いて前記目標送信レートを決定し、前記保証受信レート及び前記追加受信レートを用いて前記目標受信レートを決定することを特徴とする請求項4記載の情報処理装置。
  6. 複数の情報処理装置を備える情報処理システムであって、
    前記複数の情報処理装置各々は、
    複数のプログラムを実行する演算処理部と、
    前記複数のプログラム各々に対する前記演算処理部の使用率と、前記複数のプログラム各々によって送信される情報の送信レートと、前記複数のプログラム各々によって受信される情報の受信レートとに関する統計情報から求められた、前記複数のプログラム各々の送信レートと使用率との間の第1相関関係と、前記統計情報から求められた、前記複数のプログラム各々の受信レートと使用率との間の第2相関関係とを記憶する記憶部とを含み、
    前記演算処理部は、
    前記複数のプログラム各々に対する希望使用率と、前記複数のプログラム各々に対する希望送信レートと、前記複数のプログラム各々に対する希望受信レートとを受け付ける受付部と、
    前記希望送信レートから保証送信レートを求め、前記希望受信レートから保証受信レートを求め、前記第1相関関係に基づいて前記保証送信レートを第1使用率に変換し、前記第2相関関係に基づいて前記保証受信レートを第2使用率に変換し、前記希望使用率、前記第1使用率、及び前記第2使用率を用いて目標使用率を決定する決定部と、
    前記複数のプログラム各々の前記目標使用率を、前記複数のプログラム各々に割り当てる割り当て部とを含む、
    ことを特徴とする情報処理システム。
  7. 複数のプログラム各々に対する希望使用率と、前記複数のプログラム各々に対する希望送信レートと、前記複数のプログラム各々に対する希望受信レートとを受け付け、
    演算処理部を用いて前記複数のプログラムを実行し、
    前記希望送信レートから保証送信レートを求め、
    前記希望受信レートから保証受信レートを求め、
    前記複数のプログラム各々に対する前記演算処理部の使用率と、前記複数のプログラム各々によって送信される情報の送信レートと、前記複数のプログラム各々によって受信される情報の受信レートとに関する統計情報から求められた、前記複数のプログラム各々の送信レートと使用率との間の第1相関関係に基づいて、前記保証送信レートを第1使用率に変換し、
    前記統計情報から求められた、前記複数のプログラム各々の受信レートと使用率との間の第2相関関係に基づいて、前記保証受信レートを第2使用率に変換し、
    前記希望使用率、前記第1使用率、及び前記第2使用率を用いて目標使用率を決定し、
    前記複数のプログラム各々の前記目標使用率を、前記複数のプログラム各々に割り当てる、
    処理をコンピュータが実行することを特徴とする情報処理方法。
JP2021001871A 2021-01-08 2021-01-08 情報処理装置、情報処理システム、及び情報処理方法 Pending JP2022107135A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021001871A JP2022107135A (ja) 2021-01-08 2021-01-08 情報処理装置、情報処理システム、及び情報処理方法
US17/489,842 US11797642B2 (en) 2021-01-08 2021-09-30 Information processing device, information processing system, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021001871A JP2022107135A (ja) 2021-01-08 2021-01-08 情報処理装置、情報処理システム、及び情報処理方法

Publications (1)

Publication Number Publication Date
JP2022107135A true JP2022107135A (ja) 2022-07-21

Family

ID=82321882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021001871A Pending JP2022107135A (ja) 2021-01-08 2021-01-08 情報処理装置、情報処理システム、及び情報処理方法

Country Status (2)

Country Link
US (1) US11797642B2 (ja)
JP (1) JP2022107135A (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5326908B2 (ja) * 2009-07-29 2013-10-30 ソニー株式会社 送信レート制御方法および通信装置
JP5555903B2 (ja) 2010-09-27 2014-07-23 株式会社日立製作所 I/oアダプタ制御方法、計算機及び仮想計算機生成方法
JP6640025B2 (ja) * 2016-05-27 2020-02-05 本田技研工業株式会社 分散処理制御システム及び分散処理制御方法
US10389644B2 (en) * 2017-02-14 2019-08-20 The United States Of America As Represented By The Secretary Of The Air Force Method and apparatus for waveform independent congestion control
JP6960444B2 (ja) * 2019-11-26 2021-11-05 株式会社日立製作所 計算機システム及びリソース管理方法

Also Published As

Publication number Publication date
US11797642B2 (en) 2023-10-24
US20220222314A1 (en) 2022-07-14

Similar Documents

Publication Publication Date Title
US11316795B2 (en) Network flow control method and network device
EP2641361B1 (en) Dynamic queuing and pinning to improve quality of service on uplinks in a virtualized environment
TWI245506B (en) Flow control in network devices
KR100748187B1 (ko) 노드 가용도 예측 기반의 그리드 네트워크 혼잡 제어 장치및 방법
Liebeherr et al. JoBS: Joint buffer management and scheduling for differentiated services
US9197566B2 (en) Information processing method, recording medium, and information processing apparatus
WO2020034819A1 (zh) 分布式存储系统中服务质量保障方法、控制节点及系统
US9215191B2 (en) Information processing method, recording medium, and information processing device
US10063478B2 (en) Switching device and control method of switching device
JP6206009B2 (ja) パケット通信装置及びシステム
CN111930494A (zh) 用于在分布式系统架构上执行应用的方法
KR101737516B1 (ko) 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치
CN112714081B (zh) 一种数据处理方法及其装置
US20220224652A1 (en) Multi-Timescale Packet Marker
US9055086B2 (en) System and method for managing data transfer from a data center including bandwidth limits and a flex parameter indicating bandwidth variation between data transfer periods
JP2022107135A (ja) 情報処理装置、情報処理システム、及び情報処理方法
US11513856B2 (en) Method, devices and computer program products for resource usage
KR20120055947A (ko) 가입자 인지 플로우별 QoS 제공 방법 및 장치
Liebeherr et al. Buffer management and scheduling for enhanced differentiated services
WO2019167859A1 (ja) 見積り装置および見積り方法
US20220222101A1 (en) Information processing device, information processing system, and band control method
JP6829156B2 (ja) ネットワーク負荷分散装置および方法
WO2020166617A1 (ja) リソース競合調停装置、リソース競合調停方法、及びプログラム
EP3516858B1 (en) Allocation of physical communication resources
US20200021498A1 (en) First control apparatus, apparatus, method, program, recording medium, and system