JP6331554B2 - 負荷分散方法とシステムと装置及びプログラム - Google Patents

負荷分散方法とシステムと装置及びプログラム Download PDF

Info

Publication number
JP6331554B2
JP6331554B2 JP2014062675A JP2014062675A JP6331554B2 JP 6331554 B2 JP6331554 B2 JP 6331554B2 JP 2014062675 A JP2014062675 A JP 2014062675A JP 2014062675 A JP2014062675 A JP 2014062675A JP 6331554 B2 JP6331554 B2 JP 6331554B2
Authority
JP
Japan
Prior art keywords
processing
data
queue
executed
devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014062675A
Other languages
English (en)
Other versions
JP2015185036A (ja
Inventor
文浩 谷口
文浩 谷口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2014062675A priority Critical patent/JP6331554B2/ja
Publication of JP2015185036A publication Critical patent/JP2015185036A/ja
Application granted granted Critical
Publication of JP6331554B2 publication Critical patent/JP6331554B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)

Description

本発明は、負荷分散方法とシステムと装置及びプログラムに関する。
並列動作可能な複数の装置を備えたシステムにおいて、ある装置の出力が複数の装置への入力として振り分けられる部分(分岐部)と、複数の装置からの出力が他のより少数の装置への入力として合流する部分(合流部)を備えたシステムが知られている。例えば、特許文献1には、プロセッサへの伝送路を選択して該伝送路にパケットを出力する分岐部と、各プロセッサからのパケットを合流させる合流部とを備えた情報処理装置が開示されている。
この種のシステムにおいて、分岐部では、例えば一つの出力元(送信元)の装置からの出力がそれぞれ分岐先の複数の装置のいずれかへの入力として振り分けられる。合流部では、例えば送信元の複数の装置からの出力を例えば待ち行列等で合流させて処理する。なお、複数の装置は、複数のスイッチ等であってもよく、あるいは複数のプロセッサやCPU(Central Processing Unit)コア等であってもよい。
特開2000−207382号公報
以下に関連技術の分析を与える。
上記した並列動作可能な複数の装置を備えたシステムにおいて、装置間で負荷に偏りがあると、負荷が大きい部分がシステム全体の処理能力のボトルネックとなり得ることが知られている。このため、システムの処理性能を維持するには、装置の負荷は装置間で平均化されていることが望ましい。
処理の振分を行う分岐部について、振分先の複数の装置間で負荷を平均化する為の負荷分散制御として、例えば、よく知られたラウンドロビン方式(一定時間毎に順番に割り当て、持ち時間が経過すると、再スケジュール対象の最後に回される)等の適用が可能である。
一方、複数の出力を合流する合流部における負荷の制御については、例えば半二重接続のハブやスイッチで用いられるフロー制御方式のバックプレッシャー方式等が知られている。バックプレッシャー方式は、例えば受信バッファがオーバフローしそうな場合、送信元へコリジョン信号を送信してデータ送信を一時的に中断させる等の制御を行う。
このように、合流部における負荷の制御は、合流先の装置が負荷の上昇を検出すると、出力元(送信元)の装置に対して送信を行わせないように制御する。このため、出力元の装置において、処理を進めることができない時間が発生する。その結果、システム全体の処理能力が低下する場合がある。
したがって、本発明は上記課題に鑑みて創案されたものであって、その目的は、システム全体の処理能力の低下を回避し、例えば合流部等での負荷制御に好適とされるシステム、装置、負荷分散方法、プログラムを提供することにある。
本発明の一の側面によれば、入力されたデータを処理し処理結果データを出力する少なくとも一つの第1の装置と、前記第1の装置から出力される前記処理結果データに対して所定の処理を実行する第2の装置と、を備え、少なくとも一つの前記第1の装置は、前記第2の装置で処理待ち状態にあるデータ量から前記第2の装置の負荷状況を把握し、前記第2の装置で行われる前記所定の処理を、前記第2の装置の負荷状況に応じた分、前記第1の装置で実行するように制御する手段を備えたシステムが提供される。
本発明の他の側面によれば、入力されたデータを処理し処理結果データを他の装置に出力する手段と、前記他の装置で処理待ち状態にあるデータ量から前記他の装置の負荷状況を把握し、前記他の装置で行われる所定の処理を、前記他の装置の負荷状況に応じた分、実行するように制御する手段を備えた装置が提供される。
本発明のさらに他の側面によれば、少なくとも一つの第1の装置では、入力したデータを処理し処理結果データを出力し、
第2の装置では、前記第1の装置から出力される前記処理結果データに対して所定の処理を実行し、
少なくとも一つの前記第1の装置は、前記第2の装置で処理待ち状態にあるデータ量から前記第2の装置の負荷状況を把握し、
前記第2の装置で行われる前記所定の処理を、前記第2の装置の負荷状況に応じた分、前記第1の装置で実行するように制御する、負荷分散方法が提供される。
本発明のさらに他の側面によれば、入力されたデータを処理し処理結果データを他の装置に出力する装置を構成するコンピュータに、
前記他の装置で処理待ち状態にあるデータ量から前記他の装置の負荷状況を把握し、
前記他の装置で行われる所定の処理を、前記他の装置の負荷状況に応じた分、実行するように制御する処理を実行させるプログラムが提供される。
本発明のさらに他の側面によれば、前記プログラムを記録したコンピュータ読み出し可能な記録媒体(例えば半導体ストレージや磁気/光ストレージ等)が提供される。
本発明によれば、システム全体の処理能力の低下を回避した負荷分散を実現可能とし、例えば合流部等への負荷制御に好適される。
(A)は本発明の一実施形態を説明する図である。(B)は待ち行列の内容を説明する図である。 本発明の一実施形態の動作を説明する流れ図である。 本発明の一実施形態を説明する図である。 本発明の一実施形態の装置の構成の一例を模式的の例示する図である。 本発明の基本概念を説明する図である。
本発明の実施形態について図面を参照して説明する。はじめに本発明の基本概念について説明する。本発明によれば、図5を参照すると、システム20は、入力されたデータ23に対して処理211を実行し処理結果データ24を出力する少なくとも一つの第1の装置21と、前記第1の装置21から出力される前記処理結果データ24に対して処理221を実行する第2の装置22と、を備えている。前記第1の装置21は、前記第2の装置22で処理待ち状態222にあるデータ量に関する情報213から、前記第2の装置22の負荷状況を把握し、前記第2の装置22で行われる前記処理221を、前記第2の装置22の負荷状況に応じて、前記第1の装置21で実行するように制御する制御手段212を備えている。第1の装置21、第2の装置22は、プロセッサ、CPUコア等の処理装置であってもよい。第1の装置21における処理211、制御手段212は、第1の装置21を構成するコンピュータ、プロセッサ、CPU等で実行されるプログラムにより、その機能を実現するようにしてもよいことは勿論である。
前記第2の装置22で行われる前記処理221を、前記第2の装置22の負荷状況に応じた分、前記第1の装置21で実行するように制御することで、合流部等での負荷制御を行うにあたり、システム全体の処理能力の低下を回避可能としている。
本発明の形態の一つによれば、前記第2の装置(図5の22、あるいは、図1(A)の例えば装置14)は、一つ又は複数の前記第1の装置で処理されたデータを入力し処理実行まで保持する待ち行列(図5の222、あるいは、図1(A)の15)を備え、少なくとも一つの前記第1の装置(図5の21、あるいは、図1(A)の例えば装置11)は、入力されたデータに対して、前記第2の装置(図5の22、あるいは、図1(A)の例えば装置14)の代わりに前記第1の装置(図5の21、あるいは、図1(A)の例えば装置11)で実行する前記処理の件数を、前記第2の装置(図5の22、あるいは、図1(A)の例えば装置14)の前記待ち行列の長さ情報に基づき、決定するようにしてもよい。
本発明の形態の一つによれば、少なくとも一つの前記第1の装置(図1(A)の例えば装置11)は、前記入力したデータに対して、第1の処理(図1(A)の処理―2)又は、前記第1の処理(図1(A)の処理―2)と第2の処理(図1(A)の処理―3)を実行する。
前記第1の装置(図1(A)の例えば装置11)は、前記第1の装置(図1(A)の例えば装置11)で前記第2の処理(図1(A)の処理―3)を実行したデータの件数をカウントするオフロードカウンタ(図4の117)と、前記第2の装置(図1(A)の例えば装置14)の前記待ち行列(図1(A)の15)の長さ情報に基づき、前記第1の装置(図1(A)の例えば装置11)で前記第2の処理(図1(A)の処理―3)を実行するデータの件数の上限となる閾値を取得する手段(図4の閾値算出部118)とを備えた構成としてもよい。
前記第1の装置(図1(A)の例えば装置11)は、前記入力されたデータに対して前記第1の処理(図1(A)の処理―2)を実行したのち、オフロードカウンタのカウント値が前記閾値を超えている場合には、前記第2の処理(図1(A)の処理―3)を実行せずに、前記第1の処理の処理結果データを前記第2の装置(図1(A)の例えば装置14)に送信する構成としてもよい。前記第2の装置(図1(A)の例えば装置14)は、前記第1の装置で、前記第1の処理(図1(A)の処理―2)が実行されたデータに対して第2の処理(図1(A)の処理―3)を実行するようにしてもよい。
一方、オフロードカウンタのカウント値が前記閾値以下の場合には、前記第1の装置(図1(A)の例えば装置11)は、前記第2の処理(図1(A)の処理―3)をさらに実行して前記オフロードカウンタ(図4の117)を1つ増加させ、前記第1の処理(図1(A)の処理―2)と前記第2の処理(図1(A)の処理―3)を施した処理結果データを前記第2の装置(図1(A)の例えば装置14)に送信する構成としてもよい。
本発明の形態の一つによれば、前記第1の装置(図1(A)の例えば装置11)は、前記第1の処理(図1(A)の処理―2)を施したデータ、又は前記第1の処理(図1(A)の処理―2)と前記第2の処理(図1(A)の処理―3)を施した処理結果データを、どの処理まで完了したかを示す完了ステップ情報とともに前記第2の装置(図1(A)の例えば装置14)に送信する構成としてもよい。前記第2の装置(図1(A)の例えば装置14)は、前記待ち行列(図1(A)の15)に、前記第1の装置(図1(A)の例えば装置11)から送信された処理結果データと完了ステップ情報を対応付けて蓄積する(図1(B)参照)構成としてもよい。
本発明の形態の一つによれば、前記第1の装置(図1(A)の例えば装置11)は、前記第2の装置(図1(A)の例えば装置14)の前記待ち行列(図1(A)の15)の長さに関して、前記長さの範囲を複数の区分に分割し、前記各区分にそれぞれ対応させて前記閾値を予め設定しておき、取得した前記第2の装置の前記待ち行列の長さから、前記待ち行列の長さに対応した閾値を取得する構成としてもよい(図4参照)。
以上、基本概念及びその形態を説明したが、以下では例示的な実施形態について説明する。
本発明の実施形態によれば、並列に動作する装置(図1(A)の10、11、12、13、14)から構成されるシステム(1)において、複数の装置(11、12、13)と、それらの装置の出力を入力とする装置(14)について、これらの装置(11、12、13、14)間の作業量が平均的になるようにする。特に制限されないが、例えば各装置を、処理装置、例えばCPUコアとしたマルチコアCPUのシステムにおいて、複数のコアと、それら複数のコアの出力を入力とするコアについて、これらのコアの作業量を平均的にする。なお、図1(A)において、2は入力チャネル、3は出力チャネルを表している。
本発明の実施形態によれば、合流先の装置(14)が、相対的に低負荷時に行っていた処理の一部を、相対的に高負荷になった場合に、複数の出力元(送信元)の装置(11、12、13)で実行するように制御する。これにより、例えば出力元の装置(11、12、13)と、合流先の装置(14)間での負荷の平均化が可能となる。その際、出力元の装置(11、12、13)では、実行中の処理を停止させる等、システムの処理性能を低下させるような制御は行われない。
本発明の実施形態によれば、出力元の装置(11、12、13)は、待ち行列(15)に保持され処理待ち状態に置かれているデータ長から装置(14)の負荷状況(負荷の高低)を判断するようにしてよい。
また、本発明の実施形態によれば、処理の移動については、待ち行列(15)に溜まっているデータの個数に一定の計算を行うことで、段階的に行う。例えば出力元の装置(11、12、13)で実行する処理の割合として、
例えば10%(10個のデータを処理するうち1個について処理−3まで行い、それ以外は処理−2のみを行う)、
20%(10個のデータを処理するうち2個については処理−3まで行い、それ以外は処理−2のみを行う)、
30%(20%と同様)といったように段階的に行う。こうすることで、処理の移動によって、逆に、出力元の装置(11、12、13)の負荷が上がるのを防ぐ。
<実施形態1>
図1を参照して、本発明の一実施形態を説明する。図1(A)では、入力チャネル2と、出力チャネル3を持つ情報処理システム1が例示されている。入力チャネル2からデータを受信し、受信したデータに対し、処理−1、処理−2、処理−3、処理−4の4つの処理を順に実行し、処理結果のデータを出力チャネル3から送信している。
装置10、11、12、13、14は、並列動作可能とされる。装置10、11、12、13、14は、CPUコアで構成してもよい。装置11、12、13、14は、装置間でやり取りされるデータを蓄積保持する待ち行列を備えている。図1(A)では、簡単のため、装置14の待ち行列15のみが示されている。
装置10は、入力チャネル2で受信したデータを蓄えるためのバッファからなる待ち行列(不図示)を備えている。各装置10、11、12、13、14は並列に動作するが、それぞれの処理時間は一定でない。そのため、各装置は待ち行列を持ち、自装置で処理を実行するまでの間、出力元の装置から送信されたデータを蓄えておく。
装置11、12、13の待ち行列(不図示)は、装置10から出力されたデータを蓄える。装置14の待ち行列15は、装置11、12、13から出力されたデータを蓄える。特に制限されないが、装置14は、装置11、12、13からの出力を、例えば到着順に、順次、待ち行列15にキューイングし、処理を行うときに、待ち行列15からデキューする。特に制限されないが、各装置11−14の待ち行列は例えば先入れ先出し(First-In, First-Out;FIFO)方式のバッファで構成してもよい。
図1を参照して、本実施形態の動作の概略を説明する。
入力チャネル2からデータを受信(入力)する。入力されたデータに対する処理−1は、装置10で固定的に実行する。装置10は、処理−1を実行し、さらに装置11、12、13に対して出力を振り分ける。
処理−2は、装置10の振分結果に従い、装置11、12、13のいずれかで実行される。
処理−3は、装置11、12、13が実行する場合と、装置14が実行する場合の二通りがある。ただし、各データに対しては、いずれかの装置にて、一度だけ実行される。すなわち、例えば出力元の装置11で装置10で振り分けられたデータに対して処理−3を実行して処理結果データを装置14に送信し、装置14が処理−3が施されたデータに対して処理―3を実行することはない。
処理−4は、装置14で実行される。
特に制限されないが、図1(A)の例では、処理−2は、他の処理と比べて長時間の処理時間を要する処理(処理量大)であることを想定している。この為、処理−2を、3個の装置11、12、13に割り当て、これらの装置11、12、13を並列動作させ、システムの性能(スループット)の低下を回避する。
装置11、12、13の待ち行列(不図示)に蓄えられるデータと、装置14の待ち行列15に蓄えられるデータには、異なる性質がある。すなわち、装置11、12、13の待ち行列(不図示)に蓄えられるデータは、処理−1を実行した結果である。一方、装置14の待ち行列15に蓄えられるデータは、処理−2を実行した結果である場合と、処理−3を実行した結果である場合の2通りがある。
そのため、装置14の待ち行列15には、処理結果と、どの処理まで完了しているかの情報を組にしたデータが蓄えられる。図1(B)は、待ち行列15の内容の一例を模式的に例示する図である。図1(B)に示す例では、待ち行列15の先頭と2番目、4番目のデータは、完了ステップが2、すなわち、処理−2まで完了しており、処理結果がXXX、YYY、WWWであることを表している。待ち行列15の3番目のデータは、完了ステップが3、すなわち、処理−3まで完了しており、処理結果がZZZであることを表している。
本実施形態では、装置11、12、13において、データに対し、処理−2のみを実行するか、処理−2に加えて処理−3を実行するかは、待ち行列15に蓄えられたデータの長さによって決める構成とされている。装置11、12、13は、受信したデータ毎に、処理−2を実行した後、装置14の待ち行列15のデータの長さを調べる。装置11、12、13は装置14の待ち行列15のデータの長さに応じてデータのどの程度の割合(何パーセント)について処理−3まで実行するかを判断する。装置11、12、13は処理する複数件のデータの内、当該割合(閾値)のデータについて処理−3まで実行する。当該割合を超えるデータについては、処理−2まで実行する。
装置11、12、13での処理結果は、装置11、12、13で実行した処理のステップ(完了ステップ)と共に、装置14に送信され、装置14の待ち行列15に蓄積される。装置14は、待ち行列15からデータを取り出して完了ステップをチェックする。
完了ステップ2であれば、装置14は、処理結果に処理−3と処理−4を実行し、出力チャネル3から処理結果を出力する。完了ステップが3であれば、装置14は、処理結果に処理−4のみを実行し、出力チャネル3から処理結果を出力する。
図4は、図1(A)の装置11(出力元の装置)の構成を説明する図である。なお、図1(A)の装置11乃至13は互いに同一構成としてもよい。また、装置10、装置14も基本構成は装置11と同一としてもよい。
図4を参照すると、装置11は、データパスとして、データを受信する受信部111、受信部111で受信したデータ(装置10から受信した処理待ちデータ)を一時的に蓄積保持する受信バッファからなる待ち行列112、待ち行列112から取り出したデータに対して処理を実行する処理部113、処理部113での処理結果と完了ステップを送信する送信部114を備えている。なお、実行する処理が固定された装置10、14では、送信部114は処理結果のみを出力し、完了ステップは、出力しない構成としてもよい。
装置11は、データパスの受信部111での受信データの待ち行列112への書き込み、待ち行列112からのデータの読み出しと、処理部113で実行する処理の別の処理への切り替え等のスケジューリング、送信部114からの出力を制御する制御部115を備えている。
さらに制御系として、待ち行列112から受信したデータをカウントする受信カウンタ116、装置11において、受信されたデータのうち処理部113で処理3を実行する件数をカウントするオフロード(off−load)カウンタ117と、後段の装置(図1(A)の14)の待ち行列(図1(A)の15)の長さ情報を取得する待ち行列長さ取得部119と、装置14の待ち行列の長さ情報から閾値を導出する閾値算出部118を備えている。制御部115は、これらの各部116−119を制御する。
off−loadカウンタ117は、装置14における負荷の軽減(off−load)を制御するためのカウンタであり、装置14の負荷の程度に応じて装置11の処理部113での処理3が実行されるデータの件数を管理するためのカウンタである。
装置14の負荷の程度が相対的に高いと判断されると、装置11では、より多くの受信データに対して処理3を実行する。相対的に低負荷のときに装置14で行われる処理―3を、装置14が相対的に高負荷のときは、装置14に代わって、装置11で行い、負荷がさらに高い場合には、装置11でより多くの受信データに対して処理3を実行する。
この負荷分散制御を実現するため制御部115は、処理2を実行後、off−loadカウンタ117の値が閾値算出部118で装置14の待ち行列の長さに基づき算出された閾値よりも大のとき、完了ステップ=2とともに、装置14に出力する。off−loadカウンタ117の値が閾値以下の場合、処理3を実行し、off−loadカウンタ117を1つ増加させ、完了ステップ=3とともに、装置14に出力する。
なお、図4では、簡単のため、制御部115が、データパスの各部111−114と、制御系の各部116−119をそれぞれ制御信号線で制御する構成として図示しているが、データパスと制御系の制御部を別に備えた構成としてもよいし、あるいは、制御部115内に制御系の各部116−119を備えた構成としてもよい。
図2は、本発明の一実施形態の動作を説明する流れ図である。図3は、本発明の一実施形態の動作を説明する図である。図2乃至図4を参照して、装置11、12、13のより詳細な動作を説明する。装置11、12、13は、同じ手順に従って動作を行うので、装置11として説明する。
装置11において、受信カウンタ116のカウント値と閾値は0〜100とされているが、かかる値に制限されるものでないことは勿論である(例えば100を他の値に変更してもよい)。閾値が100の場合、装置11における受信データに対する処理―3の処理件数(off−loadカウンタ117でカウントされる)は最大100までとなる。
例えばパワーアップやリセット時等の装置11の初期化時に、装置11の制御部115は、受信カウンタ116とoff−loadカウンタ117を0クリアする(ステップS1)。
装置11は、装置10からのデータを処理するループ(無限ループ)に入る(例えば外部からの停止の指示等に基づく割り込みやリセットによりデータ処理を停止する以外、データ処理を繰り返す)。
装置11の処理部113は、待ち行列112からデータを受信する(ステップS2)。これに応じて、制御部115は、受信カウンタ116のカウント値を1つ増加させる(ステップS3)。なお、装置11において、処理部113が待ち行列112からデータを受信すると、待ち行列112の長さ(処理待ち状態として保持されるデータの量に対応する)は1単位減少する。
その結果、受信カウンタ116のカウント値が100を超えた場合(ステップS4のYES分岐)、制御部115は、受信カウンタ116とoff−loadカウンタ117を0クリアし(ステップS5)、その後、ステップS6に移る。受信カウンタ116のカウント値が例えば100以下の場合(ステップS4のNO分岐)、ステップS6に移る。
ステップS6では、処理部113が受信したデータに対して処理−2を実行する。
待ち行列長さ取得部119は、合流先の装置14の待ち行列15(図1(A)参照)の長さ情報を取得する(ステップS7)。装置14は、待ち行列15を管理する管理部から、自装置内の待ち行列15の長さ情報を、制御系通信路(不図示)を介して、装置11に通知する構成としてもよい。
閾値算出部118は、取得した合流先の装置14の待ち行列15(図1(A))に対して所定の演算を行うことで(あるいはテーブルルックアップ方式で)、閾値を算出(導出)し、制御部115に算出した閾値を供給する(ステップS8)。
閾値は、例えば具体的なシステムに応じて設定される。特に制限されないが、簡単な例として、図3に示すように、取得した装置14の待ち行列15の長さが「18」であれば、閾値算出部118で算出される閾値は10となる。また、取得した装置14の待ち行列15の長さが「0」〜「9」であれば、装置14での負荷は低いと判断されるため、閾値は「0」となる。この場合、装置11では受信したデータに対して処理3は実行せず、装置14で処理3を実行する。
制御部116は、閾値算出部118で算出された閾値とoff−loadカウンタ117のカウント値とを比較する。off−loadカウンタ117のカウント値が閾値を超えている場合(ステップS9のYES分岐)、完了ステップ=2(「処理−2まで処理した」ことを表す情報)と共に、処理−2の結果を、装置14に送信し(ステップS10)、ステップS2に戻る。
装置11において、閾値算出部118で算出された閾値がoff−loadカウンタ117のカウント値以上である場合(ステップS9のNO分岐)、処理部113は、受信データ(例えば、ステップS6で処理―2が実行されたデータ)に対して、処理−3を実行する(ステップS11)。
その後、制御部115は、off−loadカウンタ117のカウント値を+1増加させる(ステップS12)。
制御部115は、送信部114から、完了ステップ=3(「処理−3まで処理した」ことを表す情報)と共に、処理−3の結果を、装置14に送信し(ステップS13)、ステップS2に戻る。
なお、装置11において、処理−2、処理―3で処理、off−loadカウンタ117のカウント値を+1増加させるデータ(待ち行列112から取り出されるデータ)は、データを、出力元の装置(図1(A)の装置10)から装置11に送信されるパケットデータ、フレームデータ等、固定長(一定の長さ)のデータ単位であってもよい。あるいは、可変長データであってもよい。この場合、単位データ長(サイズ)の2倍のデータ量のデータに対して、処理−3を実行した場合、off−loadカウンタ117のカウント値を単位データ長の2倍、したがって+2増加させるようにしてもよい。
なお、実装に依存するが、図2のステップS7の合流先装置の待ち行列の長さ取得処理において、合流先装置の待ち行列の長さの取得の処理時間等を考慮して、受信データごとに合流先装置(図1(A)の14)の待ち行列の長さを取得するのではなく、ある所定期間ごとに、取得するようにしてもよい。
上記した実施形態によれば、以下のような作用効果を奏する。
A) 合流先の装置(図1(A)の14)の負荷が上昇した場合に、負荷をデータの出力元の装置(図1(A)の11、12、13)との間で負担する構成としている。この結果、システム全体で負荷を平均化している。すなわち、システム全体でのリソース、能力の有効活用を可能とし、スループットの向上に貢献する。
B) 合流先の装置(図1(A)の14)の負荷の測定を行うために、専用の装置、処理を追加する必要はない。装置の待ち行列の長さの管理機能は、リソースの管理のために、一般的に、待ち行列を備えた装置に具備されている。この機能を用いて、出力元の装置は、合流先の装置の待ち行列の長さ情報を取得し、合流先の装置の負荷状況を判断するためである。
C) 装置11、12、13間でも処理の負荷分散を促すという作用効果を奏する。装置11、12、13では、処理―2(又は処理2と処理−3)を実行するか、装置11、12、13が追加で実行することになる処理−3の量は、データの処理能力の高い装置程高くなる。多量のデータを処理可能な装置程、処理−3を実行するデータの件数が増えるためである。
<変形例1>
前記実施形態の変形例として、パイプライン処理への適用がある。図1の前記実施形態では、前段の装置11〜13の3台、後段の装置14の1台である。前段の装置と後段の装置が各1台の部分に着目して、前段、後段の装置のパイプライン処理に前記実施形態の機構を導入することが可能である。すなわち、前段の装置が、後段の装置の負荷状況に応じて後段の装置で行われるパイプラインステージを後段の装置に代わって実行する。この場合、前段の装置が1つであるため、上記C)の作用効果は得られないが、A)、B)の作用効果は得られる。
<変形例2>
更に別の変形例では、装置間で、動的に割り付ける処理を複数としている。図1を参照して説明した前記実施形態では、前段(出力元)の装置11、12、13で実行するか、後段(合流先)の装置14で実行するかを、動的に決める対象の処理は、処理−3に限定されている。しかしながら、装置14が実行する処理として、処理−3、処理−4、処理−5等が含まれる場合、処理−3と処理−4を動的に、前段(出力元)の装置で実行することも可能である。この場合、後段(合流先)の装置14の待ち行列15に設定されるデータに付属させる完了ステップの情報は、「2」、「3」、「4」のいずれかになる。この完了ステップの情報に応じて、装置14は、
「処理−3、処理−4、処理−5を実行する」、
「処理−4、処理−5を実行する」、
「処理−5を実行する」
のいずれかを選択する。
上記実施形態は、例えばシステムがその一部に、1個以上の前段の装置(処理装置)と、1個の後段の装置(処理装置)を含む場合、当該部分の負荷制御に適用して好適とされる。また定型的なデータを大量に処理する、通信装置に適用して好適とされる。
なお、上記の特許文献の開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
1、20 システム
2 入力チャネル
3 出力チャネル
10、11、12、13、14 装置
15 待ち行列
21 第1の装置
22 第2の装置
23 入力データ
24、25 処理結果
111 受信部
112 待ち行列
113 処理部
114 送信部
115 制御部
116 受信カウンタ
117 オフロード(off−load)カウンタ
118 閾値算出部
119 待ち行列長さ取得部
211、221 処理
212 制御手段(制御機能)
213 処理待ち状態のデータ量(待ち行列の長さ)
222 処理待ち状態のデータ(待ち行列)

Claims (8)

  1. 入力されたデータを処理し処理結果データを出力する少なくとも一つの第1の装置と、
    前記第1の装置から出力される前記処理結果データに対して所定の処理を実行する第2の装置と、
    を備え、
    前記第2の装置は、一つ又は複数の前記第1の装置で処理されたデータを入力し処理実行まで保持する待ち行列を備え、
    少なくとも一つの前記第1の装置は、
    前記第2の装置で処理待ち状態にあるデータ量から前記第2の装置の負荷状況を把握し、前記第2の装置で行われる前記所定の処理を、前記第2の装置の負荷状況に応じた分、前記第1の装置で実行するように制御する制御手段を備え、
    前記制御手段は、前記入力されたデータに対して、前記第2の装置の代わりに前記第1の装置で実行する前記所定の処理の件数を、前記第2の装置の前記待ち行列の長さ情報に基づき、決定する、ことを特徴とするシステム。
  2. 少なくとも一つの前記第1の装置は、
    前記入力したデータに対して、第1の処理又は、前記第1の処理と第2の処理を実行し、
    前記第2の装置で行われる前記所定の処理が前記第2の処理であり、
    前記第1の装置は、
    前記第1の装置で前記第2の処理を実行したデータの件数をカウントするオフロードカウンタと、
    前記第2の装置の前記待ち行列の長さ情報に基づき、前記第1の装置で前記第2の処理を実行するデータの件数の上限となる閾値を取得する手段と、
    を備え、
    前記第1の装置は、
    前記入力されたデータに対して前記第1の処理を実行したのち、
    前記オフロードカウンタのカウント値が前記閾値を超えている場合には、前記第2の処理を実行せずに、前記第1の処理の処理結果データを前記第2の装置に送信し、
    前記第2の装置は、
    前記第1の装置で前記第1の処理が実行されたデータに対して前記第2の処理を実行し、
    前記第1の装置において、
    前記オフロードカウンタのカウント値が前記閾値以下の場合には、前記第2の処理をさらに実行して前記オフロードカウンタを1つ増加させ、前記第1の処理と前記第2の処理を施した処理結果データを前記第2の装置に送信する、ことを特徴とする請求項記載のシステム。
  3. 少なくとも一つの前記第1の装置は、前記第1の処理を施したデータ、又は前記第1の処理と前記第2の処理を施した処理結果データを、どの処理まで完了したかを示す完了ステップ情報とともに前記第2の装置に送信し、
    前記第2の装置は、前記待ち行列に、前記第1の装置から送信された処理結果データと完了ステップ情報を対応付けて蓄積する、ことを特徴とする請求項記載のシステム。
  4. 少なくとも一つの前記第1の装置は、前記第2の装置の前記待ち行列の長さに関して、前記長さの範囲を複数の区分に分割し、前記各区分にそれぞれ対応させて前記閾値を予め設定しておき、取得した前記第2の装置の前記待ち行列の長さから、前記待ち行列の長さに対応した閾値を取得する、ことを特徴とする請求項2又は3に記載のシステム。
  5. 互いに並列に動作する複数の前記第1の装置を備えた、ことを特徴とする請求項1乃至のいずれか1項に記載のシステム。
  6. 入力されたデータを処理する第1の装置であって
    前記第1の装置で処理されたデータを入力し処理実行まで保持する待ち行列を備えた第2の装置に、処理結果データを出力する手段と、
    前記第2の装置で処理待ち状態にあるデータ量から前記第2の装置の負荷状況を把握し、
    前記第2の装置で行われる所定の処理を、前記第2の装置の負荷状況に応じた分、実行するように制御する制御手段を備え
    前記制御手段は、前記入力されたデータに対して、前記第2の装置の代わりに前記第1の装置で実行する前記所定の処理の件数を、前記第2の装置の前記待ち行列の長さ情報に基づき、決定する、ことを特徴とする第1の装置。
  7. 少なくとも一つの第1の装置では、入力したデータを処理し処理結果データを出力し、
    第2の装置では、前記第1の装置から出力される前記処理結果データに対して所定の処理を実行し、
    前記第2の装置は、一つ又は複数の前記第1の装置で処理されたデータを入力し処理実行まで保持する待ち行列を有し、
    少なくとも一つの前記第1の装置は、前記第2の装置で処理待ち状態にあるデータ量から前記第2の装置の負荷状況を把握し、
    前記第2の装置で行われる前記所定の処理を、前記第2の装置の負荷状況に応じた分、前記第1の装置で実行する制御において、前記入力されたデータに対して、前記第2の装置の代わりに前記第1の装置で実行する前記所定の処理の件数を、前記第2の装置の前記待ち行列の長さ情報に基づき、決定する、ことを特徴とする負荷分散方法。
  8. 入力されたデータを処理する第1の装置を構成するコンピュータに、
    前記第1の装置で処理されたデータを入力し処理実行まで保持する待ち行列を備えた第2の装置に、処理結果データを出力する処理と
    前記第2の装置で処理待ち状態にあるデータ量から前記第2の装置の負荷状況を把握し、
    前記第2の装置で行われる所定の処理を、前記第2の装置の負荷状況に応じた分、実行するように制御する処理であって、前記入力されたデータに対して、前記第2の装置の代わりに前記第1の装置で実行する前記所定の処理の件数を、前記第2の装置の前記待ち行列の長さ情報に基づき、決定する処理を実行させるプログラム。
