JP6491944B2 - Packet processing apparatus and program - Google Patents

Packet processing apparatus and program Download PDF

Info

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
Application number
JP2015093375A
Other languages
Japanese (ja)
Other versions
JP2016213564A (en
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.)
NTT TechnoCross Corp
Original Assignee
NTT TechnoCross 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 NTT TechnoCross Corp filed Critical NTT TechnoCross Corp
Priority to JP2015093375A priority Critical patent/JP6491944B2/en
Publication of JP2016213564A publication Critical patent/JP2016213564A/en
Application granted granted Critical
Publication of JP6491944B2 publication Critical patent/JP6491944B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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.

特開2010−028708号公報JP 2010-028708 A

しかし、上記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.

本発明の実施の形態に係るシステムの構成例を示す図である。It is a figure which shows the structural example of the system which concerns on embodiment of this invention. CPU制御装置100の構成図である。2 is a configuration diagram of a CPU control device 100. FIG. CPU制御の動作概要を説明するための図である。It is a figure for demonstrating the operation | movement outline | summary of CPU control. CPU管理制御部131で管理される情報の例を示す図である。It is a figure which shows the example of the information managed by CPU management control part 131. パケット制御手順を説明するためのフローチャートである。It is a flowchart for demonstrating a packet control procedure. CPU制御手順を説明するためのフローチャートである。It is a flowchart for demonstrating a CPU control procedure. CPU利用状況例(CPU制御装置適用前)を示す図である。It is a figure which shows the example of a CPU utilization condition (before CPU control apparatus application). CPU利用状況例(CPU制御装置適用後)を示す図である。It is a figure which shows the example of a CPU utilization condition (after CPU control apparatus application).

以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。   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 CPU control device 100 configured by a general-purpose computer is provided. FIG. 1 is a diagram illustrating an example of a system to which a CPU control device 100 according to the present embodiment is applied. Since the CPU control device 100 processes a packet, it may be referred to as a packet processing device.

図1は、ルータ1〜3を含む多数のルータで構成される電気通信事業者網10の例を示している。図1の例では、電気通信事業者網10には、他事業会社等の網20が接続されている。また、加入者の宅内装置4、5が接続されている。   FIG. 1 shows an example of a telecommunications carrier network 10 composed of a number of routers including routers 1 to 3. In the example of FIG. 1, a telecommunications carrier network 10 is connected to a network 20 such as another business company. In addition, subscriber's home devices 4 and 5 are connected.

図1には、電気通信事業者網10を構成する機能としてルータ1〜3が示されているが、その他にも、電気通信事業者網10には、アクセスサーバ、コンテンツ配信サーバ等、パケットの送受信を行う各種の機能が備えられる。   In FIG. 1, routers 1 to 3 are shown as functions constituting the telecommunications carrier network 10, but in addition, the telecommunications carrier network 10 includes packet servers such as an access server and a content distribution server. Various functions for transmitting and receiving are provided.

本実施の形態におけるCPU制御装置100は、電気通信事業者網10を構成する上記の各機能をアプリケーション(プログラム)として実装するものである。上記の各機能の実装にCPU制御装置100を用いることで、設備投資、維持管理のコストを低減でき、また、通常のプログラムで機能を自在に記述できるため、事業会社特化の機能盛り込みも自在に実現可能となる。   The CPU control device 100 according to the present embodiment implements each of the above functions constituting the telecommunications carrier network 10 as an application (program). By using the CPU control device 100 for implementing each of the above functions, the cost of capital investment and maintenance can be reduced, and the functions can be freely described with ordinary programs, so that functions specific to operating companies can be incorporated. It becomes feasible.

なお、CPU制御装置100を、電気通信事業者網10を構成する機能の実現のために使用することは一例である。CPU制御装置100はパケット送受信を行う様々な分野に適用可能であり、その用途に特に限定はない。   Note that the use of the CPU control device 100 for realizing the functions constituting the telecommunications carrier network 10 is an example. The CPU control device 100 can be applied to various fields that perform packet transmission / reception, and its use is not particularly limited.

