JP2015231110A - Cpu allocation device, method and program - Google Patents

Cpu allocation device, method and program Download PDF

Info

Publication number
JP2015231110A
JP2015231110A JP2014115950A JP2014115950A JP2015231110A JP 2015231110 A JP2015231110 A JP 2015231110A JP 2014115950 A JP2014115950 A JP 2014115950A JP 2014115950 A JP2014115950 A JP 2014115950A JP 2015231110 A JP2015231110 A JP 2015231110A
Authority
JP
Japan
Prior art keywords
processing
core
search
entry
time
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.)
Granted
Application number
JP2014115950A
Other languages
Japanese (ja)
Other versions
JP5833186B1 (en
Inventor
智也 日比
Tomoya Hibi
智也 日比
佳宏 中島
Yoshihiro Nakajima
佳宏 中島
高橋 宏和
Hirokazu Takahashi
宏和 高橋
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014115950A priority Critical patent/JP5833186B1/en
Application granted granted Critical
Publication of JP5833186B1 publication Critical patent/JP5833186B1/en
Publication of JP2015231110A publication Critical patent/JP2015231110A/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

PROBLEM TO BE SOLVED: To determine core allocation for efficient table processing and to speed up packet processing in a multi-table.SOLUTION: A CPU allocation device acquires at least one of search table information sets including a use memory used by each table, an expected search time required for searching each entry in the table and an expected packet processing time for packet processing. Based on the acquired search table information, the CPU allocation device allocates to each core at least one of table search and packet processing in a manner to have the same processing time in each core, outputs an allocation result, and based on the allocation result, performs the change and the control of a content to be processed in the core.

Description

本発明は、CPU割当装置及び方法及びプログラムに係り、特に、OpenFlow(登録商標) Wire Protocolに代表されるような、マルチコアCPU環境におけるマルチテーブルのフロー検索やパケット処理に対して、効率的な処理割り当てを行うためのCPU割当装置及び方法及びプログラムに関する。   The present invention relates to a CPU allocation apparatus, method, and program, and in particular, efficient processing for multi-table flow retrieval and packet processing in a multi-core CPU environment, as represented by OpenFlow (registered trademark) Wire Protocol. The present invention relates to a CPU allocation apparatus, method, and program for performing allocation.

近年、OpenFlow(登録商標) Wire Protocol等の通信制御をフロー単位で行い、より粒度の細かいサービス品質制御、経路制御を可能とするフローベースネットワーキングの利用が広がっている。フローとは、MAC(Media Access Control)アドレスやVLAN(Virtual LAN)におけるVID、IP(Internet Protocol)アドレス、ポート番号等で識別される。アプリケーション毎の一連の通信のまとまりであり、フローベースネットワーキングではユーザやアプリケーションに応じたQoS制御やパケットヘッダの書き換え、経路制御が可能となる。   In recent years, the use of flow-based networking that enables communication quality control and path control with finer granularity by performing communication control such as OpenFlow (registered trademark) Wire Protocol in units of flows has been spreading. A flow is identified by a MAC (Media Access Control) address, a VID in a VLAN (Virtual LAN), an IP (Internet Protocol) address, a port number, or the like. A series of communication for each application, and flow-based networking enables QoS control, packet header rewriting, and path control according to the user and application.

フローベースネットワーキングの中継ノードであるフロースイッチでは、フローテーブルに登録されたエントリを参照して、エントリに従ったパケットヘッダの書き換え、パケットの送出等を行う。フローエントリは、エントリの優先度、受信ポートやヘッダの各情報に相当するフィールドを持つ一致条件、一致条件に一致したパケットに行う処理内容によって構成される。   A flow switch, which is a relay node for flow-based networking, refers to an entry registered in the flow table and rewrites a packet header and sends a packet according to the entry. The flow entry is composed of entry priority, a matching condition having fields corresponding to each information of the receiving port and header, and processing contents to be performed on a packet that matches the matching condition.

OpenFlow (登録商標) Wire Protocolに代表される最近のプロトコルに対応するフロースイッチでは、フローテーブルの簡易性向上のため、複数のフローテーブル(マルチテーブル)を扱うことができる。図1の中央部に示すように、"table 0"から順にフロー検索とパケット処理を繰り返す。   A flow switch corresponding to a recent protocol represented by OpenFlow (registered trademark) Wire Protocol can handle a plurality of flow tables (multi-tables) in order to improve the simplicity of the flow table. As shown in the center of FIG. 1, the flow search and packet processing are repeated in order from “table 0”.

これまで、フロースイッチにおけるマルチテーブル処理は、図2に示すように、一つのパケットに対し、一つのコアがすべてのテーブル処理を行っていた。   Until now, in the multi-table processing in the flow switch, as shown in FIG. 2, one core performs all table processing for one packet.

また、単純な並列化としては、図3に示すように、テーブルの数を基準に各コアに処理を行うテーブルを分割する手法が考えられる。   As a simple parallelization, as shown in FIG. 3, a method of dividing a table to be processed for each core based on the number of tables can be considered.

また、テーブルのエントリをMaskを持つものとMaskを持たないものに分け、Maskを持たないものはハッシュでCPUで行い、Maskを持つものはNIC(Network Interface Card)やGPU(Graphics Processing Unit))に処理をオフロードする手法が知られている(例えば、非特許文献1,2参照)。   Also, the table entries are divided into those with Mask and those without Mask, those without Mask are performed by the CPU with hash, those with Mask are NIC (Network Interface Card) and GPU (Graphics Processing Unit)) There are known methods for offloading processes (see, for example, Non-Patent Documents 1 and 2).

Sangjin Han, Keon Jang, KyoungSoo Park, and Sue Moon. Packetshader: a gpu-accelerated software router. ACM SIGCOMM Computer Communication Review, 40(4): 195-206, 2010.Sangjin Han, Keon Jang, KyoungSoo Park, and Sue Moon. Packetshader: a gpu-accelerated software router. ACM SIGCOMM Computer Communication Review, 40 (4): 195-206, 2010. Voravit Tanyingyong, Markus Hidell, and Peter sjodin. Inproving pc-based Openflow switching performance. In Proceedings of the 6th ACM/IEEE Symposium on Architectures for Networking and Communications Systems, page 13. ACM, 2010.Voravit Tanyingyong, Markus Hidell, and Peter sjodin.Inproving pc-based Openflow switching performance.In Proceedings of the 6th ACM / IEEE Symposium on Architectures for Networking and Communications Systems, page 13.ACM, 2010.

しかし、図2の例のように、1つのコアが全てのテーブルのルックアップを行う方法では、CPUキャッシュのキャッシュミスが増え、検索速度が劣化する。   However, as in the example of FIG. 2, in a method in which one core performs lookup of all tables, cache misses in the CPU cache increase and the search speed deteriorates.

また、図3の例のようにテーブルの数を基準とした並列化では、CPUのアイドル時間(図4のコアの待ち時間)が増え、効率的な並列が達成できない。   In addition, parallel processing based on the number of tables as in the example of FIG. 3 increases the CPU idle time (core waiting time of FIG. 4) and cannot achieve efficient parallel processing.

また、Maskを持つエントリとMaskを持たないエントリに分ける手法では、Maskを持たないエントリが大半であった場合、エントリを分割しない手法と違いがない。   Further, the method of dividing an entry having a mask and an entry not having a mask is not different from a method in which an entry is not divided when most entries do not have a mask.

これらの課題は、各テーブルで行うフローの検索、及びパケットへの処理の時間が一定でないこと、複数のテーブルの処理を一つのコアで行うとキャッシュミスが増加することが原因である。   These problems are caused by the fact that the time for searching for a flow performed in each table and the processing time for a packet are not constant, and that cache misses increase when a plurality of tables are processed in one core.

本発明は、上記の点に鑑みなされたもので、効率的なテーブル処理のコアの割り当てを決定し、マルチテーブルにおけるパケット処理を高速化できるCPU割当装置及び方法及びプログラムを提供することを目的とする。   The present invention has been made in view of the above points, and it is an object of the present invention to provide a CPU allocation device, method, and program capable of determining core allocation for efficient table processing and accelerating packet processing in a multi-table. To do.

一態様によれば、マルチコアCPUを有するフロースイッチの各コアに処理を割り当てるCPU割当装置であって、
各テーブルが使用する使用メモリまたは該テーブルの各エントリを検索するために必要な予想検索時間またはパケット処理を行う予想パケット処理時間を含む検索テーブルの情報のうちのいずれか少なくとも一つを取得し、該検索テーブルの情報に基づいて、各コアの処理時間が同じになるようにテーブルの検索とパケット処理のうちの少なくともいずれかを各コアに割り当て、割当結果を出力する処理コア管理手段と、
前記割当結果に基づいて、前記コアで行う処理内容の変更及び制御を行う処理コア制御手段と、を有するCPU割当装置が提供される。
According to one aspect, a CPU allocation device that allocates processing to each core of a flow switch having a multi-core CPU,
Obtaining at least one of used memory used by each table or information of a search table including an expected search time necessary for searching each entry of the table or an expected packet processing time for performing packet processing; A processing core management means for allocating at least one of table search and packet processing to each core based on the information of the search table so that the processing time of each core is the same, and outputting an allocation result;
There is provided a CPU allocation device having processing core control means for changing and controlling processing contents performed by the core based on the allocation result.

一態様によれば、テーブルの処理を各コアに均等に分配し、並列化の効率を上げることにより、フロースイッチのフロー検索処理及びパケット処理を高速に行うことができ、フロースイッチの高速化を図ることができる。   According to one aspect, by distributing the table processing evenly to each core and increasing the efficiency of parallelization, flow search processing and packet processing of the flow switch can be performed at high speed, and the flow switch can be speeded up. Can be planned.

従来のマルチテーブル処理の例。An example of conventional multi-table processing. 従来のマルチテーブル処理において一つのコアがすべてのテーブルのルックアップを行う例。An example in which one core performs lookup of all tables in conventional multi-table processing. 従来のテーブルの数を基準にテーブルを分割する例。The example which divides | segments a table on the basis of the number of the conventional tables. コアに対する単純割り当て時のテーブルの処理時間とコアの待ち時間の例。Example of table processing time and core waiting time during simple allocation to a core. 本発明の一実施の形態における処理概要を示す図。The figure which shows the process outline | summary in one embodiment of this invention. 本発明の一実施の形態におけるCPUに均等に割り当てた場合のコアの例。The example of the core at the time of equally allocating to CPU in one embodiment of this invention. 本発明の一実施の形態におけるシステム構成例。The system configuration example in one embodiment of this invention. 本発明の一実施の形態における検索テーブルの例。The example of the search table in one embodiment of this invention. 本発明の一実施の形態におけるテーブルの処理分割の単位を説明するための図。The figure for demonstrating the unit of the process division of the table in one embodiment of this invention. 本発明の一実施の形態におけるパケット処理の分割の例。The example of the division | segmentation of the packet processing in one embodiment of this invention.

以下、図面と共に本発明の実施の形態を説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

まず、本発明の概要を説明する。   First, the outline of the present invention will be described.

図5は、本発明の一実施の形態における処理概要を示す。   FIG. 5 shows an outline of processing in one embodiment of the present invention.

本発明は、マルチテーブルの各テーブルで行うフローの検索処理及びパケット処理の時間及び、メモリ使用量を取得、または、推定し、各CPUに均等に負荷が分散されるようフローの検索及びパケット処理を分割し、各コアに割り当てる。メモリ使用量を取得することで、テーブル分割の際に、フローの検索及び処理がCPUのキャッシュメモリ内に収まると高速に動作可能であるため、メモリ使用量を処理時間計算の手掛かりとする。これにより、CPUキャッシュを有効活用した検索及び処理を実現できる。   The present invention acquires or estimates the flow search processing and packet processing time and memory usage performed in each table of the multi-table, and performs flow search and packet processing so that the load is evenly distributed to each CPU. Is assigned to each core. By acquiring the memory usage amount, when the table search is performed, the flow search and processing can be performed at a high speed when it fits in the cache memory of the CPU. As a result, search and processing using the CPU cache effectively can be realized.

各CPUに均等に負荷を分散することによって図6に示すように各コアのアイドル時間が削減され、単位時間あたりに処理可能なパケットの量も増加する。処理時間を完全に均等に割ることは難しいため、従来の単純なテーブル単位での処理割り当てよりも、本発明により処理を割り当てた場合、負荷を分散できたと判断する。勿論、可能な限り均等に近づけることが望ましい。   By evenly distributing the load to each CPU, the idle time of each core is reduced as shown in FIG. 6, and the amount of packets that can be processed per unit time also increases. Since it is difficult to divide the processing time completely evenly, it is determined that the load can be distributed when the processing is allocated according to the present invention rather than the conventional simple processing allocation in units of tables. Of course, it is desirable to make them as close to each other as possible.

例えば、図4、図6の例における各テーブルの処理時間を以下の通りとする。   For example, the processing time of each table in the examples of FIGS. 4 and 6 is as follows.