JP2014062675A 2014-03-25 2014-03-25 負荷分散方法とシステムと装置及びプログラム Active JP6331554B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014062675A JP6331554B2 (ja) 2014-03-25 2014-03-25 負荷分散方法とシステムと装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014062675A JP6331554B2 (ja) 2014-03-25 2014-03-25 負荷分散方法とシステムと装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2015185036A JP2015185036A (ja) 2015-10-22
JP6331554B2 true JP6331554B2 (ja) 2018-05-30

Family

ID=54351457

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014062675A Active JP6331554B2 (ja) 2014-03-25 2014-03-25 負荷分散方法とシステムと装置及びプログラム

Country Status (1)

Country Link
JP (1) JP6331554B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3224782B2 (ja) * 1998-08-03 2001-11-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 処理分担動的変更方法及びコンピュータ
JP2000339120A (ja) * 1999-05-31 2000-12-08 Tokyo Denshi Sekkei Kk 画像出力システムおよび画像出力制御装置
JP2001146049A (ja) * 1999-11-19 2001-05-29 Nec Corp プリンタシステム及びそれを用いた描画処理方法及び描画処理を行うプログラムを記録した記録媒体
KR20030040814A (ko) * 2001-11-16 2003-05-23 삼성전자주식회사 고속 프린팅 장치 및 방법

Also Published As

Publication number Publication date
JP2015185036A (ja) 2015-10-22

Similar Documents

Publication Publication Date Title
US12073265B2 (en) Event handling in distributed event handling systems
US10454850B2 (en) Apparatus and method for buffering data in a switch
US8831025B2 (en) Parallel processing using multi-core processor
US8990452B2 (en) Dynamic reduction of stream backpressure
Suresh et al. Distributed resource management across process boundaries
KR20080041047A (ko) 멀티 코어 프로세서 시스템에서 로드 밸런싱을 위한 장치및 방법
US8868672B2 (en) Server node interconnect devices and methods
EP3295629B1 (en) Query plan and operation-aware communication buffer management
CN109697122A (zh) 任务处理方法、设备及计算机存储介质
JP2017050001A (ja) 効果的なニューラルネットワークの配置に用いるシステム及び方法
US10659372B2 (en) Multi-core lock-free rate limiting apparatus and method
US20140189695A1 (en) Methods for Packet Scheduling with Order in Software-Based Parallel Processing
CN102523153B (zh) 虚拟化环境下的负载均衡方法
EP3238386B1 (en) Apparatus and method for routing data in a switch
CN105159779B (zh) 提高多核cpu数据处理性能的方法和系统
Li et al. Prioritizing soft real-time network traffic in virtualized hosts based on xen
JP6331554B2 (ja) 負荷分散方法とシステムと装置及びプログラム
US9838338B2 (en) System and method for supporting efficient virtual output queue (VOQ) resource utilization in a networking device
US20140040903A1 (en) Queue and operator instance threads to losslessly process online input streams events
Khelghatdoust et al. Peacock: Probe-based scheduling of jobs by rotating between elastic queues
WO2018029132A1 (en) Method and device for scheduling of dataflow components
CN111858019B (zh) 任务调度方法、装置及计算机可读存储介质
US20190347139A1 (en) Technique for Determining a Load of an Application
EP3376719B1 (en) Arbitrating data packets
KR20210137472A (ko) 파이프라인 연산 장치, 프로그래머블 로직 콘트롤러, 및 파이프라인 처리의 실행 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180326

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180416

R150 Certificate of patent or registration of utility model

Ref document number: 6331554

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150