(装置構成)
CPU制御装置100は、ハードウェアとしては、汎用コンピュータの構成を持つ。すなわち、CPU制御装置100は、CPU、メモリ、NIC(Network interface controller)等を備える。
(Device configuration)
The CPU control device 100 has a configuration of a general-purpose computer as hardware. That is, the CPU control device 100 includes a CPU, a memory, a NIC (Network Interface Controller), and the like.

なお、以下、CPU制御装置100の機能構成及び動作に関して説明する「CPU」は、ハードウェアのCPUであってもよいし、仮想的なCPUであってもよい。また、本実施の形態において、「CPU」は、計算リソースを割り当てる単位(言い換えると、稼働率を制御する単位)である。また、本実施の形態においては、コア(CORE)と「CPU」は同義と考えてよい。すなわち、以下で説明するコア(CORE)を「CPU」に置き換えてもよい。   The “CPU” described below regarding the functional configuration and operation of the CPU control device 100 may be a hardware CPU or a virtual CPU. In the present embodiment, the “CPU” is a unit for allocating calculation resources (in other words, a unit for controlling the operation rate). In this embodiment, the core (CORE) and “CPU” may be considered synonymous. That is, the core (CORE) described below may be replaced with “CPU”.

図2に、本実施の形態におけるCPU制御装置100の機能構成を示す。図2に示す構成は、コンピュータであるCPU制御装置100に搭載されるプログラムと、CPUやメモリ等のハードウェアとが協働して実現される機能の構成である。   FIG. 2 shows a functional configuration of the CPU control device 100 in the present embodiment. The configuration shown in FIG. 2 is a configuration of functions realized by cooperation of a program installed in the CPU control device 100, which is a computer, and hardware such as a CPU and a memory.

図2に示すように、CPU制御装置100は、アプリケーション(APL)141、142、及び、I/Oフレームワーク110を含み、アプリケーション141、142とI/Oフレームワーク110との間に、CPU制御部130が備えられる。   As shown in FIG. 2, the CPU control apparatus 100 includes applications (APL) 141 and 142 and an I / O framework 110, and CPU control is performed between the applications 141 and 142 and the I / O framework 110. A unit 130 is provided.

各アプリケーションは、例えば、前述した電気通信事業者網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 telecommunications carrier network 10 described above. As described above, the I / O framework 110 is a functional unit that enables high-speed packet processing on a general-purpose computer by eliminating kernel functions such as interrupt processing. An example of the I / O framework is netmap. In the present embodiment, an embodiment in which the I / O framework 110 is used is shown, but the CPU control means according to the present invention can be applied to a configuration in which the I / O framework 110 is not used. is there.

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 NIC queue 120 is a buffer (storage unit) that stores packets transmitted and received via the NIC. The NIC queue 120 and the NICs 101 and 102 may be referred to as NIC. In the example shown in FIG. 2, two APLs and two NICs are provided, but this is only an example.

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 control management unit 131, packet control units 132 to 134, and application (APL) queues 135 and 136. Here, three packet control units are shown and two APL queues are shown, but this is only an example.

CPU制御管理部131、パケット制御部132、パケット制御部133、及びパケット制御部134は、それぞれ、1CPUに割り当てられた機能部であることを想定している。つまり、各機能部の処理は、対応するCPUに割り当てられ、当該CPUで実行されるプログラムにより実現される。CPU制御管理部、パケット制御部をそれぞれ「CPU」と称する場合もある。   It is assumed that the CPU control management unit 131, the packet control unit 132, the packet control unit 133, and the packet control unit 134 are functional units assigned to one CPU. That is, the processing of each functional unit is realized by a program that is assigned to the corresponding CPU and executed by the CPU. The CPU control management unit and the packet control unit may be referred to as “CPU”, respectively.

なお、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 packet control units 132 to 134 corresponds to the CPU for the mowing process, and the other corresponds to the CPU for the notification process.

また、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 control management unit 131, APL 141, APL 142, etc. to the corresponding packet control unit. A plurality of notification IFs may be assigned to a packet control unit (CPU) that performs processing for notifying a packet to the APL.

パケット制御部は、自身に対応する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 control management unit 131. Including a function to perform control.

CPU制御管理部131は、パケット制御部として動作するCPU毎のパケットカウント値に基づいて、CPUの休止時間(各周期での休止時間)を決定し、当該休止時間を該当のパケット制御部に設定する機能を含む。パケットカウント値に基づいて、CPUの休止時間を決定することは一例であり、例えば、外部からの設定により休止時間を決定してもよい。外部からの設定としては、時間帯毎に休止時間を決定する例がある。例えば、夜の時間帯は、CPU稼働率が低くなるように休止時間を設定する、といった制御を行うことが可能である。   The CPU control manager 131 determines the CPU pause time (pause time in each cycle) based on the packet count value for each CPU operating as a packet controller, and sets the pause time in the corresponding packet controller. Including the function to perform. Determining the CPU pause time based on the packet count value is an example. For example, the pause time may be determined by an external setting. As an external setting, there is an example in which a pause time is determined for each time zone. For example, in the night time zone, it is possible to perform control such as setting a pause time so that the CPU operation rate is low.

パケットカウント値に基づいて、CPUの休止時間を決定するにあたっては、バースト的なパケット流入量の増分でCPU休止時間を変動させることがないよう、CPU制御管理部131は、各パケット制御部(各CPU)のカウンタ値の一定時間間隔のデータ(ヒストリ)を保持する。そして、CPU制御管理部131は、当該ヒストリに基づいて、現時点でのパケットカウント値がバースト的な値か、それとも継続的な値かを判断し、バースト的な値を用いずに、継続的な値を用いて休止時間を決定する。CPU制御管理部131は、CPUの休止時間判断に使用しなくなったヒストリを適宜削除することとしてよい。   In determining the CPU pause time based on the packet count value, the CPU control management unit 131 does not change the CPU pause time by changing the burst packet inflow amount. CPU) holds data (history) at a certain time interval of the counter value. Then, based on the history, the CPU control management unit 131 determines whether the current packet count value is a burst value or a continuous value, and continuously without using a burst value. The pause time is determined using the value. The CPU control management unit 131 may appropriately delete the history that is no longer used for determining the CPU pause time.

上記のような機能により、最速で処理したい場合はパケット制御に係る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 control apparatus 100 according to the present embodiment can be realized by causing a computer to execute a program describing the processing contents described in the present embodiment. That is, the functions of the CPU control device 100 are realized by executing a program corresponding to processing executed in the device using hardware resources such as a CPU, a memory, and a hard disk built in the computer. Is possible. The above-mentioned program can be recorded on a computer-readable recording medium (portable memory or the like), stored, or distributed. It is also possible to provide the program through a network such as the Internet or electronic mail.

(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 CPU control device 100 will be described with reference to FIGS. The configuration shown in FIG. 3 corresponds to the configuration shown in FIG. 2, but more specifically shows the processing assigned to each packet control unit (CPU). .

図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 control management unit 131. FIG. 4A shows an example of relationship definition information held by the CPU control management unit 131. The definition of FIG. 4A corresponds to FIG.

図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 control management unit 131 further holds information on the control content of the CPU operation rate as setting information for each CPU (each CORE). FIG. 4B shows a part of the setting information. In FIG. 4B, for example, “LEVEL1 = 100% packet> = 1000 / sec” for CORE01 and CORE02 indicates that the number of inflowing packets (count value) is 1000 / second for each of CORE01 and CORE02. If there are more, the CORE is operated at 100% as LEVEL1. The same applies to other examples. In the example shown in FIG. 4B, the inflow amount is the number of packets per unit time, but this is only an example, and other amounts may be used. For example, a data amount (Mbyte or the like) per unit time may be used.

CPU制御管理部131は、当該設定情報とパケットカウント値に基づいて、CPU毎の休止時間を決定する。例えば、稼働率が50パーセントであれば、パケット制御部として機能するCPUのリソースは、全体時間のうちの半分がパケット制御に用いられ、残りの時間はCPUを休止させる。または、残りの時間をパケット制御以外の他の処理に割り当てることとしてもよい。   The CPU control management unit 131 determines a pause time for each CPU based on the setting information and the packet count value. For example, if the operating rate is 50%, the CPU resource functioning as the packet control unit uses half of the total time for packet control, and rests the CPU for the remaining time. Alternatively, the remaining time may be assigned to processing other than packet control.

図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 CPU control management 131.

例えば、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 CPU control management 131, and based on the setting information, the packet cut from the NIC queue is stored. And stored in the APL queue of the APL corresponding to the packet. CORE05 reads the packet from the APL queue and notifies APL02.

なお、本実施の形態では、外部要因となるパケット受信処理を高速に制御するための動作を主に説明しているが、パケットを外部に送信する場合の処理も受信する場合と同様に実行可能である。   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 control management unit 131 will be described with reference to the flowchart of FIG. Here, first, the monitoring interval is set by setting from the outside (step S201). In the present embodiment, the suspension time of the CPU that operates as the CPU control management unit 131 is determined by the monitoring interval. For example, assuming that the monitoring interval is 100 and the time required for the monitoring process (steps S204 to S207 in FIG. 6) is 50, 50 is a pause period.

ステップS202にて、周期処理が開始される。ステップS203において、CPU制御管理部131は、監視間隔に基づいて自身のCPUを休止する。   In step S202, the periodic process is started. In step S203, the CPU control management unit 131 suspends its own CPU based on the monitoring interval.

休止の後、CPU制御管理部131は、パケット制御部として割り当てられたCPU毎のパケットカウンタ値を各パケット制御部から読み取り(ステップS204)、当該カウント値と設定情報(例:図4(b))とに基づいて、パケット制御部(CPU)毎の休止時間を決定する(ステップS205)。   After the suspension, the CPU control management unit 131 reads the packet counter value for each CPU assigned as the packet control unit from each packet control unit (step S204), and the count value and setting information (example: FIG. 4B). ) To determine a pause time for each packet control unit (CPU) (step S205).

前述したように、CPU制御管理部131は、バースト的なパケット流入量の増分でCPU休止時間を変動させることがないよう、一定期間内での流入量に基づいて休止時間を決定する。   As described above, the CPU control management unit 131 determines the suspension time based on the inflow amount within a certain period so that the CPU suspension time does not fluctuate due to the burst packet inflow increase.

CPU制御管理部131は、新たなパケット制御部(CPU)毎の休止時間を、例えば、該当パケット制御部における所定の記憶部に書き込み(ステップS206)、不要なパケット制御部(CPU)毎のカウンタ値のヒストリを削除する(ステップS207)。ステップS208にて、周期処理を終了する。   The CPU control management unit 131 writes the pause time for each new packet control unit (CPU) into, for example, a predetermined storage unit in the packet control unit (step S206), and a counter for each unnecessary packet control unit (CPU). The value history is deleted (step S207). In step S208, the periodic process ends.

(実施の形態の効果について)
図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-home equipment 10 telecommunications carrier network 20 network of other business company 100 CPU control devices 101 and 102 NIC
110 I / O framework 120 NIC queue 130 CPU control unit 131 CPU control management unit 132 to 134 Packet control unit 135, 136 Application (APL) queue 141, 142 Application (APL)

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:
前記第1のパケット制御手段の処理は前記コンピュータにおける1つ又は複数のCPUに割り当てられ、前記第2のパケット制御手段の処理は前記コンピュータにおける1つ又は複数のCPUに割り当てられ、
前記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.
前記CPU制御管理手段は、前記第2のパケット制御手段に対して、パケットを前記アプリケーションに通知するための通知インターフェースの情報を設定する
ことを特徴とする請求項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. .
コンピュータを請求項1ないし3のうちいずれか1項に記載のパケット処理装置における各手段として機能させるためのプログラム。   The program for functioning a computer as each means in the packet processing apparatus of any one of Claims 1 thru | or 3.
JP2015093375A 2015-04-30 2015-04-30 Packet processing apparatus and program Active JP6491944B2 (en)

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)

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