table 0 28
table 1 10
table 2 10
table 3 10
table 4 14
table 5 14
図4、図6では、3つのコアで処理しているが、x個のパケットを処理する際、xが十分大きければ((x+2)/x=1と考えても差し支えない程度に大きい)一個あたりのパケット処理時間tは以下の通りとなる。ここで、T(corex)tとはコアxにおけるパケットの処理時間であり、T(tablei)はtalbeiにおける処理時間を示す。
table 0 28
table 1 10
table 2 10
table 3 10
table 4 14
table 5 14
In FIG. 4 and FIG. 6, processing is performed by three cores. However, when x packets are processed, if x is sufficiently large ((x + 2) / x = 1 can be considered as large) ) The packet processing time t per packet is as follows. Here, T (core x ) t is the packet processing time in core x, and T (table i ) is the processing time in talbe i .

従来技術である図4の単純な並列化時の処理時間は以下通りである。   The processing time at the time of the simple parallelization of FIG. 4 which is the prior art is as follows.

T(corea)=T(table0)+T(table1)=38
T(coreb)=T(table2)+T(table3)=20
T(corec)=T(table4)+T(table5)=28
T=max(T(corea),T(coreb),T(corec))×(x+2)/x
xは十分大きいので、
t=38
となる。
T (core a ) = T (table 0 ) + T (table 1 ) = 38
T (core b ) = T (table 2 ) + T (table 3 ) = 20
T (core c ) = T (table 4 ) + T (table 5 ) = 28
T = max (T (core a ), T (core b ), T (core c )) × (x + 2) / x
x is big enough so
t = 38
It becomes.

本発明の図6の均等な割り当て時の各コアの処理時間は以下の通りである。   The processing time of each core at the time of the equal allocation in FIG. 6 of the present invention is as follows.

T(corea)=T(table0)=28
T(coreb)=T(table1)+T(table2) +T(table)=30
T(corec)=T(table4)+T(table5)=28
T=max(T(corea),T(coreb),T(corec))×(x+2)/x
xは十分大きいので、
t=30
となる。
T (core a ) = T (table 0 ) = 28
T (core b ) = T (table 1 ) + T (table 2 ) + T (table 3 ) = 30
T (core c ) = T (table 4 ) + T (table 5 ) = 28
T = max (T (core a ), T (core b ), T (core c )) × (x + 2) / x
x is big enough so
t = 30
It becomes.

上記の例では、単純な並列化時(図4)よりも各コアの処理時間が均等になるよう分割した方が約1.27倍高速に処理できることがわかる。   In the above example, it can be seen that the processing can be performed approximately 1.27 times faster when the processing time of each core is equalized than when simple parallel processing (FIG. 4).

以下に、本発明の処理を詳細に説明する。   Hereinafter, the processing of the present invention will be described in detail.

図7は、本発明の一実施の形態におけるシステム構成例を示す。   FIG. 7 shows a system configuration example according to an embodiment of the present invention.

同図に示すシステムは、フロールール入力部10、検索テーブル管理部20、検索テーブル30、フロー検索・パケット処理部40、CPU割当装置100を有する。   The system shown in FIG. 1 includes a flow rule input unit 10, a search table management unit 20, a search table 30, a flow search / packet processing unit 40, and a CPU allocation device 100.

検索テーブル管理部20は、フロールール入力部10から取得したフロールールに基づいて検索テーブル30を生成する。図8に検索テーブル30の例を示す。同図に示す各値は、"値"、"値/bitmask"、"*"のいずれかであり、"*"はDon't careを表す。なお、他のヘッダフィールドも検索で使用でき、ヘッダ情報だけに限定されない(例えば、ペイロードの一部など)。   The search table management unit 20 generates the search table 30 based on the flow rule acquired from the flow rule input unit 10. FIG. 8 shows an example of the search table 30. Each value shown in the figure is one of “value”, “value / bitmask”, and “*”, and “*” represents Don't care. Other header fields can also be used in the search, and are not limited to header information (for example, part of the payload).

CPU割当装置100は、処理コア管理部110と処理コア制御部120を有する。   The CPU allocation device 100 includes a processing core management unit 110 and a processing core control unit 120.

CPU割当装置100は、フロールール入力部10から入力されたフロールールより検索テーブル管理部20から、作成された検索テーブル30の各テーブルが使用するメモリ及び各テーブルの各エントリを検索するために必要な予想検索時間、パケット処理を行う予想パケット処理時間等の検索テーブル30の情報を取得し、その情報を用いてフロー検索・パケット処理部40におけるコアの処理割り当てを行う。   The CPU allocation device 100 is necessary for searching the memory used by each table of the created search table 30 and each entry of each table from the search table management unit 20 based on the flow rule input from the flow rule input unit 10. The information of the search table 30 such as the expected search time and the expected packet processing time for performing packet processing is acquired, and the processing allocation of the core in the flow search / packet processing unit 40 is performed using the information.

処理コア管理部110は、検索テーブル管理部20より、各テーブルが使用する使用メモリ及び各テーブルの各エントリを検索するために必要な予想検索時間等の、検索テーブル30の情報を取得し、フロー検索とパケット処理を行う各コアでどのテーブルのどの処理を行うかを決定し、これを処理コア制御部120に対して、これらの情報をプログラム中の関数の引数などとして伝える。   The processing core management unit 110 acquires information on the search table 30 such as the memory used by each table and the expected search time required to search each entry of each table from the search table management unit 20, and the flow Which table and which process is to be performed in each core that performs search and packet processing is determined, and this information is transmitted to the processing core control unit 120 as an argument of a function in the program.

処理コア制御部120は、処理コア管理部110から取得した情報に従い、フロー検索・パケット処理部40に対し、各コアで行うフロー検索及びパケット処理の処理内容を出力する。   The processing core control unit 120 outputs the processing contents of the flow search and packet processing performed by each core to the flow search / packet processing unit 40 according to the information acquired from the processing core management unit 110.

フロー検索・パケット処理部40は、これらの内容に従い、各コアで行う処理を変更する。   The flow search / packet processing unit 40 changes processing performed in each core according to these contents.

以下に、処理コア管理部110と処理コア制御部120の処理について詳述する。   Hereinafter, the processing of the processing core management unit 110 and the processing core control unit 120 will be described in detail.

処理コア管理部110は、取得した検索テーブル30の内容からパケット処理を行う各コアでどの処理を行うかを決定し、処理コア制御部120にフロー検索・パケット処理及びコアの割当リストとして出力する。処理コア決定の動作については後述する。   The processing core management unit 110 determines which processing is to be performed in each core that performs packet processing from the contents of the acquired search table 30, and outputs the processing core control unit 120 as a flow search / packet processing and core allocation list. . The processing core determination operation will be described later.

処理コア制御部120は、処理コア管理部110で決定され、入力されたフロー検索・パケット処理及びコアの割当リストに従い、フロー検索・パケット処理部40に対し、各コアで行う処理内容を変更し、制御する。   The processing core control unit 120 changes the content of processing performed in each core to the flow search / packet processing unit 40 according to the flow search / packet processing and core allocation list determined and input by the processing core management unit 110. ,Control.

以下、処理コア管理部110の処理コア決定の動作を説明する。   Hereinafter, the processing core determination operation of the processing core management unit 110 will be described.

処理コア管理部110では、検索テーブル30の処理内容を分割し、分割した結果を基に各コアへ割り当てる処理を決定する。検索テーブルの処理内容の分割は以下の2つの方法がある。   The processing core management unit 110 divides the processing contents of the search table 30 and determines a process to be assigned to each core based on the divided result. There are the following two methods for dividing the processing contents of the search table.

(a)「フロー検索処理」と「パケット処理」の分割;
(b)検索テーブルの分割;
上記の(a)、(b)を組み合わせ、フロー検索またはパケット処理に時間がかかるエントリとそうでないエントリに分割し、パケット処理に時間がかかるエントリにはフロー検索とパケット処理で別のコアを割り当てる方法がある(図9(a))。ここで、時間がかかるエントリとは、パケットヘッダの複数の書き換えやプロトコル処理、トンネリングプロトコルによるヘッダの付け外しなどが、そのエントリにマッチした際に行われるパケット処理として記述されたエントリである。検索テーブル30中に前述のようなパケット処理が記述されたエントリは時間がかかるエントリとして判断できる。また、図9(b)のように、フロー検索処理は「core a」に、パケット処理は「core b」に振り分ける方法がある。
(a) Division of “flow search processing” and “packet processing”;
(b) Search table division;
Combine (a) and (b) above, and divide into entries that take time for flow search or packet processing and entries that do not, and assign different cores to entries that take time for packet processing by flow search and packet processing There is a method (FIG. 9A). Here, the time-consuming entry is an entry described as packet processing that is performed when a plurality of packet header rewrites, protocol processing, header attachment / detachment by a tunneling protocol, and the like match the entry. An entry in which packet processing as described above is described in the search table 30 can be determined as an entry that takes time. Further, as shown in FIG. 9B, there is a method of distributing the flow search process to “core a” and the packet process to “core b”.

また、フロー検索を行い、処理に時間がかかるエントリにマッチした場合には、フロー検索は自コア(検索を行ったコア)で、別のコアでパケット処理を行い、処理に時間がかからないエントリの場合にはフロー検索に加えて自コアでパケット処理を行う割当方法もある(図10)。ここで、「処理に時間がかかる」とは、n(n≧1)個のパケットヘッダの書き換え処理、プロトコル処理、トンネリングプロトコルのヘッダの変更、複雑な一致条件(比較するbit数が高い、bitmaskが指定されている)である場合等を指す。図10の例では、「core a」にフロー検索処理と軽いパケット処理が指定された「table 0」がある場合、フロー検索処理と軽いパケット処理(table 0)は「core a」で行い、処理時間がかかる重いパケット処理(talbe 0-b)は「core c」で行うように振り分ける。   Also, if a flow search is performed and an entry that takes a long time to process is matched, the flow search is performed by the own core (the core that performed the search), and another core performs packet processing. In some cases, in addition to the flow search, there is an allocation method in which packet processing is performed by the own core (FIG. 10). Here, “processing takes time” means rewrite processing of n (n ≧ 1) packet headers, protocol processing, change of tunneling protocol header, complicated matching condition (high bit number to be compared, bitmask Is specified). In the example of FIG. 10, when “core a” includes “table 0” in which flow search processing and light packet processing are specified, flow search processing and light packet processing (table 0) are performed by “core a”. The heavy packet processing (talbe 0-b), which takes time, is distributed to be performed by “core c”.

従来の処理の分割方法は、テーブル単位でしか考慮されていなかったが、本発明の上記の2種類の処理の分割を行うことでテーブル単位からフロー検索処理、パケット処理の単位に処理の単位を小さくすることができ、より均等に処理を分散することができる。   The conventional process dividing method has been considered only in units of tables, but by dividing the above two types of processes of the present invention, the unit of processing is changed from table units to flow search processes and packet processing units. It can be made smaller, and the processing can be distributed more evenly.

さらに、テーブル毎、エントリ毎に処理を行う頻度は異なるため、これらも考慮して分割した各処理に重み付けを行い、その結果を元に各コアの処理割り当てを決定することも可能である。   Furthermore, since the frequency of processing is different for each table and for each entry, it is possible to weight each processing divided in consideration of these, and to determine processing allocation for each core based on the result.

例えば、各テーブルのフロー検索処理やパケット処理の処理時間は以下の基準で決定できる。   For example, the flow search processing and packet processing time for each table can be determined according to the following criteria.

(a)エントリの中で最も処理の時間がかかるエントリの処理時間;
(b)各エントリの各処理の処理時間の平均;
(c)各エントリの処理時間に、到達パケットが各エントリにヒットする確率を掛けたもの;
上記の重み付けの重みは、例えば、(c)の到達パケットがエントリにヒットする確率のことである。到達パケットがエントリにヒットする確率は、あらかじめ何らかの方法で予想しておくか、ある程度運用し、その際に取得し、エントリのヒット数を取得し、確率を計算することで求めることができる。
(a) The processing time of the entry that takes the longest processing time among the entries;
(b) Average processing time for each process of each entry;
(c) The processing time of each entry multiplied by the probability that the arrival packet hits each entry;
The weighting weight is, for example, the probability that the arrival packet (c) hits the entry. The probability that an arrival packet hits an entry can be estimated in advance by some method or operated to some extent, acquired at that time, the number of hits of the entry is acquired, and the probability is calculated.

処理コア制御部120は、上記のように、処理コア管理部110で割り当てられた処理を行うテーブルをコアに設定するようフロー検索・パケット処理部40を制御する。   As described above, the processing core control unit 120 controls the flow search / packet processing unit 40 to set the table for performing the processing assigned by the processing core management unit 110 to the core.

なお、図7に示すCPU割当装置100の構成要素の動作をプログラムとして構築し、CPU割当装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。   Note that the operation of the components of the CPU allocation device 100 shown in FIG. 7 can be constructed as a program and installed in a computer used as the CPU allocation device for execution, or distributed via a network.

本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。   The present invention is not limited to the above-described embodiments, and various modifications and applications are possible within the scope of the claims.

10 フロールール入力部
20 検索テーブル管理部
30 検索テーブル
40 フロー検索・パケット処理部
100 CPU割当装置
110 処理コア管理部
120 処理コア制御部
DESCRIPTION OF SYMBOLS 10 Flow rule input part 20 Search table management part 30 Search table 40 Flow search and packet processing part 100 CPU allocation apparatus 110 Processing core management part 120 Processing core control part

Claims (7)

マルチコアCPUを有するフロースイッチの各コアに処理を割り当てるCPU割当装置であって、
各テーブルが使用する使用メモリまたは該テーブルの各エントリを検索するために必要な予想検索時間またはパケット処理を行う予想パケット処理時間を含む検索テーブルの情報のうちのいずれか少なくとも一つを取得し、該検索テーブルの情報に基づいて、各コアの処理時間が同じになるようにテーブルの検索とパケット処理のうちの少なくともいずれかを各コアに割り当て、割当結果を出力する処理コア管理手段と、
前記割当結果に基づいて、前記コアで行う処理内容の変更及び制御を行う処理コア制御手段と、
を有することを特徴とするCPU割当装置。
A CPU allocation device that allocates processing to each core of a flow switch having a multi-core CPU,
Obtaining at least one of used memory used by each table or information of a search table including an expected search time necessary for searching each entry of the table or an expected packet processing time for performing packet processing; A processing core management means for allocating at least one of table search and packet processing to each core based on the information of the search table so that the processing time of each core is the same, and outputting an allocation result;
Based on the allocation result, processing core control means for changing and controlling the processing content performed in the core;
A CPU allocation device comprising:
前記処理コア管理手段は、
前記検索テーブルの処理内容を、前記検索テーブルの情報に基づいて、フロー検索処理とパケット処理のいずれか、または、フロー検索処理とパケット処理の組み合わせに分割し、分割された結果に基づいて各コアに割り当てる処理を決定する割当手段を含む
請求項1記載のCPU割当装置。
The processing core management means includes:
The processing content of the search table is divided into either flow search processing or packet processing, or a combination of flow search processing and packet processing based on the information of the search table, and each core based on the divided result The CPU allocation apparatus according to claim 1, further comprising an allocation unit that determines a process to be allocated to the CPU.
前記割当手段は、
フロー検索処理またはパケット処理に時間がかかるエントリと時間がかからないエントリに分割する手段と、
前記フロー検索処理またはパケット処理に時間がかからないエントリは、元のコアaで処理を行うように割り当て、前記時間がかかるエントリは、該コアaとは異なるコアbで処理を行うように割り当てる手段と、
を含む請求項2記載のCPU割当装置。
The assigning means includes
Means for dividing the flow search processing or packet processing into an entry that takes time and an entry that does not take time,
Means for allocating an entry that does not take a long time for the flow search process or the packet process so that the process is performed by the original core a, and the entry that takes a long time is allocated so that the process is performed by a core b different from the core a ,
The CPU allocation device according to claim 2, comprising:
前記割当手段は、
テーブル毎、エントリ毎の処理を行う頻度に応じて、該処理に対して重み付けを行う手段と、
重みに基づいて、前記検索テーブルの処理を分割し、分割した該処理を各コアに割り当てる手段と、
を含む請求項2記載のCPU割当装置。
The assigning means includes
Means for weighting the process according to the frequency of performing the process for each table and for each entry;
Means for dividing the processing of the search table based on the weight and assigning the divided processing to each core;
The CPU allocation device according to claim 2, comprising:
前記重みは、
エントリの中で最も処理の時間がかかるエントリの処理時間、
各エントリの各処理の処理時間の平均、
各エントリの処理時間に、到達パケットが各エントリにヒットする確率を乗算したもの
のいずれかを用いる
請求項4記載のCPU割当装置。
The weight is
The processing time of the entry that takes the longest to process,
The average processing time for each process for each entry,
5. The CPU allocation device according to claim 4, wherein one of processing times of each entry is multiplied by a probability that the arrival packet hits each entry.
マルチコアCPUを有するフロースイッチの各コアに処理を行うテーブルを割り当てる装置におけるCPU割当方法であって、
各テーブルが使用する使用メモリまたは該テーブルの各エントリを検索するために必要な予想検索時間またはパケット処理を行う予想パケット処理時間を含む検索テーブルの情報のうちのいずれか少なくとも一つを取得し、該検索テーブルの情報に基づいて、各コアの処理時間が同じになるようにテーブルの検索とパケット処理のうちの少なくともいずれかを各コアに割り当て、割当結果を出力する処理コア管理ステップと、
前記割当結果に基づいて、前記コアで行う処理内容の変更及び制御を行う処理コア制御ステップと、
を行うことを特徴とするCPU割当方法。
A CPU allocation method in an apparatus for allocating a table for processing to each core of a flow switch having a multi-core CPU,
Obtaining at least one of used memory used by each table or information of a search table including an expected search time necessary for searching each entry of the table or an expected packet processing time for performing packet processing; A processing core management step of assigning at least one of table search and packet processing to each core based on the information of the search table so that the processing time of each core is the same, and outputting an allocation result;
Based on the allocation result, a processing core control step for changing and controlling the processing content performed in the core;
CPU allocation method characterized by performing.
コンピュータを、
請求項1ないし5のいずれか1項に記載のCPU割当装置の各手段として機能させるためのCPU割当プログラム。
Computer
6. A CPU allocation program for causing a CPU allocation device according to claim 1 to function as each unit.
JP2014115950A 2014-06-04 2014-06-04 CPU allocation apparatus and method, and program Active JP5833186B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014115950A JP5833186B1 (en) 2014-06-04 2014-06-04 CPU allocation apparatus and method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014115950A JP5833186B1 (en) 2014-06-04 2014-06-04 CPU allocation apparatus and method, and program

Publications (2)

Publication Number Publication Date
JP5833186B1 JP5833186B1 (en) 2015-12-16
JP2015231110A true JP2015231110A (en) 2015-12-21

Family

ID=54874327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014115950A Active JP5833186B1 (en) 2014-06-04 2014-06-04 CPU allocation apparatus and method, and program

Country Status (1)

Country Link
JP (1) JP5833186B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612392A (en) * 1992-03-19 1994-01-21 Fujitsu Ltd Method and system for decentralizing computer resource
JP2012100012A (en) * 2010-11-01 2012-05-24 Fujitsu Ltd Analysis processing device, analysis processing program, and analysis processing method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612392A (en) * 1992-03-19 1994-01-21 Fujitsu Ltd Method and system for decentralizing computer resource
JP2012100012A (en) * 2010-11-01 2012-05-24 Fujitsu Ltd Analysis processing device, analysis processing program, and analysis processing method

Also Published As

Publication number Publication date
JP5833186B1 (en) 2015-12-16

Similar Documents

Publication Publication Date Title
US11625154B2 (en) Stage upgrade of image versions on devices in a cluster
US11422839B2 (en) Network policy implementation with multiple interfaces
US10715585B2 (en) Packet processor in virtual filtering platform
US20170237678A1 (en) Work conserving schedular based on ranking
US8230110B2 (en) Work-conserving packet scheduling in network devices
US10742722B2 (en) Server load balancing
US9112794B2 (en) Dynamic multipath forwarding in software defined data center networks
US9634938B2 (en) Adaptive scheduling of data flows in data center networks for efficient resource utilization
US8913613B2 (en) Method and system for classification and management of inter-blade network traffic in a blade server
US9489225B2 (en) Allocating resources for multi-phase, distributed computing jobs
US8634415B2 (en) Method and system for routing network traffic for a blade server
CN110417924B (en) Message processing method in distributed equipment and distributed equipment
US10708272B1 (en) Optimized hash-based ACL lookup offload
WO2017025021A1 (en) Method and device for processing flow table
US10313154B2 (en) Packet forwarding
CN106534394B (en) Apparatus, system, and method for managing ports
US20150180793A1 (en) Method and an apparatus for virtualization of a quality-of-service
US11252070B2 (en) Adaptive polling in software-defined networking (SDN) environments
JP6085577B2 (en) Retrieval tree generation / retrieval apparatus, method, and program
RU2675212C1 (en) Adaptive load balancing during package processing
Huang et al. Online unicasting and multicasting in software-defined networks
JP5833186B1 (en) CPU allocation apparatus and method, and program
JP6287443B2 (en) Control device and table creation method thereof
CN116915709B (en) Load balancing method and device, electronic equipment and storage medium
US20230336480A1 (en) Efficient Handling of Fragmented Packets in Multi-Node All-Active Clusters

Legal Events

Date Code Title Description
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: 20151027

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151028

R150 Certificate of patent or registration of utility model

Ref document number: 5833186

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150