JP6232698B2 - ネットワークスイッチ装置、タスク移動方法、およびタスク移動プログラム - Google Patents

ネットワークスイッチ装置、タスク移動方法、およびタスク移動プログラム Download PDF

Info

Publication number
JP6232698B2
JP6232698B2 JP2012264111A JP2012264111A JP6232698B2 JP 6232698 B2 JP6232698 B2 JP 6232698B2 JP 2012264111 A JP2012264111 A JP 2012264111A JP 2012264111 A JP2012264111 A JP 2012264111A JP 6232698 B2 JP6232698 B2 JP 6232698B2
Authority
JP
Japan
Prior art keywords
task
processing unit
cpu usage
usage rate
task processing
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
JP2012264111A
Other languages
English (en)
Other versions
JP2014110538A (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 JP2012264111A priority Critical patent/JP6232698B2/ja
Publication of JP2014110538A publication Critical patent/JP2014110538A/ja
Application granted granted Critical
Publication of JP6232698B2 publication Critical patent/JP6232698B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明はネットワークスイッチ装置、タスク移動方法、およびタスク移動プログラムに関し、特にマルチコアプロセッサのリソースを有効に活用しうるネットワークスイッチ装置などに関する。
インターネットは一般的に、たとえばルータ、リピータ、ゲートウェイなどのように、通信パケットを一つのネットワークから他のネットワークに転送するデータ中継装置を多数含む。本明細書では、それらの装置を総称してネットワークスイッチ装置という。
ネットワークスイッチ装置は、受信したパケットのヘッダ情報の中に含まれるフロー情報(当該パケットの宛先についての情報、たとえばIPアドレス、ポート番号など)に基づいて、当該パケットに対して必要なデータ形式の変換などの処理を行った上で、そのフロー情報に応じたネットワークに当該パケットを転送する役割を果たす。即ち、ネットワークスイッチ装置は、インターネットの要所ごとに配置され、インターネットが機能を果たすために不可欠なものである。
近年は、インターネットを介して、高画質の映像や高音質の音声などを含むいわゆるリッチコンテンツのリアルタイム配信も多く行われるようになっている。このため、インターネットの要所に配置されるネットワークスイッチ装置は、ますます多くの量のパケットをリアルタイムに処理することが要求されている。
その一方でネットワークスイッチ装置が備えるプロセッサは、これまではクロック周波数を高周波数化することによって処理容量の向上に対応してきた。しかしながら、近年はプロセッサの動作に伴う発熱量などの問題により、クロック周波数の増加は物理的限界に達しているので、演算処理の実施主体であるコアを複数備えたマルチコアプロセッサが利用されるようになってきている。
これに関連して、以下の各々の技術文献がある。その中でも特許文献1には、各サブCPUで検出された負荷情報から当該CPUごとの処理負荷を予測し、それに応じて各タスクを各CPUに割り当てるという情報処理装置が記載されている。特許文献2には、マルチコアプロセッサを搭載し、ハッシュ法、即ちフロー情報を暗号学的ハッシュ関数に適用して得られるハッシュ値によって各コアに受信パケットを振り分けるというパケット振分装置が記載されている。
特許文献3には、各タスクの発生元のプログラムの必要計算量から必要なCPU使用率を計算し、その計算された必要CPU使用率に基づいてマルチコアプロセッサ上で当該タスクを実行するコアを選択するというタスク割当装置が記載されている。特許文献4には、マルチコアプロセッサにおける処理負荷の分散のため、各コアの機能情報に応じて割り振られた基本モジュール(処理内容)を再配置するという技術が記載されている。
特許文献5には、マルチコアプロセッサシステムにおいて各コアのキャッシュ使用状況に応じてコア間でタスクを移動させるという演算資源割当装置が記載されている。特許文献6には、マルチコアプロセッサのうちいくつのコアを利用して各タスクを稼働させるかを選択するという制御方法および装置が記載されている。
特開2011−141782号公報 特開2010−161546号公報 特開2010−277171号公報 再特WO2007/037006号 再特WO2010/093003号 特開2009−093383号公報
マルチコアプロセッサを利用したネットワークスイッチ装置で問題となっている点は、このマルチコアプロセッサの備える各コア間で負荷に偏りが生じていることである。図9は、既存の(特許文献2に記載の)ネットワークスイッチ装置910のソフトウェアとしての構成について示す説明図である。図10は、図9に示したネットワークスイッチ装置910のハードウェアとしての構成について示す説明図である。
ネットワークスイッチ装置910は、ハードウェアとしてはコンピュータプログラムを実行する主体となるマルチコアプロセッサ911と、データを記憶する記憶手段912と、他装置からのデータ入力を受ける入力インタフェース913と、他装置にデータを出力する出力インタフェース914とからなる。
マルチコアプロセッサ911は、それぞれが異なるコンピュータプログラムを実行する主体となる複数のコア911a〜911eを備え、コア911aがタスク割当部921、コア911b〜911eがタスク処理部922a〜dとして、各々同時に機能する。
他装置からネットワークスイッチ装置910宛に送られてきた入力パケットを、まずタスク割当部921が当該パケットのフロー情報に応じて、前述の特許文献2に記載されたハッシュ法によって振り分けを決定する。続いて、各々のタスク処理部922a〜dが、振り分けられた各々のパケットに対して出力先に対応するデータ形式変換などの処理を行って、その処理結果である出力パケットを、出力インタフェース914を介して他装置に出力する。
このタスクの割り当ては、当該パケットのフロー情報(宛先についての情報、たとえばIPアドレス、ポート番号など)に応じて、当該パケットを受信した時点で決定され、その時点で各タスクが作成される。このタスクの分量の増減は、他装置の動作や構成の変化によって決定され、しかも特定の装置の特定の処理の分量が急激に増減することも頻繁にある。従って、ネットワークスイッチ装置の側でこれを事前に予測することは事実上不可能である。
また、前述のハッシュ法は、暗号学的ハッシュ関数の特質によって「同一のフロー情報からは必ず同一のハッシュ値が得られる」ので、同一のフロー情報を持つパケットは必ず同一のタスク処理部(即ち同一のコア)に割り当てられるので処理順序の逆転が生じないという利点はあるが、これによってタスクが各コアで均一になるように割り当てられるということではない。
即ち、既存のネットワークスイッチ装置910では、特定のタスク処理部(即ち特定のコア)にタスクの割り当てが偏ってしまう可能性が高く、しかも一度あるタスク処理部(コア)に割り当てられたタスクを他のタスク処理部(コア)に再割り当てすることはできない。そのため、特定のタスク処理部(コア)においてCPU使用率が過大となってタスクの輻輳が発生し、マルチコアプロセッサの持つ演算能力を充分に活用できていない状況となっている。特に、当該装置を長時間にわたって継続して運用した場合に、そのような負荷の偏りが生じやすくなる。
このような問題点を解決しうる技術は、前述の特許文献1〜6のいずれにも記載されていない。特許文献1に記載の技術は、複数のセンサ値を処理するという情報処理装置に関するものであり、しかも「処理負荷の予測」を必要とするので、負荷の増減を予測することが困難なネットワークスイッチ装置に適用可能な技術ではない。特許文献3もこれと同様に、実行前に「必要なCPU使用率を計算」することを必要とする技術であるので、ネットワークスイッチ装置に適用可能な技術ではない。
特許文献2は、図9〜10に記載した既存のネットワークスイッチ装置910について記載しているに過ぎない。また、一つのタスク処理部(コア)に割り当てられたタスクを他のタスク処理部(コア)に再割り当てするという技術は特許文献4〜5に記載されてはいるが、これは動作中の各コアのCPU使用率に基づいてタスクを移動させるものではないので、ネットワークスイッチ装置における上記の問題を解決することはできない。特許文献6に記載の技術は、そもそも上記の問題とは特に関係ない。
本発明の目的は、複数のタスク処理部(コア)の負荷を平準化し、マルチコアプロセッサの演算能力を効率的に活用して処理を行うことを可能とするネットワークスイッチ装置、タスク移動方法、およびタスク移動プログラムを提供することにある。
上記目的を達成するため、本発明に係るネットワークスイッチ装置は、ネットワークを介して伝送されるパケットを他のネットワークに中継するネットワークスイッチ装置であって、入力されたパケットに対して出力先のネットワークに応じた処理を行う複数のタスク処理部と、入力されたパケットを処理するタスクを実行するタスク処理部を決定してそこに当該タスクを割り当てるタスク割当部と、各タスク処理部のCPU使用率を取得し、このCPU使用率に応じて一のタスク処理部に割り当てられたタスクを他のタスク処理部に移動させるタスク移動部とを備え、タスク移動部が、各タスク処理部のCPU使用率を取得するCPU使用率取得機能と、取得された各タスク処理部のCPU使用率が予め定められた閾値と各タスク処理部のCPU使用率の平均値との加算値を超えているか否かを判定するCPU使用率判定機能と、CPU使用率が閾値を超えたタスク処理部で実行されているタスクの中で前記他のタスク処理部に移動した場合のCPU使用率の合計値が閾値を超えない場合にタスクを他のタスク処理部に移動させるタスク移動処理機能とを備える、
ることを特徴とする。
上記目的を達成するため、本発明に係るタスク移動方法は、ネットワークを介して伝送されるパケットを備えられた複数のタスク処理部によって出力先のネットワークに応じた処理を行ってから当該パケットを他のネットワークに中継するネットワークスイッチ装置にあって、入力されたパケットを処理するタスクを実行するタスク処理部をタスク割当部が決定してそこに当該タスクを割り当て、当該タスクを割り当てられたタスク処理部がパケットに対して処理を行い、各タスク処理部のCPU使用率をタスク移動部が取得し、このCPU使用率に応じて一のタスク処理部に割り当てられたタスクを他のタスク処理部にタスク移動部が移動させ、タスク移動部がタスクを移動させる処理が、取得された各タスク処理部のCPU使用率が予め定められた閾値と各タスク処理部のCPU使用率の平均値との加算値を超えているか否かをタスク移動部のCPU使用率判定機能が判定し、CPU使用率が閾値を超えたタスク処理部で実行されているタスクの中で他のタスク処理部に移動した場合のCPU使用率の合計値が閾値を超えない場合にタスク移動部のタスク移動処理機能がタスクを他のタスク処理部に移動させることを特徴とする。
上記目的を達成するため、本発明に係るタスク移動プログラムは、ネットワークを介して伝送されるパケットを備えられた複数のタスク処理部によって出力先のネットワークに応じた処理を行ってから当該パケットを他のネットワークに中継するネットワークスイッチ装置にあって、このネットワークスイッチ装置が備えるプロセッサに、入力されたパケットを処理するタスクを実行するタスク処理部を決定してそこに当該タスクを割り当てる手順、各タスク処理部がパケットを処理する際のCPU使用率を取得する手順、およびこのCPU使用率に応じて一のタスク処理部に割り当てられたタスクを他のタスク処理部にタスク移動部が移動させる手順を実行させ、タスクを移動させる手順が、取得された各タスク処理部のCPU使用率が予め定められた閾値と各タスク処理部のCPU使用率の平均値との加算値を超えているか否かを判定する手順、およびCPU使用率が閾値を超えたタスク処理部で実行されているタスクの中で他のタスク処理部に移動した場合のCPU使用率の合計値が閾値を超えない場合にタスクを他のタスク処理部に移動させる手順を含むことを特徴とする。
本発明は、上記したように、タスク処理部による処理実行中のCPU使用率をタスク移動部が取得して、このCPU使用率によって割り当てられたタスクを移動可能なように構成したので、タスク実行中のCPU使用率の急激な変化にも容易に対応することができる。これによって、複数のタスク処理部(コア)の負荷を平準化し、マルチコアプロセッサの演算能力を効率的に活用して処理を行うことが可能であるという、優れた特徴を持つネットワークスイッチ装置、タスク移動方法、およびタスク移動プログラムを提供することができる。
本発明の基本形態に係るネットワークスイッチ装置の構成について示す説明図である。 本発明の実施形態に係るネットワークスイッチ装置のソフトウェアとしての構成について示す説明図である。 図2に示したネットワークスイッチ装置のハードウェアとしての構成について示す説明図である。 図2に示したタスク移動部の動作について示すフローチャートである。 図4のステップS105で示したCPU使用率判定機能による処理をより詳細に示すフローチャートである。 図4のステップS106〜107で示したタスク移動処理機能による処理をより詳細に示すフローチャートである。 図6のステップS121で示した処理で、タスクを移動させることが不可能であると判断される一例について示した説明図である。 図6のステップS121で示した処理で、タスクを移動させることが可能であると判断される一例について示した説明図である。 図9は、既存の(特許文献2に記載の)ネットワークスイッチ装置のソフトウェアとしての構成について示す説明図である。 図9に示したネットワークスイッチ装置のハードウェアとしての構成について示す説明図である。
(基本形態)
以下、本発明の基本形態の構成について添付図1に基づいて説明する。
最初に、基本形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
基本形態に係るネットワークスイッチ装置1は、ネットワークを介して伝送されるパケットを他のネットワークに中継するネットワークスイッチ装置である。このネットワークスイッチ装置1は、入力されたパケットに対して出力先のネットワークに応じた処理を行う複数のタスク処理部3a〜3dと、入力されたパケットを処理するタスクを実行するタスク処理部を決定してそこに当該タスクを割り当てるタスク割当部2と、各タスク処理部のCPU使用率を取得し、このCPU使用率に応じて一のタスク処理部に割り当てられたタスクを他のタスク処理部に移動させるタスク移動部4とを備える。
以上の構成を備える事により、このネットワークスイッチ装置1は、マルチコアプロセッサの演算能力を効率的に活用して処理を行うことが可能となる。
以下、これをより詳細に説明する。
図1は、本発明の基本形態に係るネットワークスイッチ装置1の構成について示す説明図である。ネットワークスイッチ装置1は、タスク割当部2と、複数のタスク処理部3a〜3dと、タスク移動部4とからなる。
他装置からネットワークスイッチ装置1宛に送られてきた入力パケットを、まずタスク割当部2が当該パケットのフロー情報に応じて、タスク処理部3a〜3dのいずれによって処理するかの振り分けを決定する。これに続いて、各々のタスク処理部3a〜3dが、振り分けられた各々のパケットに対して出力先に対応するデータ形式変換などの処理を行って、その処理結果である出力パケットを他装置に出力する。
タスク移動部4は、各々のタスク処理部3a〜3dのCPU使用率を取得し、そのCPU使用率に応じて各タスク処理部3a〜3dで実行されているタスクを他コアに移動させる処理を行う。
前述のように、ネットワークスイッチ装置1で実行されるタスクは事前の予測が困難なものであるが、タスク移動部4を備えることによって各タスクを実行中に移動させることを可能として、この問題を解決することができる。
(実施形態)
続いて、本発明の実施形態の構成について添付図2〜3に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るネットワークスイッチ装置10は、ネットワークを介して伝送されるパケットを他のネットワークに中継するネットワークスイッチ装置である。このネットワークスイッチ装置10は、入力されたパケットに対して出力先のネットワークに応じた処理を行う複数のタスク処理部102a〜dと、入力されたパケットを処理するタスクを実行するタスク処理部を決定してそこに当該タスクを割り当てるタスク割当部101と、各タスク処理部のCPU使用率を取得し、このCPU使用率に応じて一のタスク処理部に割り当てられたタスクを他のタスク処理部に移動させるタスク移動部103とを備える。
また、タスク移動部103は、各タスク処理部のCPU使用率を取得するCPU使用率取得機能103bと、取得された各タスク処理部のCPU使用率が予め定められた閾値を超えているか否かを判定するCPU使用率判定機能103cと、CPU使用率が閾値を超えたタスク処理部で実行されているタスクの中で他のタスク処理部に移動した場合のCPU使用率の合計値が閾値を超えない場合に当該タスクを当該他のタスク処理部に移動させるタスク移動処理機能103dとを備える。
また、タスク移動部103は、予め与えられた監視周期の経過、または保守者設定処理や発生イベント処理による装置設定関数からのコールバックに反応してCPU使用率取得機能の動作を開始制御する開始処理機能103aをさらに備える。さらに、タスク移動部103のタスク移動処理機能103dは、移動可能なタスクおよび移動先のタスク処理部の組み合わせが複数組存在する場合に、移動元もしくは移動先の各タスク処理部のCPU使用率がこのCPU使用率の平均値に最も近くなる組み合わせを選択する機能を備える。
そして、ネットワークスイッチ装置10は、それぞれが異なるコンピュータプログラムを実行する主体となる複数のコアを有するマルチコアプロセッサ11を備え、各タスク処理部102a〜dがそれぞれ異なるコアにおいて機能する。
以上の構成を備える事により、このネットワークスイッチ装置10は、マルチコアプロセッサの演算能力を効率的に活用し、タスク実行中のCPU使用率の急激な変化にも容易に対応して処理を行うことが可能となる。
以下、これをより詳細に説明する。
図2は、本発明の実施形態に係るネットワークスイッチ装置10のソフトウェアとしての構成について示す説明図である。図3は、図2に示したネットワークスイッチ装置10のハードウェアとしての構成について示す説明図である。ネットワークスイッチ装置10は、ネットワーク構成においては、たとえばルータ、リピータ、ゲートウェイなどのように、ネットワークを介して伝送されるデータパケットを他のネットワークに中継する装置である。
ネットワークスイッチ装置10は、ハードウェアとしてはコンピュータプログラムを実行する主体となるマルチコアプロセッサ11と、データを記憶する記憶手段12と、他装置からのデータ入力を受ける入力インタフェース13と、他装置にデータを出力する出力インタフェース14とからなる。
マルチコアプロセッサ11は、それぞれが異なるコンピュータプログラムを実行する主体となる複数のコア11a〜11fを備え、コア11aがタスク割当部101、コア11b〜11eがタスク処理部102a〜d、コア11fがタスク移動部103として、各々同時に機能する。図2〜3ではコアを6つ、タスク処理部を4つ備えた例を示したが、これ以外の数であってもよい。
他装置からネットワークスイッチ装置10宛に送られてきた入力パケットを、まずタスク割当部101が当該パケットのフロー情報に応じて振り分けを決定する。ここでタスク割当部101によるパケットの振り分けは、たとえば前述の特許文献2などに記載された公知技術を利用することができる。
続いて、各々のタスク処理部102a〜dが、振り分けられた各々のパケットに対して出力先に対応するデータ形式変換などの処理を行って、その処理結果である出力パケットを、出力インタフェース14を介して他装置に出力する。タスク処理部102a〜dは、最終的なデータの出力先が各々異なるものとしてもよいし、具体的な処理内容が各々異なるものとしてもよい。
タスク移動部103は、各々のタスク処理部102a〜dに該当する各コア11b〜11eのCPU使用率を取得し、そのCPU使用率に応じて各コア11b〜11eで実行されているタスクを他コアに移動させる処理を行う。
タスク移動部103は、開始処理機能103a、CPU使用率取得機能103b、CPU使用率判定機能103c、およびタスク移動処理機能103dといった各機能を備える。開始処理機能103aは、予め与えられた監視周期の経過、または装置設定関数からのコールバックに反応して、次に述べるCPU使用率取得機能103bによる処理を開始させる制御信号を発する。CPU使用率取得機能103bは、開始処理機能103aからの制御信号に反応して、各コア11b〜11eのCPU使用率を取得する。
CPU使用率判定機能103cは、CPU使用率取得機能103bが取得した各コア11b〜11eのCPU使用率から、各コア11b〜11eのタスク処理部102a〜dの中でCPU使用率が予め定められた閾値を超えているものが存在するか否かを判定する。タスク移動処理機能103dは、タスク処理部102a〜dで実行されているタスクの中で移動すべきものが存在するか否かを判定し、そのタスクを実際に他のタスク処理部102a〜d(コア11b〜11e)に移動させる。
図4は、図2に示したタスク移動部103の動作について示すフローチャートである。ネットワークスイッチ装置10の電源投入と共に動作を開始したタスク移動部103は、まず開始処理機能103aがタイマ機能に予め与えられた監視周期を設定してリセットし(ステップS101)、その監視周期が経過したか(ステップS102)、もしくは装置設定関数からのコールバックがあるか(ステップS103)否かについて判断する。
ここでいう装置設定関数とは、例えば保守者がコマンドを使ってポート間の疎通設定を行う際に呼び出される関数や、装置への拡張カードの増設、パケット処理負荷の増大、ポート障害などのイベント発生によって呼び出される関数などをいう。
また、ステップS103は前述のタイマ機能の時刻を書き替えることによっても実現可能である。監視周期の経過も装置設定関数からのコールバックもなければ、開始処理機能103aは引き続きステップS102〜103の判断を継続する。監視周期の経過、もしくは装置設定関数からのコールバックがあった場合は(ステップS102もしくは103がイエス)、CPU使用率取得機能103bが各コア11b〜11eのCPU使用率を取得する(ステップS104)。
これに続いて、CPU使用率判定機能103cが、CPU使用率取得機能103bが取得した各コア11b〜11eのCPU使用率から、各コア11b〜11eのタスク処理部102a〜dの中でCPU使用率が予め定められた閾値を超えているものが存在するか否かを判定する(ステップS105、詳細は図5に後述)。閾値を超えているものが存在しなければステップS101に処理が戻る。
閾値を超えているコア11b〜11eが存在すれば(ステップS105がイエス)、タスク移動処理機能103dがタスク処理部102a〜d(コア11b〜11e)で実行されている各タスクについて、移動すべきものが存在するか否かを判定し(ステップS106、詳細は図6に後述)、移動すべきと判断されたタスクを実際に移動させる処理を行う(ステップS107)。移動すべきと判断されたタスクがなければステップS101に処理が戻る。また、タスクを移動させた場合は、ステップS104に処理が戻って、改めてCPU使用率を取得する。
図5は、図4のステップS105で示したCPU使用率判定機能103cによる処理をより詳細に示すフローチャートである。CPU使用率判定機能103cはまず、タスク処理部102a〜d(コア11b〜11e)で動作する全てのタスクについて、各タスクごとのCPU使用時間を計算する(ステップS111)。CPU使用率判定機能103cはこれに続いて、コア11b〜11eごとにCPU使用時間を積算して、コアごとのCPU使用率、および全コアの平均CPU使用率を算出する(ステップS112)。
ここで、コア11b〜11e(タスク処理部102a〜d)ごとのCPU使用率を各々r、r、r、rとし、これらの平均値を平均CPU使用率aとする。CPU使用率判定機能103cは、予め与えられた閾値をtとすると、r(i=1,2,3,4)が以下の数1の条件を満たすコアが存在するか否かを判定する(ステップS113)。
Figure 0006232698
数1を満たすコア、即ちCPU使用率rと平均値aとの差が閾値を超えるコアが存在しなければ、各コアのCPU使用率の差は許容範囲内であると判定し、図4のステップS101に処理が戻り、タイマ機能を改めてリセットして待機状態に戻る。そのようなコアが存在すれば、そのコア(タスク処理部)を次に述べるタスク移動処理の対象として、図4のステップS106に処理を進める。
図6は、図4のステップS106〜107で示したタスク移動処理機能103dによる処理をより詳細に示すフローチャートである。タスク移動処理機能103dは、CPU使用率判定機能103cによってタスク移動処理の対象とされたコア11b〜11e(タスク処理部102a〜d)で実行されている各タスクについて、他のコア(タスク処理部)に移動させることが可能なタスクが存在するか否かについて判断する(ステップS121、図4のステップS106)。
このステップS121の処理でいう「移動させることが可能なタスク」とは、タスク移動処理の対象ではない他のコア(タスク処理部)のCPU使用率に当該タスクのCPU使用率を加算した値が平均CPU使用率a+閾値tを越えないタスクをいう。即ち、当該タスクのCPU使用率をrij(i=1,2,3,4、jは自然数、rijはi番目のCPUで実行されるj番目のタスク)、移動先のCPU使用率をr(k=1,2,3,4、k≠i)とすると、以下の数2の条件を満たすタスクが存在するか否かを、タスク移動処理機能103dは判断する。
Figure 0006232698
数2の条件を満たすタスクが存在しなければ、ステップS101に処理が戻る。数2の条件を満たすタスクが存在すれば、タスク移動処理機能103dはそのタスクをそのコア(タスク処理部)に移動させる処理を行って(ステップS122、図4のステップS107)、ステップS104に処理が戻り、改めてCPU使用率を取得し、全てのコア(タスク処理部)でCPU使用率が数1の条件を満たさなくなるまで処理を繰り返し継続する。
図7は、図6のステップS121で示した処理で、タスクを移動させることが不可能であると判断される一例について示した説明図である。図8は、図6のステップS121で示した処理で、タスクを移動させることが可能であると判断される一例について示した説明図である。
今、コア11b(タスク処理部102a)でCPU利用率rがa+tを越えたものとする。このコア11b(タスク処理部102a)では3つのタスクが実行されており、その各タスクごとのCPU利用率を各々r11、r12、r13とする。ここで、r=r11+r12+r13である。また、コア11c〜11e(タスク処理部102b〜d)のCPU利用率を各々r〜rとする。
ここで、CPU利用率r11のタスクをコア11b(タスク処理部102a)からコア11c(タスク処理部102b)に移動させたと仮定した場合、移動した後のコア11c(タスク処理部102b)のCPU利用率r+r11がa+tを越える。図7はこの状態を示している。r、rについても同様である。即ち、このCPU利用率r11のタスクを他のコア(タスク処理部)に移動させることはできない。
また、CPU利用率r12のタスクをコア11b(タスク処理部102a)からコア11c(タスク処理部102b)に移動させたと仮定した場合、移動した後のコア11c(タスク処理部102b)のCPU利用率r+r12はa+tを越えない。図8はこの状態を示している。即ち、このCPU利用率r12のタスクをコア11c(タスク処理部102b)に移動させることはできる。ちなみにこれをコア11c〜11d(タスク処理部102c〜d)に移動させることは、移動した後のCPU利用率がa+tを越えるのでできない。
タスク移動処理機能103dは、このような判断をCPU利用率がa+tを越えたコア(タスク処理部)で実行されている全てのタスクについて、かつ他の全てのコア(タスク処理部)について行い、当該タスクを移動可能なコア(タスク処理部)が存在するか否かを判定する。
ここで、移動可能と判定されるタスクTij(iはそのタスクが割り当てられたコアの番号、jはこのコアに割り当てられたタスクの番号)とその移動先のコアC(nはコアの番号、i≠nでかつiとnは同一範囲)との組み合わせ{Tij,C}が複数存在する場合、移動元のコアのタスクTij移動後のCPU利用率が最も平均値aに近くなる組み合わせを選択することもできるし、また移動先のCでタスクTij移動後のCPU利用率が最も平均値aに近くなる組み合わせを選択してもよい。
(実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。
本実施形態に係るタスク移動方法は、ネットワークを介して伝送されるパケットを備えられた複数のタスク処理部によって出力先のネットワークに応じた処理を行ってから当該パケットを他のネットワークに中継するネットワークスイッチ装置10にあって、入力されたパケットを処理するタスクを実行するタスク処理部をタスク割当部が決定してそこに当該タスクを割り当て、当該タスクを割り当てられたタスク処理部がパケットに対して処理を行い、各タスク処理部のCPU使用率をタスク移動部が取得し(図4・ステップS104)、このCPU使用率に応じて一のタスク処理部に割り当てられたタスクを他のタスク処理部にタスク移動部が移動させる(図4・ステップS105〜107)。
また、このタスク移動部がタスクを移動させる処理は、
取得された各タスク処理部のCPU使用率が予め定められた閾値を超えているか否かをタスク移動部のCPU使用率判定機能が判定し(図4・ステップS105)、
CPU使用率が閾値を超えたタスク処理部で実行されているタスクの中で他のタスク処理部に移動した場合のCPU使用率の合計値が閾値を超えない場合にタスク移動部のタスク移動処理機能が当該タスクを当該他のタスク処理部に移動させる(図4・ステップS106〜107)。
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するネットワークスイッチ装置10が備えるマルチコアプロセッサ11に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、DVD、CD、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
本実施形態によれば、マルチコアプロセッサ11の各コア11b〜11e(タスク処理部102a〜d)でCPU使用率が平均化され、タスクの待ち状態による輻輳の発生を有効に抑制することが可能となる。従って、マルチコアプロセッサ11の持つ演算能力を効率的に活用して装置性能を向上させることが可能となる。かつ、ネットワークの負荷状態は急激に変化しやすいものであるが、この負荷状態の急変に対しても、装置性能の低下を起こさずに容易に対応することが可能となる。
(実施形態の拡張)
本実施形態は、その趣旨を改変しない範囲で、様々な拡張が考えられる。以下、それらについて説明する。
各タスクの出力先や処理内容(より具体的にはフロー情報に含まれるIPアドレスやポート番号)に応じて、タスクごとの優先度を予め設定し、タスク移動部のタスク移動処理機能がこの設定された優先度の高低に応じてタスクの移動先を決定するという構成にすることも可能である。
より具体的には、より優先度の高いタスクを、よりCPU使用率の低いコアに割り当てる。この構成にすることにより、優先度の高いタスクがより早く実行されるようになり、処理に伴って発生する輻輳を小さく抑制することが可能となる。
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
(付記1) ネットワークを介して伝送されるパケットを他のネットワークに中継するネットワークスイッチ装置であって、
入力された前記パケットに対して出力先のネットワークに応じた処理を行う複数のタスク処理部と、
前記入力されたパケットを処理するタスクを実行する前記タスク処理部を決定してそこに当該タスクを割り当てるタスク割当部と、
前記各タスク処理部のCPU使用率を取得し、このCPU使用率に応じて一の前記タスク処理部に割り当てられた前記タスクを他の前記タスク処理部に移動させるタスク移動部と
を備えることを特徴とするネットワークスイッチ装置。
(付記2) 前記タスク移動部が、
前記各タスク処理部のCPU使用率を取得するCPU使用率取得機能と、
取得された前記各タスク処理部の前記CPU使用率が予め定められた閾値を超えているか否かを判定するCPU使用率判定機能と、
前記CPU使用率が前記閾値を超えた前記タスク処理部で実行されているタスクの中で前記他のタスク処理部に移動した場合の前記CPU使用率の合計値が前記閾値を超えない場合に当該タスクを当該他のタスク処理部に移動させるタスク移動処理機能と
を備えることを特徴とする、付記1に記載のネットワークスイッチ装置。
(付記3) 前記タスク移動部が、
予め与えられた監視周期の経過、または保守者設定処理や発生イベント処理による装置設定関数からのコールバックに反応して前記CPU使用率取得機能の動作を開始制御する開始処理機能
をさらに備えることを特徴とする、付記2に記載のネットワークスイッチ装置。
(付記4) 前記タスク移動部の前記タスク移動処理機能が、
移動可能な前記タスクおよび移動先の前記タスク処理部の組み合わせが複数組存在する場合に、移動元もしくは移動先の前記各タスク処理部の前記CPU使用率がこのCPU使用率の平均値に最も近くなる前記組み合わせを選択する機能
を備えることを特徴とする、付記2に記載のネットワークスイッチ装置。
(付記5) それぞれが異なるコンピュータプログラムを実行する主体となる複数のコアを有するマルチコアプロセッサを備え、
前記各タスク処理部がそれぞれ異なる前記コアにおいて機能することを特徴とする、付記1に記載のネットワークスイッチ装置。
(付記6) ネットワークを介して伝送されるパケットを備えられた複数のタスク処理部によって出力先のネットワークに応じた処理を行ってから当該パケットを他のネットワークに中継するネットワークスイッチ装置にあって、
入力された前記パケットを処理するタスクを実行する前記タスク処理部をタスク割当部が決定してそこに当該タスクを割り当て、
当該タスクを割り当てられた前記タスク処理部が前記パケットに対して処理を行い、
前記各タスク処理部のCPU使用率をタスク移動部が取得し、
このCPU使用率に応じて一の前記タスク処理部に割り当てられた前記タスクを他の前記タスク処理部に前記タスク移動部が移動させる
ことを特徴とするタスク移動方法。
(付記7) 前記タスク移動部が前記タスクを移動させる処理が、
取得された前記各タスク処理部の前記CPU使用率が予め定められた閾値を超えているか否かを前記タスク移動部のCPU使用率判定機能が判定し、
前記CPU使用率が前記閾値を超えた前記タスク処理部で実行されているタスクの中で前記他のタスク処理部に移動した場合の前記CPU使用率の合計値が前記閾値を超えない場合に前記タスク移動部のタスク移動処理機能が当該タスクを当該他のタスク処理部に移動させる
ことを特徴とする、付記6に記載のタスク移動方法。
(付記8) 前記ネットワークスイッチ装置が、それぞれが異なるコンピュータプログラムを実行する主体となる複数のコアを有するマルチコアプロセッサを備えるものであると共に、
前記各タスク処理部をそれぞれ異なる前記コアにおいて機能させることを特徴とする、付記6に記載のタスク移動方法。
(付記9) ネットワークを介して伝送されるパケットを備えられた複数のタスク処理部によって出力先のネットワークに応じた処理を行ってから当該パケットを他のネットワークに中継するネットワークスイッチ装置にあって、
このネットワークスイッチ装置が備えるプロセッサに、
入力された前記パケットを処理するタスクを実行する前記タスク処理部を決定してそこに当該タスクを割り当てる手順、
前記各タスク処理部が前記パケットを処理する際のCPU使用率を取得する手順、
およびこのCPU使用率に応じて一の前記タスク処理部に割り当てられた前記タスクを他の前記タスク処理部に前記タスク移動部が移動させる手順
を実行させることを特徴とするタスク移動プログラム。
(付記10) 前記タスクを移動させる手順が、
取得された前記各タスク処理部の前記CPU使用率が予め定められた閾値を超えているか否かを判定する手順、
および前記CPU使用率が前記閾値を超えた前記タスク処理部で実行されているタスクの中で前記他のタスク処理部に移動した場合の前記CPU使用率の合計値が前記閾値を超えない場合に当該タスクを当該他のタスク処理部に移動させる手順
を含むことを特徴とする、付記9に記載のタスク移動プログラム。
(付記11) 前記ネットワークスイッチ装置が、それぞれが異なるコンピュータプログラムを実行する主体となる複数のコアを有するマルチコアプロセッサを備えるものであると共に、
前記各タスク処理部をそれぞれ異なる前記コアにおいて機能させることを特徴とする、付記9に記載のタスク移動プログラム。
本発明は、ルータ、リピータ、ゲートウェイなど、インターネットの要所ごとに配置されたネットワークスイッチ装置において、幅広く適用することができる。
1、10 ネットワークスイッチ装置
2、101 タスク割当部
3a、3d、102a、102d タスク処理部
4、103 タスク移動部
11 マルチコアプロセッサ
11a、11f コア
12 記憶手段
13 入力インタフェース
14 出力インタフェース
103a 開始処理機能
103b CPU使用率取得機能
103c CPU使用率判定機能
103d タスク移動処理機能

Claims (6)

  1. ネットワークを介して伝送されるパケットを他のネットワークに中継するネットワークスイッチ装置であって、
    入力された前記パケットに対して出力先のネットワークに応じた処理を行う複数のタスク処理部と、
    前記入力されたパケットを処理するタスクを実行する前記タスク処理部を決定してそこに当該タスクを割り当てるタスク割当部と、
    前記各タスク処理部のCPU使用率を取得し、このCPU使用率に応じて一の前記タスク処理部に割り当てられた前記タスクを他の前記タスク処理部に移動させるタスク移動部とを備え、
    前記タスク移動部が、
    前記各タスク処理部のCPU使用率を取得するCPU使用率取得機能と、
    取得された前記各タスク処理部の前記CPU使用率が予め定められた閾値と前記各タスク処理部の前記CPU使用率の平均値との加算値を超えているか否かを判定するCPU使用率判定機能と、
    前記CPU使用率が前記閾値を超えた前記タスク処理部で実行されているタスクの中で前記他のタスク処理部に移動した場合の前記CPU使用率の合計値が前記閾値を超えない場合に当該タスクを当該他のタスク処理部に移動させるタスク移動処理機能とを備える、
    ことを特徴とするネットワークスイッチ装置。
  2. 前記タスク移動部が、
    予め与えられた監視周期の経過、または保守者設定処理や発生イベント処理による装置設定関数からのコールバックに反応して前記CPU使用率取得機能の動作を開始制御する開始処理機能
    をさらに備えることを特徴とする、請求項に記載のネットワークスイッチ装置。
  3. 前記タスク移動部の前記タスク移動処理機能が、
    移動可能な前記タスクおよび移動先の前記タスク処理部の組み合わせが複数組存在する場合に、移動元もしくは移動先の前記各タスク処理部の前記CPU使用率がこの前記各タスク処理部の前記CPU使用率の平均値に最も近くなる前記組み合わせを選択する機能
    を備えることを特徴とする、請求項に記載のネットワークスイッチ装置。
  4. それぞれが異なるコンピュータプログラムを実行する主体となる複数のコアを有するマルチコアプロセッサを備え、
    前記各タスク処理部がそれぞれ異なる前記コアにおいて機能することを特徴とする、請求項1に記載のネットワークスイッチ装置。
  5. ネットワークを介して伝送されるパケットを備えられた複数のタスク処理部によって出力先のネットワークに応じた処理を行ってから当該パケットを他のネットワークに中継するネットワークスイッチ装置にあって、
    入力された前記パケットを処理するタスクを実行する前記タスク処理部をタスク割当部が決定してそこに当該タスクを割り当て、
    当該タスクを割り当てられた前記タスク処理部が前記パケットに対して処理を行い、
    前記各タスク処理部のCPU使用率をタスク移動部が取得し、
    このCPU使用率に応じて一の前記タスク処理部に割り当てられた前記タスクを他の前記タスク処理部に前記タスク移動部が移動させ
    前記タスク移動部が前記タスクを移動させる処理が、
    取得された前記各タスク処理部の前記CPU使用率が予め定められた閾値と前記各タスク処理部の前記CPU使用率の平均値との加算値を超えているか否かを前記タスク移動部のCPU使用率判定機能が判定し、
    前記CPU使用率が前記閾値を超えた前記タスク処理部で実行されているタスクの中で前記他のタスク処理部に移動した場合の前記CPU使用率の合計値が前記閾値を超えない場合に前記タスク移動部のタスク移動処理機能が当該タスクを当該他のタスク処理部に移動させることを特徴とするタスク移動方法。
  6. ネットワークを介して伝送されるパケットを備えられた複数のタスク処理部によって出力先のネットワークに応じた処理を行ってから当該パケットを他のネットワークに中継するネットワークスイッチ装置にあって、
    このネットワークスイッチ装置が備えるプロセッサに、
    入力された前記パケットを処理するタスクを実行する前記タスク処理部を決定してそこに当該タスクを割り当てる手順、
    前記各タスク処理部が前記パケットを処理する際のCPU使用率を取得する手順、
    およびこのCPU使用率に応じて一の前記タスク処理部に割り当てられた前記タスクを他の前記タスク処理部に移動させる手順
    を実行させ、
    前記タスクを移動させる手順が、
    取得された前記各タスク処理部の前記CPU使用率が予め定められた閾値と前記各タスク処理部の前記CPU使用率の平均値との加算値を超えているか否かを判定する手順、
    および前記CPU使用率が前記閾値を超えた前記タスク処理部で実行されているタスクの中で前記他のタスク処理部に移動した場合の前記CPU使用率の合計値が前記閾値を超えない場合に当該タスクを当該他のタスク処理部に移動させる手順
    を含むことを特徴とするタスク移動プログラム。
JP2012264111A 2012-12-03 2012-12-03 ネットワークスイッチ装置、タスク移動方法、およびタスク移動プログラム Active JP6232698B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012264111A JP6232698B2 (ja) 2012-12-03 2012-12-03 ネットワークスイッチ装置、タスク移動方法、およびタスク移動プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012264111A JP6232698B2 (ja) 2012-12-03 2012-12-03 ネットワークスイッチ装置、タスク移動方法、およびタスク移動プログラム

Publications (2)

Publication Number Publication Date
JP2014110538A JP2014110538A (ja) 2014-06-12
JP6232698B2 true JP6232698B2 (ja) 2017-11-22

Family

ID=51030928

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012264111A Active JP6232698B2 (ja) 2012-12-03 2012-12-03 ネットワークスイッチ装置、タスク移動方法、およびタスク移動プログラム

Country Status (1)

Country Link
JP (1) JP6232698B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6600250B2 (ja) * 2015-12-21 2019-10-30 Kddi株式会社 マルチコアcpuを有するパケット転送装置の制御装置及びプログラム
JP6943030B2 (ja) * 2017-06-16 2021-09-29 富士通株式会社 情報処理装置、情報処理方法およびプログラム
JP7310378B2 (ja) * 2019-07-08 2023-07-19 富士通株式会社 情報処理プログラム、情報処理方法、および情報処理装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008129767A (ja) * 2006-11-20 2008-06-05 Mitsubishi Electric Corp ネットワーク装置
JP2011233057A (ja) * 2010-04-30 2011-11-17 Renesas Electronics Corp マルチプロセッサシステム、マルチプロセッサの制御方法およびマルチプロセッサの制御方法のプログラム

Also Published As

Publication number Publication date
JP2014110538A (ja) 2014-06-12

Similar Documents

Publication Publication Date Title
KR20160070636A (ko) 분산 클라우드 환경에서의 마이그레이션 제어 장치 및 이를 이용한 마이그레이션 제어 방법
JP6406633B2 (ja) 仮想ネットワーク制御装置、仮想ネットワーク制御方法、及びプログラム
JP6232698B2 (ja) ネットワークスイッチ装置、タスク移動方法、およびタスク移動プログラム
JP5965464B2 (ja) バッファを有しないnocのデータ処理方法、及びnoc電子素子
WO2019225429A1 (ja) Vmマイグレーションシステムおよびvmマイグレーション方法
Mousicou et al. Performance evaluation of dynamic cloud resource migration based on temporal and capacity-aware policy for efficient resource sharing
JP6279436B2 (ja) 仮想ネットワーク割当方法および装置
JP6325348B2 (ja) 仮想マシン配置装置
JP6754115B2 (ja) 選択装置、装置選択方法、プログラム
Luo et al. Network-aware re-scheduling: Towards improving network performance of virtual machines in a data center
WO2019176606A1 (ja) Vm性能保証システムおよびvm性能保証方法
JP6186287B2 (ja) システムの管理サーバ及び制御方法
JP5655188B2 (ja) トラヒック制御装置及びトラヒック制御方法
JP2014206805A (ja) 制御装置
JP2012133629A (ja) ストレージリソース制御システムおよびストレージリソース制御プログラムならびにストレージリソース制御方法
JP5758358B2 (ja) 仮想マシンシステム及びその高速ライブマイグレーション方法
JP6191361B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
JP2007179359A (ja) タスク制御方法およびタスク入力制御装置
WO2014016950A1 (ja) 並列計算機システムおよび並列計算機システムへの処理負荷配置方法
WO2013065151A1 (ja) 計算機システム、データ転送方法、および、データ転送プログラム
WO2022102087A1 (ja) コンピュータシステムおよびフロー制御方法
JP7491396B2 (ja) コンピュータシステムおよびフロー制御方法
JP5646560B2 (ja) 仮想os制御装置、システム、方法およびプログラム
JP7259738B2 (ja) 制御装置、制御システム、制御装置の制御方法及びプログラム
JP5777992B2 (ja) 監視制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161011

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170314

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170502

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171009

R150 Certificate of patent or registration of utility model

Ref document number: 6232698

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150