JP6600250B2 - マルチコアcpuを有するパケット転送装置の制御装置及びプログラム - Google Patents
マルチコアcpuを有するパケット転送装置の制御装置及びプログラム Download PDFInfo
- Publication number
- JP6600250B2 JP6600250B2 JP2015248962A JP2015248962A JP6600250B2 JP 6600250 B2 JP6600250 B2 JP 6600250B2 JP 2015248962 A JP2015248962 A JP 2015248962A JP 2015248962 A JP2015248962 A JP 2015248962A JP 6600250 B2 JP6600250 B2 JP 6600250B2
- Authority
- JP
- Japan
- Prior art keywords
- cores
- packet transfer
- packet
- maximum throughput
- computer
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本開示は、マルチコアCPUを有するパケット転送装置の制御技術に関する。
現在、ルータといった、パケット転送に特化して設計された装置ではなく、通常のコンピュータをパケット転送装置として使用することが行われている。また、パケット転送装置として使用するコンピュータを、パケットの転送のみに使用するのではなく、その他のアプリケーションのために使用することも行われている。この際、コンピュータ全体のリソースの内、パケットの転送に割り当てるべきリソースを適切に設定する必要がある。
非特許文献1及び2は、コンピュータをパケット転送装置として使用する場合における、最大スループットを推定する方法を開示している。
S.Gallenmuller,et al.,"Comparison of frameworks for high performance packet IO",proceedings of ACM ANCS 2015
M.Dobrescu,et al.,"Toward predictable performance in software packet・processing platforms,proceedings of USENIX NSID'12,2012
非特許文献1及び2の方法は、最大スループットを推定することを開示するのみであり、パケット転送装置として使用するコンピュータに対して、パケット転送のためのリソースをどの様に割り当てるかを開示するものではない。
本発明は、マルチコアCPUを有するコンピュータをパケット転送装置として使用する際に、パケット転送に割り当てるコア数を適切に制御する制御装置を提供するものである。
本発明の一側面によると、マルチコアCPUを備えたコンピュータが有するコアの内、パケット転送処理に割り当てるコア数を決定して当該コンピュータを構成する制御を行う制御装置は、パケット転送のスループットの目標範囲を保持する保持手段と、1つのコアのみをパケット転送処理に割り当てたときに、1つの基準パケットの転送処理に必要な基準サイクル数に基づき、N個(Nは2以上の整数)のコアをパケット転送処理に割り当てたときの最大スループットを推定する推定手段と、前記最大スループットが前記目標範囲内になるNの数を求め、前記求めた数のコアがパケット転送処理に割り当てられる様に前記コンピュータを制御する割り当て手段と、を備えていることを特徴とする。
本発明によると、マルチコアCPUを有するコンピュータをパケット転送装置として使用する際に、パケット転送に割り当てるコア数を適切に制御することができる。
以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の実施形態は例示であり、本発明を実施形態の内容に限定するものではない。また、以下の各図においては、実施形態の説明に必要ではない構成要素については図から省略する。
図1は、本実施形態による制御装置1の構成図である。制御装置1は、パケット転送装置50を制御する。本実施形態において、パケット転送装置50は、マルチコアCPUを備えたコンピュータであり、制御装置1は、ユーザが設定するスループットの目標範囲に基づきパケットの転送処理に割り当てるCPUコア数を決定し、決定したコア数がパケット転送処理に使用される様にパケット転送装置50を構成する。
図2は、本実施形態における制御装置1の処理のフローチャートである。S10で、ユーザは、最大スループットの目標範囲を設定して制御装置1に入力する。リソース割当部12は、この目標範囲を保持する。S11で、リソース割当部12は、パケット転送装置50が有するコアの内のパケット転送処理に使用するコア数Nを、初期値に設定する。推定部11は、S12で、最大スループットλを推定する。なお、最大スループットλの推定処理の詳細は後述する。S13で、リソース割当部12は、推定した最大スループットλが目標範囲内であるかを判定する。目標範囲内になければ、S14で、リソース割当部12は、推定した最大スループットλが目標範囲より大きいのか小さいのかを判定する。推定した最大スループットλが目標範囲より大きいことは、パケット転送処理に割り当てたコア数が多いことを意味するため、リソース割当部12は、S15で、Nを1だけ減少させ、S12からの処理を繰り返す。一方、推定した最大スループットλが目標範囲より小さいことは、パケット転送処理に割り当てたコア数が少ないことを意味するため、リソース割当部12は、S16で、Nを1だけ増加させ、S12からの処理を繰り返す。また、S13の判定において、推定した最大スループットλが目標範囲内にあると、制御装置1は処理を終了する。
なお、図2の処理は、パケット転送装置50の稼働前に行うことも、稼働中に行うこともできる。稼働前に行う場合には、例えば、図2の処理を1回だけ行い、最大スループットが目標範囲内となるコア数を求め、求めたコア数でパケット転送装置を稼働させることができる。また、稼働中に行う場合には、最大スループットが目標範囲内となるコア数を求める処理を繰り返し行うことができる。その場合、最初は、図2の処理をそのまま行う。そして、2回目以降については、図2のS10及びS11は省略して、S12の処理から繰り返す。なお、繰り返し行う場合には、S13で"Yes"となると、直ちに、S12の処理を開始するのではなく、所定の待機時間だけ待機した後、S12の処理を開始する構成とすることができる。また、パケット転送装置の稼働中の間、常に、図2の処理を繰り返すのではなく、所定回数だけ繰り返す構成とすることもできる。
続いて、S12における最大スループットの推定処理について説明する。S12における最大スループットの推定には、例えば、非特許文献1や2に記載の公知の方法を使用することができる。しかしながら、非特許文献1は、使用するコンピュータがシングルコアであることを前提とするものであり、現在の主流であるマルチコアCPUを備えたパケット転送装置50に適用すると、最大スループットの推定精度が劣化する。また、非特許文献2は、例えば、2つのコアを備えたCPUの場合には精度良く最大スループットの推定を行うことができるが、コア数が増加すると実際の最大スループットと、推定した最大スループットとの差が大きくなる。これは、非特許文献2の方法においては、総てのパケットがキャッシュ競合の影響を受けることを前提としているためである。
したがって、以下に述べる、より精度の高い最大スループットの推定方法を使用することができる。図3は、本実施形態によるパケット転送装置50のキャシュ構成を示す図である。本実施形態では、パケット転送処理に割り当てられたコア数がコア#1〜コア#NのN個であるものとし、総てのコア#1〜#Nが同じ、ラストレベルキャッシュ(LLC)を共有するものとする。なお、レベル1キャッシュ(L1)と、レベル2キャッシュ(L2)は、各コアに対応して設けられている。さらに、各キャッシュが利用できない場合、パケット転送装置50は、システムメモリをキャッシュとして使用する。なお、システムメモリにアクセスする時間は、キャッシュにアクセスする時間と比較して非常に大きな値となる。
最大スループットは、インタフェース速度と、CPU速度により制限される。以下では、インタフェース速度で制限される最大スループットをS1と呼び、CPU速度により制限される最大スループットをS2と呼ぶものとする。本実施形態の推定部11は、最大スループットS1及び最大スループットS2をそれぞれ求め、最大スループットS1及び最大スループットS2の小さい方を、パケット転送装置50の最大スループットλとする。ここで、最大スループットS1については、パケット転送装置50のインタフェース速度を、基準パケット長で除することにより求めることができる。なお、複数のインタフェースのインタフェース速度がそれぞれ異なる場合には、最小値を使用する。
以下、最大スループットS2の算出方法について説明する。まず、1つのコアのみが動作しているときにおいて、1つの基準パケットを転送するのに必要なコアのサイクル数をCsoloとする。この場合、1つのコアのみを動作させるときの最大スループットλsoloは、コア速度(1秒当たりのサイクル数)をfとすると、λsolo=f/Csoloとなる。しかしながら、複数のコアを動作させると、キャッシュミスにより、システムメモリへのアクセスが生じる。つまり、複数のコアを動作させると、1つの基準パケットを転送するのに必要な時間は、1つのコアのみが動作しているときのサイクルCsoloより長くなる。以下では、この長くなるサイクル数をαとする。
本実施形態において、推定部11は、このαを
α=(δhf/λsolo)+(δhf/λsolo)(N−1/N) (1)
として求める。なお、hはキャッシュヒットレートであり、δはシステムメモリにアクセスする場合に必要な時間である。式(1)の第1項は、1つのコアのみを動作させているときにはLLCでキャッシュヒットするが、他のコアを動作させたことによりLLCでキャッシュミスとなることにより増加するサイクル数に対応する。また、式(1)の第2項は、複数のコアを動作させることにより増加するキャッシュミスにより増加するサイクル数に対応する。
α=(δhf/λsolo)+(δhf/λsolo)(N−1/N) (1)
として求める。なお、hはキャッシュヒットレートであり、δはシステムメモリにアクセスする場合に必要な時間である。式(1)の第1項は、1つのコアのみを動作させているときにはLLCでキャッシュヒットするが、他のコアを動作させたことによりLLCでキャッシュミスとなることにより増加するサイクル数に対応する。また、式(1)の第2項は、複数のコアを動作させることにより増加するキャッシュミスにより増加するサイクル数に対応する。
また、本実施形態では、各基準パケットの転送に必要なサイクル数がCsoloか(Csolo+α)のいずれかであるものとし、基準パケットがCsoloで転送される確率をpとし、(Csolo+α)で転送される確率をq=1−pとする。N個のCPUコアは、同じ処理を行うため、p=1/Nで求めることができる。しかしながら、コアの利用率は100%未満であるため、コアの%利用率で重み付けし、コア#i(i=1からNの整数)において、基準パケットがCsoloで転送される確率piを、以下の式(2)で求める。
以下では、最大スループットS2の算出のための処理の流れについて説明する。まず、推定部11は、リソース割当部12を介して、一時的にパケット転送に割り当てるコアの数を1つとし、試験パケット生成部13に基準パケットを送信させ、試験パケット受信部14に基準パケットを受信させる。これにより、単一コアのみが動作している場合における最大スループットλsoloを測定する。また、推定部11は、単一コアのみが動作している場合において基準パケットの転送に費やしたCPUサイクルCsoloと、ラストレベルキャッシュ(LLC)までのキャッシュヒットレートhを測定する。なお、例えば、パケット転送装置50がLinux(登録商標) OSであるものとすると、Csoloは、以下のコマンドラインにより取得できる。
sudo ocount -s --events=cpl_cycles:ring0,cpl_cycles:ring123
同様に、hは、以下のコマンドラインにより取得できる。
sudo ocount -s -events=mem_uops_retired :all_loads, mem_load_uops_retired: l1_hit,mem_load_uops_retired: l2_hit,mem_load_uops_retired:l3_hit
sudo ocount -s --events=cpl_cycles:ring0,cpl_cycles:ring123
同様に、hは、以下のコマンドラインにより取得できる。
sudo ocount -s -events=mem_uops_retired :all_loads, mem_load_uops_retired: l1_hit,mem_load_uops_retired: l2_hit,mem_load_uops_retired:l3_hit
その後、推定部11は、リソース割当部12を介して、パケット転送に割り当てるコアを元の数に戻す。その後、推定部11は、システムメモリへのアクセスに対する遅延量δを測定する。遅延量δは、以下のコマンドラインにより取得できる。
$ taskset 0x1 ./lat_mem_rd -N 1 -P 1 4096k 512
さらに、推定部11は、各コアの%CPU利用率(Utilization)u1〜uNと、全体の%CPU利用率uallを測定する。これら、%CPU利用率は、以下のコマンドラインにより取得できる。
$ mpstat -P ALL
$ taskset 0x1 ./lat_mem_rd -N 1 -P 1 4096k 512
さらに、推定部11は、各コアの%CPU利用率(Utilization)u1〜uNと、全体の%CPU利用率uallを測定する。これら、%CPU利用率は、以下のコマンドラインにより取得できる。
$ mpstat -P ALL
推定部11は、各コアの%利用率に基づき式(2)により確率piを求める。また、N個のコアを動作させることによる、1パケットの転送に必要なサイクルの増大量αを式(1)により求める。そして、式(3)に基づき、最大スループットS2を求める。
なお、図2の処理をパケット転送装置の稼働前に行う場合には、各コアの%利用率を求めることはできない。この場合、u1〜uNと、uallを1であるものとして行えば良い。
以上、本実施形態によると、目標範囲内の最大スループットとするコア数を適切に設定でき、残りのコアを他の処理に割り当てることが可能にある。なお、通常、最大スループットS1が目標範囲より大きくなる様に、パケット転送装置50として使用するコンピュータに実装するインタフェースは選択される。つまり、通常、最大スループットλは、最大スループットS2で制限され、最大スループットS1では制限されない。したがって、制御装置1は、最大スループットS2のみを求め、これを最大スループットλとすることができる。
また、本発明による制御装置は、コンピュータを上記制御装置として動作させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。
11:推定部、12:リソース割当部、13:試験パケット生成部、14:試験パケット受信部
Claims (7)
- マルチコアCPUを備えたコンピュータが有するコアの内、パケット転送処理に割り当てるコア数を決定して当該コンピュータを構成する制御を行う制御装置であって、
パケット転送のスループットの目標範囲を保持する保持手段と、
1つのコアのみをパケット転送処理に割り当てたときに、1つの基準パケットの転送処理に必要な基準サイクル数に基づき、N個(Nは2以上の整数)のコアをパケット転送処理に割り当てたときの最大スループットを推定する推定手段と、
前記最大スループットが前記目標範囲内になるNの数を求め、前記求めた数のコアがパケット転送処理に割り当てられる様に前記コンピュータを制御する割り当て手段と、
を備えていることを特徴とする制御装置。 - 前記推定手段は、N個のコアをパケット転送処理に割り当てたときに、1つの前記基準パケットの転送処理に必要なサイクル数の前記基準サイクル数からの増加量を求めることで、N個のコアをパケット転送処理に割り当てたときの最大スループットを推定することを特徴とする請求項1に記載の制御装置。
- 前記増加量は、キャッシュヒットレートと、キャッシュミスが生じた場合に、前記コンピュータのシステムメモリにアクセスする時間と、前記Nの数に基づく値であることを特徴とする請求項2に記載の制御装置。
- 前記推定手段は、キャッシュヒットにより前記基準サイクル数で転送される前記基準パケットの確率と、キャッシュミスにより前記基準サイクル数と前記増加量との和に等しいサイクル数で転送される前記基準パケットの確率と、を求めることで、N個のコアをパケット転送処理に割り当てたときの最大スループットを推定することを特徴とする請求項3に記載の制御装置。
- 前記基準サイクル数で転送される前記基準パケットの確率は、前記Nの数の逆数であることを特徴とする請求項4に記載の制御装置。
- 前記基準サイクル数で転送される前記基準パケットの確率は、N個のコアをパケット転送処理に割り当てたときの、N個のコアそれぞれの利用率に基づき求められることを特徴とする請求項4に記載の制御装置。
- 請求項1から6のいずれか1項に記載の制御装置としてコンピュータを機能させることを特徴とするプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015248962A JP6600250B2 (ja) | 2015-12-21 | 2015-12-21 | マルチコアcpuを有するパケット転送装置の制御装置及びプログラム |
PCT/JP2016/087229 WO2017110619A1 (ja) | 2015-12-21 | 2016-12-14 | マルチコアcpuを有するパケット転送装置の制御装置及びコンピュータ可読記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015248962A JP6600250B2 (ja) | 2015-12-21 | 2015-12-21 | マルチコアcpuを有するパケット転送装置の制御装置及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017117009A JP2017117009A (ja) | 2017-06-29 |
JP6600250B2 true JP6600250B2 (ja) | 2019-10-30 |
Family
ID=59090218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015248962A Active JP6600250B2 (ja) | 2015-12-21 | 2015-12-21 | マルチコアcpuを有するパケット転送装置の制御装置及びプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6600250B2 (ja) |
WO (1) | WO2017110619A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019004593A (ja) | 2017-06-14 | 2019-01-10 | 本田技研工業株式会社 | 車両の電源装置 |
CN112181894B (zh) * | 2019-07-04 | 2022-05-31 | 山东省计算中心(国家超级计算济南中心) | 一种基于申威众核处理器的核组内分组自适应调整运行方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008129767A (ja) * | 2006-11-20 | 2008-06-05 | Mitsubishi Electric Corp | ネットワーク装置 |
WO2011111230A1 (ja) * | 2010-03-12 | 2011-09-15 | 富士通株式会社 | マルチコアプロセッサシステム、電力制御方法、および電力制御プログラム |
WO2012105677A1 (ja) * | 2011-02-04 | 2012-08-09 | 日本電気株式会社 | パケット処理装置、パケット処理方法およびプログラム |
JP6232698B2 (ja) * | 2012-12-03 | 2017-11-22 | 日本電気株式会社 | ネットワークスイッチ装置、タスク移動方法、およびタスク移動プログラム |
JP5988930B2 (ja) * | 2013-07-23 | 2016-09-07 | 日本電信電話株式会社 | サーバ仮想化環境における予備系装置の配備装置およびその配備方法 |
WO2016056217A1 (ja) * | 2014-10-07 | 2016-04-14 | 日本電気株式会社 | 測定装置、測定システム、測定方法、および、プログラム |
-
2015
- 2015-12-21 JP JP2015248962A patent/JP6600250B2/ja active Active
-
2016
- 2016-12-14 WO PCT/JP2016/087229 patent/WO2017110619A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP2017117009A (ja) | 2017-06-29 |
WO2017110619A1 (ja) | 2017-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9378032B2 (en) | Information processing method, information processing apparatus, recording medium, and system | |
KR101814560B1 (ko) | 가상 머신 마이그레이션 관리 방법, 장치, 및 시스템 | |
KR101593463B1 (ko) | 네트워크 분할을 통한 네이티브 클라우드 컴퓨팅 | |
RU2015114568A (ru) | Автоматизированное профилирование использования ресурса | |
US9934062B2 (en) | Technologies for dynamically allocating hardware acceleration units to process data packets | |
JP2017526049A5 (ja) | ||
JP7081514B2 (ja) | オートスケール型性能保証システム及びオートスケール型性能保証方法 | |
JP5687666B2 (ja) | スケジューリング装置、システム、方法およびプログラム | |
KR20200017589A (ko) | 무선 통신 시스템에서 모바일 노드의 태스크를 오프로딩하기 위한 클라우드 서버 및 그의 동작 방법 | |
KR20130088513A (ko) | 멀티코어 시스템의 태스크 분배 방법 및 장치 | |
US9619288B2 (en) | Deploying software in a multi-instance node | |
US11483416B2 (en) | Composable infrastructure provisioning and balancing | |
WO2018107945A1 (zh) | 一种实现硬件资源分配的方法、装置及存储介质 | |
WO2018054271A1 (zh) | 一种数据传输方法及装置 | |
CN111338785A (zh) | 资源调度方法及装置、电子设备、存储介质 | |
JP6600250B2 (ja) | マルチコアcpuを有するパケット転送装置の制御装置及びプログラム | |
US9769022B2 (en) | Timeout value adaptation | |
JP4121525B2 (ja) | リソース利用率を制御する方法およびコンピュータシステム | |
US11886901B2 (en) | VM performance guaranteeing system and VM performance guaranteeing method | |
WO2019167859A1 (ja) | 見積り装置および見積り方法 | |
US9894670B1 (en) | Implementing adaptive resource allocation for network devices | |
KR102442675B1 (ko) | 다중 코어 할당 장치 및 방법 | |
JP6339978B2 (ja) | リソース割当管理装置およびリソース割当管理方法 | |
JP2015165362A (ja) | 性能を測定する情報処理装置、性能測定方法及びそのためのプログラム | |
JP7151530B2 (ja) | サーバ基盤および物理cpu割当プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180712 |
|
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: 20190920 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191004 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6600250 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |