JP6491944B2 - Packet processing apparatus and program - Google Patents
Packet processing apparatus and program Download PDFInfo
- Publication number
- JP6491944B2 JP6491944B2 JP2015093375A JP2015093375A JP6491944B2 JP 6491944 B2 JP6491944 B2 JP 6491944B2 JP 2015093375 A JP2015093375 A JP 2015093375A JP 2015093375 A JP2015093375 A JP 2015093375A JP 6491944 B2 JP6491944 B2 JP 6491944B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- cpu
- apl
- control
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 49
- 238000007726 management method Methods 0.000 description 29
- 238000000034 method Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 18
- 208000036762 Acute promyelocytic leukaemia Diseases 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 11
- 239000000725 suspension Substances 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 5
- 238000001152 differential interference contrast microscopy Methods 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 244000141353 Prunus domestica Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- LBSRXDSYKFAERE-UHFFFAOYSA-N n-(3-cyano-5,6-dihydro-4h-cyclopenta[b]thiophen-2-yl)-4-methyl-2-phenyl-1,3-thiazole-5-carboxamide Chemical compound S1C(C(=O)NC2=C(C=3CCCC=3S2)C#N)=C(C)N=C1C1=CC=CC=C1 LBSRXDSYKFAERE-UHFFFAOYSA-N 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、パケットの送受信処理を行う装置に関連するものであり、特に、汎用コンピュータを用いてパケットの送受信処理を行う技術に関連するものである。 The present invention relates to a device that performs packet transmission / reception processing, and particularly relates to a technique for performing packet transmission / reception processing using a general-purpose computer.
従来技術として、ATCA(Advanced Telecommunications Computing Architecture)や高機能エッジルータ等の専用ハードウェアで実現しようとしていた「高スループット、低レイテンシ」のパケット送受信処理を、汎用コンピュータ上のソフトウェアで実現するためのI/Oフレームワークが存在する。 As a conventional technique, an ICA for realizing “high throughput, low latency” packet transmission / reception processing using software on a general-purpose computer, which has been realized with dedicated hardware such as ATCA (Advanced Telecommunications Computing Architecture) and high-function edge routers. / O framework exists.
当該I/Oフレームワークは、割り込み処理等のカーネルの機能を排除して、汎用コンピュータ上でパケット処理に携わるCPUコアを可能な限り占有することでパケット処理を高速に行うことを可能とする技術である。 This I / O framework eliminates kernel functions such as interrupt processing and occupies as many CPU cores as possible for packet processing on a general-purpose computer, thereby enabling high-speed packet processing. It is.
しかし、上記I/Oフレームワークの技術では、常時CPUリソースを使う必要があるため、発熱の発生、CPU故障率の上昇、電力消費の上昇等の問題がある。 However, since the I / O framework technology needs to always use CPU resources, there are problems such as generation of heat, increase in CPU failure rate, and increase in power consumption.
本発明は上記の点に鑑みてなされたものであり、高速にパケットの送受信処理を行うコンピュータにおいて、CPUリソース制御を適切に行うことを可能とする技術を提供することを目的とする。 The present invention has been made in view of the above points, and an object of the present invention is to provide a technique that enables appropriate CPU resource control in a computer that performs packet transmission / reception processing at high speed.
本発明の実施の形態によれば、ネットワークインターフェース部とアプリケーションとを備えるコンピュータにより構成されるパケット処理装置であって、
前記ネットワークインターフェース部からのパケットの読み取りを行う第1のパケット制御手段と、
前記アプリケーションに対して前記パケットの通知を行う第2のパケット制御手段と、
前記第1のパケット制御手段に対するCPUリソースの割り当て、及び前記第2のパケット制御手段に対するCPUリソースの割り当てを行うCPU制御管理手段と、
を備えることを特徴とするパケット処理装置が提供される。
According to an embodiment of the present invention, a packet processing device configured by a computer including a network interface unit and an application,
First packet control means for reading packets from the network interface unit;
Second packet control means for notifying the application of the packet;
CPU control management means for assigning CPU resources to the first packet control means and assigning CPU resources to the second packet control means;
A packet processing device is provided.
本発明の実施の形態によれば、高速にパケットの送受信処理を行うコンピュータにおいて、CPUリソース制御を適切に行うことを可能とする技術が提供される。 According to the embodiment of the present invention, there is provided a technique capable of appropriately performing CPU resource control in a computer that performs packet transmission / reception processing at high speed.
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。 Embodiments of the present invention will be described below with reference to the drawings. The embodiment described below is only an example, and the embodiment to which the present invention is applied is not limited to the following embodiment.
(システム構成例)
本実施の形態では、汎用コンピュータにより構成されるCPU制御装置100が提供される。図1は、本実施の形態におけるCPU制御装置100が適用されるシステムの一例を示す図である。なお、CPU制御装置100は、パケットの処理を行うことから、これをパケット処理装置と称してもよい。
(System configuration example)
In the present embodiment, a
図1は、ルータ1〜3を含む多数のルータで構成される電気通信事業者網10の例を示している。図1の例では、電気通信事業者網10には、他事業会社等の網20が接続されている。また、加入者の宅内装置4、5が接続されている。
FIG. 1 shows an example of a
図1には、電気通信事業者網10を構成する機能としてルータ1〜3が示されているが、その他にも、電気通信事業者網10には、アクセスサーバ、コンテンツ配信サーバ等、パケットの送受信を行う各種の機能が備えられる。
In FIG. 1,
本実施の形態におけるCPU制御装置100は、電気通信事業者網10を構成する上記の各機能をアプリケーション(プログラム)として実装するものである。上記の各機能の実装にCPU制御装置100を用いることで、設備投資、維持管理のコストを低減でき、また、通常のプログラムで機能を自在に記述できるため、事業会社特化の機能盛り込みも自在に実現可能となる。
The
なお、CPU制御装置100を、電気通信事業者網10を構成する機能の実現のために使用することは一例である。CPU制御装置100はパケット送受信を行う様々な分野に適用可能であり、その用途に特に限定はない。
Note that the use of the
(装置構成)
CPU制御装置100は、ハードウェアとしては、汎用コンピュータの構成を持つ。すなわち、CPU制御装置100は、CPU、メモリ、NIC(Network interface controller)等を備える。
(Device configuration)
The
なお、以下、CPU制御装置100の機能構成及び動作に関して説明する「CPU」は、ハードウェアのCPUであってもよいし、仮想的なCPUであってもよい。また、本実施の形態において、「CPU」は、計算リソースを割り当てる単位(言い換えると、稼働率を制御する単位)である。また、本実施の形態においては、コア(CORE)と「CPU」は同義と考えてよい。すなわち、以下で説明するコア(CORE)を「CPU」に置き換えてもよい。
The “CPU” described below regarding the functional configuration and operation of the
図2に、本実施の形態におけるCPU制御装置100の機能構成を示す。図2に示す構成は、コンピュータであるCPU制御装置100に搭載されるプログラムと、CPUやメモリ等のハードウェアとが協働して実現される機能の構成である。
FIG. 2 shows a functional configuration of the
図2に示すように、CPU制御装置100は、アプリケーション(APL)141、142、及び、I/Oフレームワーク110を含み、アプリケーション141、142とI/Oフレームワーク110との間に、CPU制御部130が備えられる。
As shown in FIG. 2, the
各アプリケーションは、例えば、前述した電気通信事業者網10を構成するルータにおけるルーティング制御等の機能をコンピュータに実現させるためのプログラムである。I/Oフレームワーク110は、前述したように、割り込み処理等のカーネルの機能を排除して汎用コンピュータ上でのパケット処理を高速に行うことを可能とする機能部である。I/Oフレームワークとしては、一例として、netmap等がある。なお、本実施の形態では、I/Oフレームワーク110を使用する形態を示しているが、本発明に係るCPU制御のための手段は、I/Oフレームワーク110を使用しない構成でも適用可能である。
Each application is, for example, a program for causing a computer to realize functions such as routing control in the router configuring the
I/Oフレームワーク110にはNIC101、102が接続される。NICキュー120は、NICを介して送受信されるパケットを格納するバッファ(記憶部)である。NICキュー120とNIC101、102を含めてNICと称してもよい。なお、図2に示す例では、APLが2つ、NICが2つ備えられているが、これは一例に過ぎない。
NICs 101 and 102 are connected to the I / O framework 110. The
CPU制御部130は、各CPUに対するパケット送受信処理を制御する機能部である。CPU制御部130は、CPU制御管理部131、パケット制御部132〜134、アプリケーション(APL)キュー135、136を有する。ここでは、3つのパケット制御部が示され、2つのAPLキューが示されているが、これは一例に過ぎない。
The CPU control unit 130 is a functional unit that controls packet transmission / reception processing for each CPU. The CPU control unit 130 includes a CPU
CPU制御管理部131、パケット制御部132、パケット制御部133、及びパケット制御部134は、それぞれ、1CPUに割り当てられた機能部であることを想定している。つまり、各機能部の処理は、対応するCPUに割り当てられ、当該CPUで実行されるプログラムにより実現される。CPU制御管理部、パケット制御部をそれぞれ「CPU」と称する場合もある。
It is assumed that the CPU
なお、1CPUを1機能部に割り当てることは一例に過ぎず、複数機能部が1CPUに割り当てられていてもよいし、1機能部が複数CPUに割り当てられていてもよい。 Note that assigning one CPU to one function unit is merely an example, and a plurality of function units may be assigned to one CPU, or one function unit may be assigned to a plurality of CPUs.
本実施の形態では、外部からのパケット受信処理を高速に制御するために、NIC(より具体的にはNICキュー120)からのパケット刈り取りを行う処理(刈り取り処理)と、APLへのパケットの通知を行う処理(通知処理)のそれぞれを異なるCPUに割り当てることとしており、パケット制御部132〜134のうちのいずれかが刈り取り処理のCPUに対応し、その他が通知処理のCPUに対応する。
In this embodiment, in order to control packet reception processing from the outside at high speed, processing for cutting packets from the NIC (more specifically, the NIC queue 120) (reaching processing), and notification of packets to the APL Each of the processes (notification processes) for performing the process is assigned to different CPUs, and one of the
また、APLへのパケットの通知を行う処理を行うパケット制御部は、通知IF(インターフェース)(APL−IFと称してもよい)を有する。通知IFは、仮想的なソケットに相当し、その実体は、例えば、IPアドレス(宛先、送信元、又は、宛先と送信元の両方)と、ポート番号(宛先、送信元、又は、宛先と送信元の両方)と、これらに対応するAPLの識別情報とを含む情報であり、当該情報は、CPU制御管理部131、APL141、APL142等から該当パケット制御部に対して設定される。APLへのパケットの通知を行う処理を行うパケット制御部(CPU)には、複数の通知IFが割り当てられてもよい。
A packet control unit that performs processing for notifying a packet to the APL has a notification IF (interface) (may be referred to as an APL-IF). The notification IF corresponds to a virtual socket, and its entity is, for example, an IP address (destination, transmission source, or both the destination and transmission source) and a port number (destination, transmission source, or transmission with the destination). And the identification information of the APL corresponding to them, and the information is set from the CPU
パケット制御部は、自身に対応するAPLキューに格納されたパケットを読み取り、当該パケットのヘッダ情報(IPアドレス、ポート番号)に対応する通知IFのAPLに対して当該パケットを通知する動作を行う。本実施の形態において、APLキューは、パケット通知処理を行うパケット制御部毎に備えられてもよいし、APL毎(つまり、APL−IF毎)に備えられてもよい。 The packet control unit reads the packet stored in the APL queue corresponding to itself, and performs an operation of notifying the packet to the APL of the notification IF corresponding to the header information (IP address, port number) of the packet. In the present embodiment, the APL queue may be provided for each packet control unit that performs packet notification processing, or may be provided for each APL (that is, for each APL-IF).
また、各パケット制御部は、流入する(キューから読み取る)パケットをカウントし、カウント値を保持する機能と、CPU制御管理部131からの設定に基づき、自身が割り当てられているCPUの動作を休止する制御を行う機能を含む。
Each packet control unit counts inflowing packets (reads from the queue), holds the count value, and pauses the operation of the CPU to which it is assigned based on the setting from the CPU
CPU制御管理部131は、パケット制御部として動作するCPU毎のパケットカウント値に基づいて、CPUの休止時間(各周期での休止時間)を決定し、当該休止時間を該当のパケット制御部に設定する機能を含む。パケットカウント値に基づいて、CPUの休止時間を決定することは一例であり、例えば、外部からの設定により休止時間を決定してもよい。外部からの設定としては、時間帯毎に休止時間を決定する例がある。例えば、夜の時間帯は、CPU稼働率が低くなるように休止時間を設定する、といった制御を行うことが可能である。
The
パケットカウント値に基づいて、CPUの休止時間を決定するにあたっては、バースト的なパケット流入量の増分でCPU休止時間を変動させることがないよう、CPU制御管理部131は、各パケット制御部(各CPU)のカウンタ値の一定時間間隔のデータ(ヒストリ)を保持する。そして、CPU制御管理部131は、当該ヒストリに基づいて、現時点でのパケットカウント値がバースト的な値か、それとも継続的な値かを判断し、バースト的な値を用いずに、継続的な値を用いて休止時間を決定する。CPU制御管理部131は、CPUの休止時間判断に使用しなくなったヒストリを適宜削除することとしてよい。
In determining the CPU pause time based on the packet count value, the CPU
上記のような機能により、最速で処理したい場合はパケット制御に係るCPU稼働率を100%にして、最忙期以外は自律的あるいは外部からの指示に応じて、CPUリソースの割り当てを行うことが可能となる。つまり、最忙期以外においては、パケット制御部として機能させているCPUの一部のリソースを他の処理に使用するといった制御を実現することができる。 With the functions described above, the CPU operating rate for packet control can be set to 100% when processing is desired at the fastest speed, and CPU resources can be allocated autonomously or in response to external instructions except during the busy period. It becomes possible. In other words, during a period other than the busiest period, it is possible to realize a control in which some resources of the CPU functioning as the packet control unit are used for other processing.
本実施の形態に係るCPU制御装置100は、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、CPU制御装置100が有する機能は、当該コンピュータに内蔵されるCPUやメモリ、ハードディスクなどのハードウェア資源を用いて、当該装置で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
The
(CPU制御装置100の動作概要)
次に、図3〜図5を参照して、CPU制御装置100の動作概要を説明する。図3に示す構成は、図2に示す構成に対応するが、特に、各パケット制御部(CPU)がどのような処理に割り当てられているかがわかるように、より具体的に示したものである。
(Outline of operation of CPU control device 100)
Next, an outline of the operation of the
図3の例では、アプリケーションとしてAPL01〜03が備えられ、NICとしてNIC01、NIC02が備えられている。また、図3には、各パケット制御部に対応するCORE(コア)が示されている。図3の説明では、パケット制御部をCOREと呼ぶことにする。 In the example of FIG. 3, APL01 to 03 are provided as applications, and NIC01 and NIC02 are provided as NICs. FIG. 3 also shows CORE (core) corresponding to each packet control unit. In the description of FIG. 3, the packet control unit is called CORE.
図3に示すように、APL−IF/CORE/NICの関係が予め定義されている。このような定義のための設定情報(関係定義情報と呼ぶ)は、CPU制御管理部131が保持している。図4(a)に、CPU制御管理部131が保持する関係定義情報の例を示す。図4(a)の定義は、図3に対応している。
As shown in FIG. 3, the relationship of APL-IF / CORE / NIC is defined in advance. Setting information for such a definition (referred to as relationship definition information) is held by the CPU
図4(a)に示すとおり、NIC(N01)はCORE01に対応し、NIC(N02)はCORE02及びCORE03に対応する。 As shown in FIG. 4A, NIC (N01) corresponds to CORE01, and NIC (N02) corresponds to CORE02 and CORE03.
また、APL−IF(S01)は、{CORE04,高,LEVEL2}として対応付けがなされている。ここで、APL−IF(S01)={CORE04,高,LEVEL2}は、パケットが多い場合に、APL−IF(S01)に対してCORE04を高優先に割り当てることを意味する。すなわち、CORE04へのパケット流入量のレベルがLEVEL2以上であれば、低優先のAPL−IF側へのCPUリソースを割り当てず、APL01に対するCORE04を高い稼働率で稼働させてAPL01へのパケット通知を行わせる。また、パケット流入量のレベルがLEVEL3以下であれば、APL02及びAPL03側のCPUリソースの割り当てを可能とする。 Further, APL-IF (S01) is associated as {CORE04, high, LEVEL2}. Here, APL-IF (S01) = {CORE04, high, LEVEL2} means that CORE04 is assigned with high priority to APL-IF (S01) when there are many packets. That is, if the level of the packet inflow amount to CORE04 is LEVEL2 or higher, CPU resources for low-priority APL-IF are not allocated, and CORE04 for APL01 is operated at a high operation rate and packet notification to APL01 is performed. Make it. Further, if the level of the packet inflow amount is LEVEL3 or less, the CPU resources on the APL02 and APL03 sides can be allocated.
また、「APL−IF(S02)={CORE04,低},CORE05」、「APL−IF(S03)={CORE04,低},CORE05」として対応付けがなされている。「APL−IF(S02)={CORE04,低},CORE05」は、APL02へのパケット通知処理を通常はCORE05が行い、CORE04において高優先の処理を行わない場合に、CORE04もAPL02へのパケット通知処理を行うことができることを示している。「APL−IF(S03)={CORE04,低},CORE05」についても同様である。 Further, the association is made as “APL-IF (S02) = {CORE04, low}, CORE05” and “APL-IF (S03) = {CORE04, low}, CORE05”. “APL-IF (S02) = {CORE04, low}, CORE05” is a packet notification process to the APL02. When the CORE05 normally performs the packet notification process and the CORE04 does not perform the high priority process, the CORE04 also notifies the APL02 of the packet. It shows that processing can be performed. The same applies to “APL-IF (S03) = {CORE04, low}, CORE05”.
CPU制御管理部131は、更に、CPU毎(CORE毎)にCPU稼働率の制御内容の情報を設定情報として保持している。図4(b)に、当該設定情報の一部を示す。図4(b)において、例えば、CORE01、CORE02に対する「LEVEL1=100% packet>=1000/sec」は、CORE01、CORE02のそれぞれについて、流入するパケットの個数(カウント値)が、1000個/秒よりも多ければLEVEL1として、100%で当該COREを稼働させる。他の例も同様である。なお、図4(b)に示す例では、流入量を、単位時間あたりのパケットの個数としているが、これは例に過ぎず、他の量を用いてもよい。例えば、単位時間あたりのデータ量(Mbyte等)を用いてもよい。
The CPU
CPU制御管理部131は、当該設定情報とパケットカウント値に基づいて、CPU毎の休止時間を決定する。例えば、稼働率が50パーセントであれば、パケット制御部として機能するCPUのリソースは、全体時間のうちの半分がパケット制御に用いられ、残りの時間はCPUを休止させる。または、残りの時間をパケット制御以外の他の処理に割り当てることとしてもよい。
The CPU
図3を参照して、一例として、NIC(N01)からAPL02に至るパケットの流れに関しての動作例を説明する。 With reference to FIG. 3, as an example, an operation example regarding the flow of packets from NIC (N01) to APL02 will be described.
CORE01がNIC(N01)のパケットをNICキューから刈り取るとともに、APLへの通知を行うCORE(ここではCORE05とする)に対応するAPLキューにパケットを格納する。CORE01がどのAPLキューを選択するかは、CPU制御管理131からの設定に基づく。
The CORE01 prunes the packet of NIC (N01) from the NIC queue, and stores the packet in the APL queue corresponding to the CORE (here, CORE05) that notifies the APL. Which APL queue the CORE01 selects is based on the setting from the
例えば、CORE01は、各通知IFの情報(IPアドレス、ポート番号、APLのID等)をCPU制御管理131からの設定により保持しており、当該設定情報に基づいて、NICキューから刈り取ったパケットを、当該パケットに対応するAPLのAPLキューに格納する。CORE05は、上記APLキューからパケットを読み取り、APL02に通知する。
For example, CORE01 holds information (IP address, port number, APL ID, etc.) of each notification IF by the setting from the
なお、本実施の形態では、外部要因となるパケット受信処理を高速に制御するための動作を主に説明しているが、パケットを外部に送信する場合の処理も受信する場合と同様に実行可能である。 In this embodiment, operations for controlling packet reception processing, which is an external factor, at high speed are mainly described. However, processing for transmitting packets to the outside can also be performed in the same manner as when receiving packets. It is.
(パケット制御部の詳細処理例)
図5を参照して、あるパケット制御部(パケット制御に割り当てられたCPU)に着目した場合における、当該パケット制御部の動作手順の例を説明する。
(Detailed processing example of packet controller)
With reference to FIG. 5, an example of an operation procedure of the packet control unit when attention is paid to a certain packet control unit (CPU assigned to packet control) will be described.
各パケット制御部(CPU)は、所定の周期で処理を行っている。ステップS101にて、当該周期処理を開始する。パケット制御部は、CPU制御管理部131からCPU休止期間を取得し(ステップS102)、当該CPU休止期間の情報に基づいて、所定期間、CPUを休止する(ステップS103)。既に説明したように、休止期間及び休止タイミングは、例えば、パケットカウント値と、パケット流入量とCPU稼働率との関係を示す設定情報とに基づき決定されたものである。 Each packet control unit (CPU) performs processing at a predetermined cycle. In step S101, the periodic process is started. The packet control unit acquires the CPU suspension period from the CPU control management unit 131 (step S102), and suspends the CPU for a predetermined period based on the information of the CPU suspension period (step S103). As already described, the pause period and pause timing are determined based on, for example, the packet count value and setting information indicating the relationship between the packet inflow amount and the CPU operating rate.
休止の後、当該パケット制御部がNICを監視するもの(例:図4(b)における"N01=CORE01"として設定されたCORE01)である場合(ステップS104のYes)、当該パケット制御部は、NICキュー120からのパケットの読み込みを行う(ステップS105)。パケットのデータが有る場合(ステップS106のYes)、パケット制御部は、パケットカウンタをカウントアップし、パケットカウンタ値を更新する。 If the packet control unit monitors the NIC after the pause (example: CORE01 set as “N01 = CORE01” in FIG. 4B) (Yes in step S104), the packet control unit A packet is read from the NIC queue 120 (step S105). When there is packet data (Yes in step S106), the packet control unit counts up the packet counter and updates the packet counter value.
パケット制御部は、CPU制御管理部131からの設定等に基づいて、APLキューを選択し(ステップS108)、パケットを当該APLキューに書き込む(ステップS109)。 The packet control unit selects an APL queue based on the setting from the CPU control management unit 131 (step S108), and writes the packet to the APL queue (step S109).
ステップS104の判定がNoの場合、すなわち、対象としているパケット制御部がAPL通知処理を行うもの(例:図4(b)におけるCORE04等)である場合、当該パケット制御部は、対応するAPLキューからパケット読み込みを行う(ステップS111)。パケットデータが有る場合(ステップS112のYes)、パケットカウンタ値を更新する(ステップS113)。また、当該パケットがAPL通知条件に該当する場合(ステップS114のYes)に、パケットを該当APLに通知する(ステップS115)。ステップS116において周期処理を終了する。 If the determination in step S104 is No, that is, if the target packet control unit performs APL notification processing (for example, CORE04 in FIG. 4B), the packet control unit corresponds to the corresponding APL queue. Packet reading is performed (step S111). If there is packet data (Yes in step S112), the packet counter value is updated (step S113). When the packet meets the APL notification condition (Yes in step S114), the packet is notified to the corresponding APL (step S115). In step S116, the periodic process ends.
ステップS111において、読み込みの対象とするAPLキューは、例えば、当該パケット制御部に割り当てられたAPL−IFに対応するAPLのAPLキューである。また、ステップS114におけるAPL通知条件とは、例えば、読み込んだパケットが、当該パケット制御部に割り当てられたAPL−IFのIPアドレス及びポート番号に該当するか否かの条件である。 In step S111, the APL queue to be read is, for example, the APL queue of the APL corresponding to the APL-IF assigned to the packet control unit. The APL notification condition in step S114 is a condition as to whether or not the read packet corresponds to the IP address and port number of the APL-IF assigned to the packet control unit.
(CPU制御管理部の詳細処理例)
次に、CPU制御管理部131の動作例を図6のフローチャートを参照して説明する。ここでは、まず、外部からの設定により、監視間隔の設定がなされる(ステップS201)。本実施の形態では、当該監視間隔により、CPU制御管理部131として動作するCPUの休止時間が定められる。例えば、監視間隔を100とし、監視の処理に掛かる時間(図6のステップS204〜S207)が50であるとすると、50が休止期間となる。
(Detailed processing example of CPU control management unit)
Next, an operation example of the CPU
ステップS202にて、周期処理が開始される。ステップS203において、CPU制御管理部131は、監視間隔に基づいて自身のCPUを休止する。
In step S202, the periodic process is started. In step S203, the CPU
休止の後、CPU制御管理部131は、パケット制御部として割り当てられたCPU毎のパケットカウンタ値を各パケット制御部から読み取り(ステップS204)、当該カウント値と設定情報(例:図4(b))とに基づいて、パケット制御部(CPU)毎の休止時間を決定する(ステップS205)。
After the suspension, the CPU
前述したように、CPU制御管理部131は、バースト的なパケット流入量の増分でCPU休止時間を変動させることがないよう、一定期間内での流入量に基づいて休止時間を決定する。
As described above, the CPU
CPU制御管理部131は、新たなパケット制御部(CPU)毎の休止時間を、例えば、該当パケット制御部における所定の記憶部に書き込み(ステップS206)、不要なパケット制御部(CPU)毎のカウンタ値のヒストリを削除する(ステップS207)。ステップS208にて、周期処理を終了する。
The CPU
(実施の形態の効果について)
図7に、本実施の形態に係るCPU制御を適用しない場合におけるCPU利用状況例を示す。
(Effects of the embodiment)
FIG. 7 shows an example of a CPU usage situation when the CPU control according to the present embodiment is not applied.
図7に示すように、CPU制御を適用しない場合、パケット制御のために使用される各CPUの稼働率は常に100%となり、電力等の無駄が多い。ピークタイムが13:00〜18:00であるシステムの場合でも、夜間等それ以外の時間でCPUリソースが無駄に消費されてしまう。また、夜間に重い処理をコンピュータで実施したい場合でも、CPUリソースが2コア分しか空いていないため、システムオフタイムでの活動に制限が出てくる。 As shown in FIG. 7, when the CPU control is not applied, the operation rate of each CPU used for packet control is always 100%, and there is a lot of waste of power and the like. Even in the case of a system where the peak time is 13:00 to 18:00, CPU resources are wasted in other times such as at night. Even if it is desired to carry out heavy processing on a computer at night, the CPU resources are only available for two cores, so that there are restrictions on activities during the system off time.
図8に、本実施の形態に係るCPU制御を適用する場合におけるCPU利用状況例を示す。 FIG. 8 shows an example of a CPU usage situation when the CPU control according to the present embodiment is applied.
図8に示すように、CPU制御を適用する場合、パケット処理に必要なCPU割当が可能となるため、最忙期での性能を損なわず、発熱の発生、CPU故障率の上昇、電力消費の課題を解決することができる。システムオフタイム時では、余剰CPUを夜間バッチ処理等様々な用途にも利用することができる。 As shown in FIG. 8, when CPU control is applied, CPU allocation necessary for packet processing becomes possible, so that performance in the busiest period is not impaired, heat generation, CPU failure rate increase, power consumption The problem can be solved. At the system off time, the surplus CPU can be used for various purposes such as nighttime batch processing.
以上、説明したように、本実施の形態により、ネットワークインターフェース部とアプリケーションとを備えるコンピュータにより構成されるパケット処理装置であって、前記ネットワークインターフェース部からのパケットの読み取りを行う第1のパケット制御手段と、前記アプリケーションに対して前記パケットの通知を行う第2のパケット制御手段と、前記第1のパケット制御手段に対するCPUリソースの割り当て、及び前記第2のパケット制御手段に対するCPUリソースの割り当てを行うCPU制御管理手段と、を備えることを特徴とするパケット処理装置が提供される。 As described above, according to the present embodiment, a packet processing apparatus configured by a computer including a network interface unit and an application, the first packet control means for reading a packet from the network interface unit And a second packet control means for notifying the application of the packet, a CPU resource allocation to the first packet control means, and a CPU resource allocation to the second packet control means A packet processing apparatus comprising: a control management unit.
前記第1のパケット制御手段の処理は前記コンピュータにおける1つ又は複数のCPUに割り当てられ、前記第2のパケット制御手段の処理は前記コンピュータにおける1つ又は複数のCPUに割り当てられ、前記CPU制御管理手段は、例えば、CPU毎に、CPUに流入するパケット量に基づいて、CPU稼働率を決定する。 The processing of the first packet control means is assigned to one or more CPUs in the computer, the processing of the second packet control means is assigned to one or more CPUs in the computer, and the CPU control management For example, the means determines the CPU operation rate for each CPU based on the amount of packets flowing into the CPU.
前記CPU制御管理手段は、前記第2のパケット制御手段に対して、パケットを前記アプリケーションに通知するための通知インターフェースの情報を設定することとしてもよい。 The CPU control management unit may set information of a notification interface for notifying the second packet control unit of a packet to the application.
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。 The present invention is not limited to the above-described embodiments, and various modifications and applications are possible within the scope of the claims.
1〜3 ルータ
4、5 宅内装置
10 電気通信事業者網
20 他事業会社等の網
100 CPU制御装置
101、102 NIC
110 I/Oフレームワーク
120 NICキュー
130 CPU制御部
131 CPU制御管理部
132〜134 パケット制御部
135、136 アプリケーション(APL)キュー
141、142 アプリケーション(APL)
1 to 3 routers 4 and 5 in-
110 I /
Claims (4)
前記ネットワークインターフェース部からのパケットの読み取りを行う第1のパケット制御手段と、
前記アプリケーションに対して前記パケットの通知を行う第2のパケット制御手段と、
前記第1のパケット制御手段に対するCPUリソースの割り当て、及び前記第2のパケット制御手段に対するCPUリソースの割り当てを行うCPU制御管理手段と、
を備えることを特徴とするパケット処理装置。 A packet processing apparatus configured by a computer including a network interface unit and an application,
First packet control means for reading packets from the network interface unit;
Second packet control means for notifying the application of the packet;
CPU control management means for assigning CPU resources to the first packet control means and assigning CPU resources to the second packet control means;
A packet processing apparatus comprising:
前記CPU制御管理手段は、CPU毎に、CPUに流入するパケット量に基づいて、CPU稼働率を決定する
ことを特徴とする請求項1に記載のパケット処理装置。 The processing of the first packet control means is assigned to one or more CPUs in the computer, the processing of the second packet control means is assigned to one or more CPUs in the computer,
The packet processing apparatus according to claim 1, wherein the CPU control management unit determines a CPU operation rate for each CPU based on a packet amount flowing into the CPU.
ことを特徴とする請求項1又は2に記載のパケット処理装置。 The packet processing device according to claim 1, wherein the CPU control management unit sets information of a notification interface for notifying the application of a packet to the second packet control unit. .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015093375A JP6491944B2 (en) | 2015-04-30 | 2015-04-30 | Packet processing apparatus and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015093375A JP6491944B2 (en) | 2015-04-30 | 2015-04-30 | Packet processing apparatus and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016213564A JP2016213564A (en) | 2016-12-15 |
JP6491944B2 true JP6491944B2 (en) | 2019-03-27 |
Family
ID=57552120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015093375A Active JP6491944B2 (en) | 2015-04-30 | 2015-04-30 | Packet processing apparatus and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6491944B2 (en) |
-
2015
- 2015-04-30 JP JP2015093375A patent/JP6491944B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016213564A (en) | 2016-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2972855B1 (en) | Automatic configuration of external services based upon network activity | |
EP2304565B1 (en) | Method and system for power management in a virtual machine environment withouth disrupting network connectivity | |
US10860374B2 (en) | Real-time local and global datacenter network optimizations based on platform telemetry data | |
US9882832B2 (en) | Fine-grained quality of service in datacenters through end-host control of traffic flow | |
US10257066B2 (en) | Interconnect congestion control in a storage grid | |
US10110460B2 (en) | Priority assessment of network traffic to conserve bandwidth guarantees in a data center | |
US8924534B2 (en) | Resource optimization and monitoring in virtualized infrastructure | |
US20160378570A1 (en) | Techniques for Offloading Computational Tasks between Nodes | |
Suresh et al. | Distributed resource management across process boundaries | |
US11567556B2 (en) | Platform slicing of central processing unit (CPU) resources | |
US9559968B2 (en) | Technique for achieving low latency in data center network environments | |
CN107645407B (en) | Method and device for adapting QoS | |
US9553810B2 (en) | Dynamic reconfiguration of network devices for outage prediction | |
US20170034063A1 (en) | Prioritization of network traffic in a distributed processing system | |
Behnke et al. | Towards a real-time IoT: Approaches for incoming packet processing in cyber–physical systems | |
JP2008181387A (en) | I/o bus system and its management method | |
JP6491944B2 (en) | Packet processing apparatus and program | |
JP7148596B2 (en) | Network-aware elements and how to use them | |
Sun et al. | PACCP: a price-aware congestion control protocol for datacenters | |
JP6657910B2 (en) | Band setting method, band setting program, information processing apparatus and information processing system | |
TWI853136B (en) | Apparatus and method for a closed-loop dynamic resource allocation control framework | |
Wu et al. | A framework for proactive resource allocation in IaaS clouds | |
US20140047126A1 (en) | Coordinated enforcement of traffic shaping limits in a network system | |
CN118660017A (en) | Method, apparatus, medium and computer program product for scheduling receive queues | |
Kontodimas et al. | Analysis and evaluation of I/O hypervisor scheduling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180320 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190116 |
|
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: 20190226 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190304 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6491944 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |