JP7709645B2 - サーバ内データ転送装置、サーバ内データ転送方法およびプログラム - Google Patents
サーバ内データ転送装置、サーバ内データ転送方法およびプログラムInfo
- Publication number
- JP7709645B2 JP7709645B2 JP2023565786A JP2023565786A JP7709645B2 JP 7709645 B2 JP7709645 B2 JP 7709645B2 JP 2023565786 A JP2023565786 A JP 2023565786A JP 2023565786 A JP2023565786 A JP 2023565786A JP 7709645 B2 JP7709645 B2 JP 7709645B2
- Authority
- JP
- Japan
- Prior art keywords
- application
- queue
- physical
- virtual
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/542—Intercept
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
[DPDKシステム構成]
図23は、アクセラレータ11を備えるHW10の制御を行うDPDKシステムの構成を示す図である。
DPDKシステムは、HW10、パケット処理API(Application Programming Interface)14、アプリケーション(APL)20を有する。
DPDKは、APL20が動作するuser spaceでパケット処理機能を実現し、user spaceからpollingモデルでパケット到着時に即時刈取りを行うことで、パケット転送遅延を小さくすることを可能にする。すなわち、DPDKは、polling(CPUでキューをbusy poll)によりパケットの刈取り(バッファに溜まっているパケットの中身を参照して、そのパケットの処理を、次に行う処理を考慮してバッファから該当するキューのエントリを削除する)を行うため、待ち合わせがなく遅延小である。
アクセラレータ11は、CPUからの入力をもとに、特定の演算を高速に行う計算ユニットハードウェアである。アクセラレータ11は、具体的には、GPU(Graphics Processing Unit)やFPGA(Field Programmable Gate Array)等のPLD(Programmable Logic Device)である。図23では、アクセラレータ11は、複数のIPコア(Intellectual Property Core)12、データを先入れ先出しのリスト構造で保持するRxキュー(queue:待ち行列)およびTxキューからなる物理キュー13を備える。IPコア12は、FPGA、IC、LSIなどの半導体を構成する再利用可能な回路コンポーネントの設計情報であり、デバイスコア(Coreプロセッサ)と呼ぶこともある。
NFV(Network Functions Virtualization)やSDN(Software Defined Network)を構成するデータセンタなど、大規模なサーバクラスタにおいて、上記のようなアクセラレータ11を適用するケースが想定される。
アプリスレッド(PollingThread)15およびパケット処理API14は、ユーザ空間(user space)30上に配置される。
ポーリングによる受信処理では、転送すべきデータがあるときに該当データのポインタをRing Buffer16に格納する(図24の符号a参照)。
アクセラレータ11からの遅延を抑制するために、アプリスレッド15はRing Buffer16をポーリングし、転送すべきデータがあるときに該当データのポインタを取得し受信処理を行う(図24の符号b参照)。その際、アプリスレッド15はポーリングによりCPU使用率が100%となり、消費電力が増大する。
DPDKは、アプリスレッド15がパケット到着をポーリングするため遅延は少ないが消費電力が増大する。図23に示すように、複数のアプリケーションAPL1,APL2がある場合、消費電力の増大の影響は甚大である。
DPDKでは、kernel threadはpolling(CPUでキューをbusy poll)を行うために、CPUコアを専有する。このため、例えば間欠的なパケット受信であっても、DPDKでは、パケット到着有無に関わらず、CPUを常に100%使用するため、消費電力が大きくなる課題がある。
KBPについても、上記DPDKと同様の課題がある。すなわち、KBPは、kernel内でpollingモデルによりパケット到着を常時監視することで、softIRQを抑止し、低遅延なパケット処理を実現することができる。しかし、パケット到着を常時監視するkernel threadがCPUコアを専有し、常にCPUタイムを使用するため、消費電力が高くなる課題がある。
(実施形態)
[全体構成]
図1は、本発明の実施形態に係るサーバ内データ転送システムの概略構成図である。図23と同一構成部分には、同一符号を付している。
図1に示すように、サーバ内データ転送システム1000は、HW10、パケット処理API14、コントローラ(CTRL)(サーバ内データ転送装置)100、アプリケーション(APL)20を有する。
コントローラ100は、アプリスレッド15と複数のアクセラレータ11のIPコア12の間の紐付けを管理し、アプリケーション20の代わりにアクセラレータ11との通信を行う。
いままでは、100%起きてポーリング処理していたものを、不要な時は、パケット処理を止める(ポーリングを止める;Sleepさせる)。ポーリング制御部120は、パケット到着時だけアプリスレッド15を起床させる)。
デバイス擬似部130は、デバイスの物理キューに対応し、当該物理キューの代わりに仮想キュー200を用いて、アプリスレッド15にパケット処理を行わせることで、アプリケーション20に対してデバイスを接続する。
仮想キュー200は、物理キュー13の代わりにアプリスレッド15に見せているキューである。
仮想キュー200によって、アプリスレッド15からパケットが来たときに、そのパケットをアクセラレータ11まで届ける必要があるが、プロキシ部140は、仮想キュー200と物理キュー13の間を接続する。
図2は、コントローラ100を備えるサーバ内データ転送システム1000のブロック構成図である。図1と同一構成部分には、同一符号を付している。
サーバ内データ転送システム1000は、ユーザ空間30上に配置されるアプリスレッド15と、複数の物理キュー13およびIPコア12を有するアクセラレータ11と、コントローラ100と、を備える。
統合制御部150は、各部を統合制御する。統合制御部150は、外部コントローラIF180の要求に対しスケールイン判断を行う(後記図19参照)。また、統合制御部150は、プロキシ部140に「論物マッピングテーブル更新要求」を行う(後記図19参照)。統合制御部150は、デバイス制御部170に、スケールイン要求を行う(後記図19)。
デバイス制御部170は、統合制御部150からの指示に従ってアクセラレータ11を制御する。
外部コントローラIF180は、外部コントローラ50からの指示を受ける。
[アプリスレッドのSleep制御動作]
図3は、アプリスレッドのSleep制御動作を説明する図である。図1および図24と同一構成部分には、同一符号を付している。
アプリスレッド15、パケット処理API14、およびコントローラ100は、ユーザ空間30上に配置される。
複数のアプリケーションAPL1,APL2について、それぞれ複数のアプリスレッド15が存在する。
コントローラ100のポーリング制御部120(図1参照)は、パケット到着時にアプリスレッド15を起床させてパケット処理を促し、パケットがない間はSleepさせる。
パケット到着監視部110(図1参照)は、ポーリングによる受信処理では、転送すべきデータのポインタを物理キュー41を用いて、Ring Buffer17(Ring Buffer<1>)に格納する(図3の符号a参照)。
コントローラ100がイベント通知等の方法でアプリスレッド15にパケット到着を通知する。
アプリスレッド15は、Ring Buffer17にアクセラレータ実行要求を通知し(S1)、Ring Buffer17は、この実行要求をRing Buffer18に通知する(S2)。Ring Buffer18は、この実行要求をアクセラレータ11に通知する(S3)。
図5は、アクセラレータとの通信プロキシを説明する図である。図1と同一構成部分には、同一符号を付している。
アプリケーション20にとってアクセラレータ11と同様に扱えるように、コントローラ100が既存と同等のインターフェイスを持った擬似的なデバイスとしてアプリケーション20との通信を行う。その際、アプリケーション20に対して物理キュー13の代わりに仮想キュー200を提供する。
デバイス擬似部130(図1、図2)は、アプリケーションに対して既存と同等のインターフェイスで接続し、デバイスの物理キュー13の代わりに仮想キュー200を提供する。
スレッドID「1001…」ごとに対応する物理キュー13を割り当てる。例えば、図5に示すアクセラレータ11のIPコア12の左から順に、物理キュー(0~5)がある場合、スレッドID「1001」は、図5に示すアクセラレータ11のIPコア12の一番左の物理キュー(0)に割り当てられる。スレッドIDに対して複数の物理キューを割り当てることも可能である。例えば、スレッドID「1003」は、図5に示すアクセラレータ11のIPコア12の物理キュー(2,3)に割り当てられる。この例は、仮想キューから見たときの接続が物理キュー(2,3)に分岐していることで示される。逆に、スレッドID「2001」と「2002」は、いずれも物理キュー(4)に割り当てられる。この例は、接続が物理キュー(4)に集約していることで示される。
なお、従来では、スレッドIDと物理キューは1対1に対応しており、上記分岐・集約はない。
仮想キューテーブル220は、スレッドIDがどの仮想キューに対応しているかを記述する。
スレッドIDと仮想キューは、1対1で対応している。例えば、スレッドID「1001」は、仮想キュー(0)に対応し、スレッドID「1002」は、仮想キュー(1)に対応している。なお、Proc_type(プロセスタイプ)は、アクセラレータにどのような種別の処理をさせたいかを規定する。例えば、Proc_type「1」は、種別1の処理に対応するIPコア12に接続可能であり、Proc_type「2」は、種別2の処理に対応するIPコア12に接続可能である、などである。APLは、スレッドが複数のアプリケーションに対応しているとき、そのアプリケーション種別を記述する。「状態」は、スレッドがアクティブ(Used)か非アクティブ(空欄)かを記述する。
論物マッピングテーブル230は、仮想キュー(0~4)に対して物理キュー(0~3)を割り当てる。例えば、仮想キュー(0)に対して物理キュー0を割り当て、仮想キュー(1)に対して物理キュー1を割り当てる。なお、複数の物理キュー(物理キュー2,3)を仮想キュー(3)に割り当てることも可能である。
IPコアIDは、実際に処理を行うコアのIDであり、IPコアIDごとに、物理キュー、Proc_type、デバイスID、「状態」が対応付けられる。Proc_typeは、同じ種別の処理でないと繋げないことを記述している。デバイスIDは、アクセラレータで処理されるアクセラレータの種別を示しており、例えばデバイスID「1」であればアクセラレータ1が対応していることを記述する。
<パケット到着情報を用いた起床判断>
図10は、ポーリング制御において、パケット到着情報を用いた起床判断処理を示すフローチャートである。
ステップS11でポーリング制御部120は、パケット到着監視部110がパケット到着を確認したか否かを判別する。パケット到着を確認できない場合(S11:No)、ステップS11に戻ってパケット到着を待つ。
図11は、ポーリング制御において、タイミング情報(統計)を用いた起床判断処理を示すフローチャートである。
ステップS21でポーリング制御部120は、仮想キュー200を選択する。
ステップS22でポーリング制御部120は、仮想キュー200のパケットタイマ250(図12参照)で最大のものを確認する。
パケットIDごとに仮想キューおよびタイマを設定する。
仮想キュー200ごとにタイマを設定しておくことで、パケット到着時の起床のタイミングをあらかじめ設定しておくことができ、Sleep制御の実効を図ることができる。
仮想キューごとに刈り取りをするか否かの閾値を設定する。例えば、仮想キュー(0)が、閾値「200」になるまでは刈り取りを行わない、ことを設定する。
図14は、パケット送信の制御シーケンス図である。本パケット送信は、<ポーリングパターン>と<ポーリングなしパターン>とがある。なお、このポーリングはパケット到着監視部110と仮想キュー200間のポーリングである。
アプリスレッド15は、仮想キュー200にパケットのポインタ情報を送信する(S101)。
一方、パケット到着監視部110は、パケット到着をポーリングにより確認する(S151)。
仮想キュー200は、パケット到着監視部110に「パケット到着あり」および「パケットのポインタ情報」の通知を行う(S152)。
プロキシ部140は、物理キュー13に「パケットのポインタ情報」を送信する(S107)。
上記<ポーリングパターン>と同一手順には同一ステップ番号を付している。
アプリスレッド15は、仮想キュー200にパケットのポインタ情報を送信するとともに(S101)、パケット到着監視部110に「パケット到着あり」の通知を行う(S102)。
アプリスレッド15からの「パケット到着あり」の通知を受けて、パケット到着監視部110は、仮想キュー200に対してパケット到着確認を行う(S103)。仮想キュー200は、パケット到着監視部110に「パケット到着あり」および「パケットのポインタ情報」を送信する(S104)。
プロキシ部140は、物理キュー13に「パケットのポインタ情報」を送信する(S107)。
図15は、パケット受信・ポーリングの制御シーケンス図である。
パケット到着監視部110は、物理キュー13に対してパケット到着をポーリングにより確認する(S111)。物理キュー13は、パケット到着監視部110に「パケット到着あり」および「パケットのポインタ情報」を送信する(S112)。
プロキシ部140は、仮想キュー200に「パケットのポインタ情報」を送信するとともに(S115)、パケット到着監視部110に「対応する仮想キュー情報」を送信する(S116)。
ポーリング制御部120は、パケット到着監視部110からの「パケット到着あり」を受けて、アプリスレッド15に「イベント通知」を行う(S118)。
アプリスレッド15は、仮想キュー200に「パケットのポインタ情報」を要求する(S120)。仮想キュー200は、この要求を受けて、仮想キュー200に「パケットのポインタ情報」を送信する(S121)。
図16は、IPコアスケールインの制御シーケンス図である。
外部コントローラIF180は、統合制御部150に「スケールイン判断要求」を行う(S131)。
統合制御部150は、スケールイン判断を行う(S132)。
統合制御部150は、プロキシ部140に「論物マッピングテーブル更新要求」を行う(S133)。プロキシ部140は、論物マッピングテーブル230(図8参照)を更新し(図18の論物マッピングテーブル更新参照)、統合制御部150にその旨を通知する(S135)。
統合制御部150は、デバイス制御部170に「IPコア#2スケールイン要求」を行う(S136)。デバイス制御部170は、IPコア#2の電源停止操作を行うとともに(S137)、統合制御部150に「IPコア#2スケールイン完了」を通知する(S138)。
図16のIPコアスケールイン処理により、IPコア#2はスケールインされる(図17の破線矢印i参照)。
ステップS31でプロキシ部140は、スケールインする物理キューに対応する仮想キュー200があるか否かを判別する。対応する仮想キュー200がない場合(S31:No)、本フローによる論物マッピングテーブル更新処理を正常終了する。
図19は、スレッドスケールインの制御シーケンス図である。
外部コントローラIF180は、統合制御部150に「スケールイン判断要求」を行う(S141)。
統合制御部150は、スケールイン判断を行う(S142)。
統合制御部150は、プロキシ部140に「論物マッピングテーブル更新要求」を行う(S143)。プロキシ部140は、論物マッピングテーブル230(図8参照)を更新し(S144)(図21の論物マッピングテーブル更新参照)、統合制御部150にその旨を通知する(S145)。
統合制御部150は、デバイス制御部170に「スレッド#2スケールイン要求」を行う(S146)。デバイス制御部170は、スレッド#2のポーリング停止操作を行うとともに(S147)、統合制御部150に「スレッド#2スケールイン完了」を通知する(S148)。
図19のスレッドスケールイン処理により、図20に示すスレッド#2はスケールインされる(図20の破線矢印j参照)。
ステップS41でプロキシ部140は、スケールインする仮想キューに対応する物理キュー13があるか否かを判別する。対応する物理キュー13がない場合(S41:No)、本フローによる論物マッピングテーブル更新処理を正常終了する。
上記実施形態に係るコントローラ(サーバ内データ転送装置)100は、例えば図22に示すような構成のコンピュータ900によって実現される。
図22は、コントローラ100の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。
コンピュータ900は、CPU901、RAM902、ROM903、HDD904、アクセラレータ905、入出力インターフェイス(I/F)906、メディアインターフェイス(I/F)907、および通信インターフェイス(I/F:Interface)908およびを有する。アクセラレータ905は、図1、図3、図5のアクセラレータ11に対応する。
ROM903は、コンピュータ900の起動時にCPU901によって実行されるブートプログラムや、コンピュータ900のハードウェアに依存するプログラム等を格納する。
以上説明したように、本実施形態に係るサーバ内データ転送装置は、アクセラレータ11を含むデバイスをアプリケーション20で使用する際、デバイスからアプリケーション20へのデータ転送を行うサーバ内データ転送装置(コントローラ100)であって、デバイスとアプリケーション20に対応するアプリスレッド15との間の通信を監視しパケット到着タイミングを計るパケット到着監視部110と、パケット到着監視部110がパケット到着を検知したパケットの到着時にアプリスレッド15を起床させてパケット処理を行わせ、パケットの到着がない間はSleepさせるポーリング制御部120と、を備える。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
11,905 アクセラレータ(デバイス)
12 IPコア(デバイスコア)
14 パケット処理API
17,18 Ring Buffer
15 アプリスレッド(ポーリングスレッド)
20 アプリケーション(APL)
100 コントローラ(サーバ内データ転送装置)
110 パケット到着監視部
120 ポーリング制御部
130 デバイス擬似部
140 プロキシ部
150 統合制御部
160 アプリ制御部
170 デバイス制御部
180 外部コントローラIF
220 仮想キューテーブル
230 論物マッピングテーブル
240 物理キューテーブル
250 パケットタイマ
260 閾値テーブル
1000 サーバ内データ転送システム
APL1,APL2 アプリケーション
Claims (7)
- アクセラレータを含むデバイスをアプリケーションで使用する際、前記デバイスから前記アプリケーションへのデータ転送を行うサーバ内データ転送装置であって、
前記デバイスと前記アプリケーションに対応するアプリスレッドとの間の通信を監視しデータ到着タイミングを計るデータ到着監視部と、
前記データ到着監視部がデータの到着を検知したデータ到着時に前記アプリスレッドを起床させてデータを受信させ、前記データの到着がない間はSleepさせるポーリング制御部と、
前記デバイスの物理キューの代わりとなる仮想キューを用いて、前記デバイスと前記アプリケーションに対応するアプリスレッドにデータ処理を行わせることで、前記アプリケーションに対して前記デバイスを接続するデバイス擬似部と、
前記仮想キューと前記物理キューの間を動的に接続変更するプロキシ部と、を備える
ことを特徴とするサーバ内データ転送装置。 - アクセラレータを含むデバイスをアプリケーションで使用する際、前記デバイスから前記アプリケーションへのデータ転送を行うサーバ内データ転送装置であって、
前記デバイスの物理キューの代わりとなる仮想キューを用いて、前記デバイスと前記アプリケーションに対応するアプリスレッドにデータ処理を行わせることで、前記アプリケーションに対して前記デバイスを接続するデバイス擬似部と、
前記仮想キューと前記物理キューの間を動的に接続変更するプロキシ部と、を備えるとともに、
前記アプリスレッドと一または複数の前記物理キューとを対応付ける対応情報と、
前記アプリスレッドがどの仮想キューに対応しているかを記述する記述情報と、
前記仮想キューに対して前記物理キューを割り当てる論物マッピング情報と、を有し、
前記プロキシ部は、
前記アプリスレッドの減少が指示された場合、前記論物マッピング情報を参照して、スケールインする前記物理キューに対応する前記仮想キューがあるか否かを判別し、対応する前記仮想キューがある場合、前記対応情報および前記記述情報をもとに、前記物理キューと接続している前記仮想キューの数を動的に減少し、前記仮想キューを使用する前記アプリスレッドを停止させる
ことを特徴とするサーバ内データ転送装置。 - アクセラレータを含むデバイスをアプリケーションで使用する際、前記デバイスから前記アプリケーションへのデータ転送を行うサーバ内データ転送装置であって、
前記デバイスの物理キューの代わりとなる仮想キューを用いて、前記デバイスと前記アプリケーションに対応するアプリスレッドにデータ処理を行わせることで、前記アプリケーションに対して前記デバイスを接続するデバイス擬似部と、
前記仮想キューと前記物理キューの間を動的に接続変更するプロキシ部と、を備えるとともに、
前記アプリスレッドと一または複数の前記物理キューとを対応付ける対応情報と、
前記アプリスレッドがどの仮想キューに対応しているかを記述する記述情報と、
前記仮想キューに対して前記物理キューを割り当てる論物マッピング情報と、を有し、
前記プロキシ部は、
前記アプリスレッドの増加が指示された場合、前記論物マッピング情報を参照して、スケールアウトする前記物理キューに対応する前記仮想キューがあるか否かを判別し、対応する前記仮想キューがある場合、前記対応情報および前記記述情報をもとに、前記物理キューと接続している前記仮想キューの数を動的に増加し、前記仮想キューを使用する前記アプリスレッドを再開させる
ことを特徴とするサーバ内データ転送装置。 - アクセラレータを含むデバイスをアプリケーションで使用する際、前記デバイスから前記アプリケーションへのデータ転送を行うサーバ内データ転送装置であって、
前記デバイスの物理キューの代わりとなる仮想キューを用いて、前記デバイスと前記アプリケーションに対応するアプリスレッドにデータ処理を行わせることで、前記アプリケーションに対して前記デバイスを接続するデバイス擬似部と、
前記仮想キューと前記物理キューの間を動的に接続変更するプロキシ部と、を備えるとともに、
前記アプリスレッドと一または複数の前記物理キューとを対応付ける対応情報と、
前記アプリスレッドがどの仮想キューに対応しているかを記述する記述情報と、
前記仮想キューに対して前記物理キューを割り当てる論物マッピング情報と、
前記デバイスのIPコアごとに、物理キュー、Proc_type、デバイスIDが対応付けられる物理キュー情報と、を有し、
前記プロキシ部は、
前記IPコアの減少が指示された場合、前記論物マッピング情報を参照して、スケールインする前記物理キューに対応する前記仮想キューがあるか否かを判別し、対応する前記仮想キューがある場合、前記対応情報、前記記述情報および前記物理キュー情報をもとに、前記仮想キューと接続している前記物理キューの数を動的に減少し、前記物理キューを使用する前記デバイスの前記IPコアを停止させる構成を有する
ことを特徴とするサーバ内データ転送装置。 - アクセラレータを含むデバイスをアプリケーションで使用する際、前記デバイスから前記アプリケーションへのデータ転送を行うサーバ内データ転送装置であって、
前記デバイスの物理キューの代わりとなる仮想キューを用いて、前記デバイスと前記アプリケーションに対応するアプリスレッドにデータ処理を行わせることで、前記アプリケーションに対して前記デバイスを接続するデバイス擬似部と、
前記仮想キューと前記物理キューの間を動的に接続変更するプロキシ部と、を備えるとともに、
前記アプリスレッドと一または複数の前記物理キューとを対応付ける対応情報と、
前記アプリスレッドがどの仮想キューに対応しているかを記述する記述情報と、
前記仮想キューに対して前記物理キューを割り当てる論物マッピング情報と、
前記デバイスのIPコアごとに、物理キュー、Proc_type、デバイスIDが対応付けられる物理キュー情報と、を有し、
前記プロキシ部は、
前記IPコアの増加が指示された場合、前記論物マッピング情報を参照して、スケールアウトする前記物理キューに対応する前記仮想キューがあるか否かを判別し、対応する前記仮想キューがある場合、前記対応情報、前記記述情報および前記物理キュー情報をもとに、前記仮想キューと接続している前記物理キューの数を動的に増加し、前記物理キューを使用するデバイスの前記IPコアを再開させる
ことを特徴とするサーバ内データ転送装置。 - アクセラレータを含むデバイスをアプリケーションで使用する際、前記デバイスから前記アプリケーションへのデータ転送を行うサーバ内データ転送装置のサーバ内データ転送方法であって、
前記サーバ内データ転送装置は、
前記デバイスと前記アプリケーションに対応するアプリスレッドとの間の通信を監視しデータ到着タイミングを計るステップと、
データの到着を検知したデータ到着時に前記アプリスレッドを起床させてデータを受信させ、前記データの到着がない間はSleepさせるステップと、
前記デバイスの物理キューの代わりとなる仮想キューを用いて、前記デバイスと前記アプリケーションに対応するアプリスレッドにデータ処理を行わせることで、前記アプリケーションに対して前記デバイスを接続するステップと、
前記仮想キューと前記物理キューの間を動的に接続変更するステップと、を実行する
ことを特徴とするサーバ内データ転送方法 - アクセラレータを含むデバイスをアプリケーションで使用する際、前記デバイスから前記アプリケーションへのデータ転送を行うサーバ内データ転送装置としてのコンピュータに、
前記デバイスと前記アプリケーションに対応するアプリスレッドとの間の通信を監視しデータ到着タイミングを計るデータ到着監視手段、
前記データ到着監視手段がデータの到着を検知したデータ到着時に前記アプリスレッドを起床させてデータを受信させ、前記データの到着がない間はSleepさせるポーリング制御手段、
前記デバイスの物理キューの代わりとなる仮想キューを用いて、前記デバイスと前記アプリケーションに対応するアプリスレッドにデータ処理を行わせることで、前記アプリケーションに対して前記デバイスを接続するデバイス擬似手段、
前記仮想キューと前記物理キューの間を動的に接続変更するプロキシ手段、
を実行させるためのプログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2025112707A JP2025133855A (ja) | 2021-12-08 | 2025-07-03 | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2021/045192 WO2023105692A1 (ja) | 2021-12-08 | 2021-12-08 | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2025112707A Division JP2025133855A (ja) | 2021-12-08 | 2025-07-03 | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2023105692A1 JPWO2023105692A1 (ja) | 2023-06-15 |
| JP7709645B2 true JP7709645B2 (ja) | 2025-07-17 |
Family
ID=86729972
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2023565786A Active JP7709645B2 (ja) | 2021-12-08 | 2021-12-08 | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム |
| JP2025112707A Pending JP2025133855A (ja) | 2021-12-08 | 2025-07-03 | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2025112707A Pending JP2025133855A (ja) | 2021-12-08 | 2025-07-03 | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP4447395A4 (ja) |
| JP (2) | JP7709645B2 (ja) |
| CN (1) | CN118355641A (ja) |
| WO (1) | WO2023105692A1 (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018507457A (ja) | 2014-12-22 | 2018-03-15 | インテル コーポレイション | ネットワークデバイスにおける受信パケットの処理と関連する電力管理のための技術 |
| WO2021130828A1 (ja) | 2019-12-23 | 2021-07-01 | 日本電信電話株式会社 | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6543231B2 (ja) | 2016-08-23 | 2019-07-10 | 日本電信電話株式会社 | 仮想マシンの接続制御システムおよび仮想マシンの接続制御方法 |
| US12001895B2 (en) * | 2019-10-08 | 2024-06-04 | Nippon Telegraph And Telephone Corporation | Server delay control system, server delay control device, server delay control method, and program |
-
2021
- 2021-12-08 EP EP21967190.6A patent/EP4447395A4/en active Pending
- 2021-12-08 WO PCT/JP2021/045192 patent/WO2023105692A1/ja not_active Ceased
- 2021-12-08 CN CN202180104831.1A patent/CN118355641A/zh active Pending
- 2021-12-08 JP JP2023565786A patent/JP7709645B2/ja active Active
-
2025
- 2025-07-03 JP JP2025112707A patent/JP2025133855A/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018507457A (ja) | 2014-12-22 | 2018-03-15 | インテル コーポレイション | ネットワークデバイスにおける受信パケットの処理と関連する電力管理のための技術 |
| WO2021130828A1 (ja) | 2019-12-23 | 2021-07-01 | 日本電信電話株式会社 | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2023105692A1 (ja) | 2023-06-15 |
| EP4447395A1 (en) | 2024-10-16 |
| EP4447395A4 (en) | 2025-08-20 |
| JPWO2023105692A1 (ja) | 2023-06-15 |
| CN118355641A (zh) | 2024-07-16 |
| JP2025133855A (ja) | 2025-09-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8924534B2 (en) | Resource optimization and monitoring in virtualized infrastructure | |
| US8873375B2 (en) | Method and system for fault tolerance and resilience for virtualized machines in a network | |
| US8566822B2 (en) | Method and system for distributing hypervisor functionality over multiple physical devices in a network and configuring sub-hypervisor to control the virtual machines | |
| JP7310924B2 (ja) | サーバ内遅延制御装置、サーバ、サーバ内遅延制御方法およびプログラム | |
| JP7251648B2 (ja) | サーバ内遅延制御システム、サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
| JP2013527948A (ja) | コンピュータ・システム内でタスクをディスパッチするための方法、システム及びコンピュータ・プログラム | |
| CN114691286A (zh) | 服务器系统、虚拟机创建方法及装置 | |
| JP2025100826A (ja) | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム | |
| JP2024180507A (ja) | サーバおよびプログラム | |
| JP7709645B2 (ja) | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム | |
| JP7485101B2 (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
| JP7754299B2 (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
| JP7662062B2 (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
| JP7816498B2 (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
| CN119599140A (zh) | 应用和业务感知的基于机器学习的功率管理器 | |
| JP7574902B2 (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
| JP7852718B2 (ja) | サーバ内データ転送装置、データ転送システム、サーバ内データ転送方法およびプログラム | |
| JP7740368B2 (ja) | サーバ内データ転送装置、サーバ内データ転送方法およびプログラム | |
| JP2026074185A (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240528 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20241210 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250207 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20250311 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250508 |
|
| 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: 20250603 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250616 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7709645 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |