JP2022166934A - 情報処理装置、過負荷制御プログラムおよび過負荷制御方法 - Google Patents

情報処理装置、過負荷制御プログラムおよび過負荷制御方法 Download PDF

Info

Publication number
JP2022166934A
JP2022166934A JP2021072375A JP2021072375A JP2022166934A JP 2022166934 A JP2022166934 A JP 2022166934A JP 2021072375 A JP2021072375 A JP 2021072375A JP 2021072375 A JP2021072375 A JP 2021072375A JP 2022166934 A JP2022166934 A JP 2022166934A
Authority
JP
Japan
Prior art keywords
load
communication
network function
information
network
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.)
Pending
Application number
JP2021072375A
Other languages
English (en)
Inventor
雅崇 園田
Masataka Sonoda
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2021072375A priority Critical patent/JP2022166934A/ja
Priority to US17/565,565 priority patent/US11695700B2/en
Publication of JP2022166934A publication Critical patent/JP2022166934A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】スマートNICが搭載された情報処理装置において、CPUリソースを効率良く利用する。【解決手段】情報処理装置1は、スマートNIC94を搭載する。スマートNIC94は、スイッチ部40と、第2の制御部20とを含む。第2の制御部20は、情報処理装置1で実行する各アプリケーションへの通信情報をアプリケーションごとに記録する。第2の制御部20は、第2の制御部20のCPU使用率が過負荷である場合に、スイッチ部40のフロールールに基づいて各アプリケーションへの通信を処理する各ネットワーク機能の負荷を、通信情報の記録を基に比較する。第2の制御部20は、各ネットワーク機能の負荷が最小のネットワーク機能を選択する。第2の制御部20は、スイッチ部40のフロールールを変更すべく、選択されたネットワーク機能の実行位置を情報処理装置1上のネットワーク機能に切り替える。【選択図】図2

Description

本発明は、情報処理装置等に関する。
近年、物理サーバ、ストレージ、ネットワークのコンポーネントについて、構成を柔軟にし、構築や管理を容易にするコンポーザブルインフラストラクチャ対応のシステム(以降、コンポーザブルシステムと称する)が注目されている。また、今般、ビッグデータの処理による通信量の増加、機械学習等の高性能な演算能力を必要とするアプリケーションの実行の増加に伴い、CPU(Central Processing Unit)の演算能力だけでは処理能力が不足する事態も起きている。そこで、スマートNIC(Network Interface Card)のようなアクセラレータをサーバに搭載して、ネットワーク機能やストレージ機能等を代行させて負荷を軽減させるアプローチが注目されている。ネットワーク機能やストレージ機能等を代行させることは、「オフロード」と称する。
オフロードの一例として、メインCPU、スマートNIC、PCIe(Peripheral Component Interconnect express)より構成されたシステムにおいて、アプリケーションの機能の一部をスマートNICにオフロードすることでシステム全体のボトルネックを解消する方法が開示されている(例えば、特許文献1参照)。また、別の例として、データ処理タスクを別のハードウェアにオフロードすることでメインプロセッサの処理負荷を軽減する方法が開示されている(例えば、特許文献2参照)。
また、仮想化は、VM(Virtual Machine)からコンテナにシフトしつつある。コンテナの仮想化ソフトウェアを管理、および自動化するためのオープンソフトウェアには、例えば、Kubernetes(登録商標)がある。Kubernetesは、k8sと略記されることがある。
このような状況を踏まえ、例えば、スマートNICのようなアクセラレータを搭載したコンポーザブルシステム上にk8sのクラスタを構築することが考えられる。図19は、コンポーザブル環境でのk8sのクラスタ構成を示す参考図である。図19に示すように、1つのサーバ(k8s worker)には、複数のPodが起動される。各Podでアプリケーションが実行される。アプリケーションには、ミドルウェアやOS(Operation System)が含まれる。アプリケーションを実行できる独立した環境がコンテナである。k8sは、複数存在するコンテナを管理する。
サーバ間、Pod間、Podおよびストレージ間は、クラスタ通信用ネットワーク(NW:NetWork)で通信される。そして、スマートNICが搭載されたサーバ(k8s worker)は、ネットワーク機能(やストレージ機能)をスマートNICにオフロードする。ここでは、スマートNICに搭載された組込みCPUには、アプリケーションa(Appa)用のネットワーク機能(NF1_Appa)、アプリケーションb(Appb)用のネットワーク機能(NF1_Appb)が起動されている。NF1_Appaがアプリケーションaのネットワーク機能をオフロードし、NF1_Appbがアプリケーションbのネットワーク機能をオフロードする。これにより、サーバは、サーバ上のCPU負荷を軽減できる。
国際公開第2020/122024号 特表2016-510524号公報 米国特許出願公開第2020/0099628号明細書
しかしながら、スマートNICが搭載されたサーバにおいて、通信が増加すると、スマートNICにネットワーク機能をオフロードした通信処理量がスマートNICに搭載されたCPU(以降、組込みCPUとも称する)のリソースを超えてしまうことがあるという問題がある。
ここで、スマートNICの(組込みCPUの)リソースを超えてしまうという問題を、図20を参照して説明する。図20は、スマートNICのリソースを超えてしまうという問題を説明する参考図である。図20の例は、アプリケーションb(Appb)用のネットワーク機能を示すNF1_Appbにおいて、通信処理量がリソースを超えてしまった場合である。この結果、スマートNICでの処理遅延が増大して、サーバのネットワーク性能が低下してしまう。
そこで、スマートNICにオフロードしたネットワーク機能をサーバとスマートNICとで分担する必要がある。ただし、サーバがネットワーク機能を実行することにより、アプリケーション処理への性能の低下を避ける必要がある。つまり、ここでは、サーバがネットワーク機能を実行することにより、各Podで実行されるアプリケーションa、b等の処理性能の低下を避ける必要がある。また、通信状況は刻々と変化するため、ネットワーク機能の分担を静的に決定することは難しい。つまり、どのネットワーク機能をサーバで実行すべきかを通信状況に合わせて決定することは難しい。
1つの側面では、スマートNICが搭載されたサーバにおいて、通信が増加しても、サーバ上のCPUおよびスマートNICに搭載されたCPUのリソースを効率良く利用することを目的とする。
1つの態様では、情報処理装置は、ネットワークインターフェースカードを搭載した情報処理装置であって、前記ネットワークインターフェースカードは、ネットワークスイッチと、第1のプロセッサと、を有し、前記第1のプロセッサは、前記情報処理装置で実行する各アプリケーションへの通信情報をアプリケーションごとに記録する記録部と、前記第1のプロセッサの使用率が過負荷である場合に、前記ネットワークスイッチのフロールールに基づいて各アプリケーションへの通信を処理する各ネットワーク機能の負荷を、前記通信情報の記録を基に比較する比較部と、各ネットワーク機能の負荷が最小のネットワーク機能を選択する選択部と、前記ネットワークスイッチのフロールールを変更すべく、前記選択部によって選択されたネットワーク機能の実行位置を前記情報処理装置のネットワーク機能に切り替える切替部と、を有する。
1つの態様によれば、スマートNICが搭載されたサーバにおいて、通信が増加しても、サーバ上のCPUおよびスマートNICに搭載されたCPUのリソースを効率良く利用することができる。
図1は、実施例に係る情報処理装置のハードウェア構成の一例を示す図である。 図2は、実施例に係る情報処理装置の機能構成の一例を示すブロック図である。 図3は、実施例に係る通信記録情報のデータ構造の一例を示す図である。 図4は、実施例に係る通信統計情報のデータ構造の一例を示す図である。 図5は、実施例に係るNF負荷係数情報のデータ構造の一例を示す図である。 図6は、実施例に係るNFインスタンス情報のデータ構造の一例を示す図である。 図7は、実施例に係る実行NF情報のデータ構造の一例を示す図である。 図8は、実施例に係る切替対象NF決定のイメージを説明する図である。 図9は、実施例に係るNF実行位置切替のイメージを説明する図である。 図10は、実施例に係る過負荷制御の動作の一例を説明するための前提を示す図である。 図11は、実施例に係る通信統計処理の動作の一例を示す図である。 図12は、実施例に係る過負荷判定の動作の一例を示す図である。 図13は、実施例に係る切替対象NF決定の動作の一例を示す図である。 図14は、実施例に係るNF実行位置切替の動作の一例を示す図である。 図15は、実施例に係る通信統計処理部のフローチャートの一例を示す図である。 図16は、実施例に係る過負荷判定部のフローチャートの一例を示す図である。 図17は、実施例に係る切替対象NF決定部のフローチャートの一例を示す図である。 図18は、実施例に係るNF実行位置切替部のフローチャートの一例を示す図である。 図19は、コンポーザブル環境でのk8sのクラスタ構成を示す参考図である。 図20は、スマートNICのリソースを超えてしまうという問題を説明する参考図である。
以下に、本願の開示する情報処理装置、過負荷制御プログラムおよび過負荷制御方法の実施例を図面に基づいて詳細に説明する。実施例では、Kubernetes(k8sと略記)のクラスタを構築し、この上でアプリケーションを実行するコンテナを配備する場合について説明する。
[情報処理装置のハードウェア構成]
図1は、実施例に係る情報処理装置のハードウェア構成の一例を示す図である。図1に示すように、情報処理装置1は、CPU(Central Processing Unit)91、メモリ92、HDD(Hard Disk Drive)93およびスマートNIC94を有する。スマートNIC94は、情報処理装置1に搭載し、ネットワーク機能を代行(オフロード)してCPU91の負荷を軽減させるアクセラレータである。スマートNIC94は、組込みCPU941、NIC942、メモリ943、PCIeスイッチ944およびネットワークポート945を有する。なお、情報処理装置1は、以降、ホスト(Host)という場合がある。
CPU91、メモリ92、HDD93は、PCIeスイッチ944とPCIeバス95で接続される。
PCIeスイッチ944は、通信のフロールールに基づいて、アプリケーションを宛先とした通信を、アプリケーションと対応付けられたネットワーク機能に送信する。
CPU91は、OS(Operating System)および仮想化(コンテナ化)された各種アプリケーションを動作させるプログラムをHDD93からメモリ92およびメモリ943に読み出して実行する。また、CPU91は、各種アプリケーションがそれぞれ通信する際に用いられるネットワーク機能をメモリ92から読み出してプロセスとして起動する。なお、各アプリケーションのそれぞれのネットワーク機能は、フロールールで指定されていない場合であっても、予め起動される。
組込みCPU941は、CPU91の負荷を軽減するために、各種アプリケーションがそれぞれ通信する際に用いられるネットワーク機能をメモリ943から読み出してプロセスとして起動する。つまり、組込みCPU941を有するスマートNIC94は、各アプリケーションのそれぞれの通信処理を担うネットワーク機能をオフロードする。
ところが、情報処理装置1において、コンテナの集合体であるPodの増加や通信の増加等により通信量が増えると、スマートNIC94にオフロードしたネットワーク機能の負荷がスマートNIC94のCPUリソースを超えてしまうことがある。この結果、スマートNIC94での処理遅延が増大して、情報処理装置1のネットワーク性能が低下してしまう。
そこで、組込みCPU941は、CPUリソースが過負荷である場合には、オフロードしている各アプリケーションのそれぞれのネットワーク機能の負荷を比較する。そして、組込みCPU941は、負荷が最小のネットワーク機能をHostの担当とし、PCIeスイッチ944のフロールールを変更する。つまり、組込みCPU941は、負荷が最小のアプリケーションに対するネットワーク機能の実行位置をスマートNIC94の組込みCPU941からHostのCPU91に切り替える。負荷が最小のネットワーク機能を切替対象とするのは、切り替えられネットワーク機能を実行することになるHostでの性能低下を避けるためである。すなわち、Hostは、アプリケーション処理を実行するが、この処理への影響を及ぼさないようにするためである。
以降では、通信状況に合わせてHostのCPU91と、スマートNIC94の組込みCPU941の両方のネットワーク機能の実行を柔軟に使い分けることができる情報処理装置1について説明する。
[情報処理装置の機能構成]
図2は、実施例に係る情報処理装置の機能構成の一例を示すブロック図である。図2に示すように、情報処理装置1は、第1の制御部10と、第2の制御部20と、記憶部30と、スイッチ部40とを有する。なお、第1の制御部10は、図1で示されるCPU91に対応する。第2の制御部20は、図1で示される組込みCPU941に対応する。記憶部30は、図1で示されるメモリ943に対応する。スイッチ部40は、図1で示されるNIC942およびPCIeスイッチ944に対応する。
第1の制御部10は、CPU負荷計測部11、各アプリケーションを実行するPod12および各アプリケーションのNF(ネットワーク機能)13を有する。CPU負荷計測部11は、Host上に有するCPU91の負荷を計測する。各アプリケーションのNF13は、各アプリケーションに対する通信のネットワーク機能を担う。各Pod12で実行されるアプリケーションは、多種多様であり、パケットサイズの傾向も通信の特性も様々である。例えば、アプリケーションには、ストリーミングのように連続して通信するものや、学習データを取得するAI(Artificial Intelligence)のように時々大量に通信するものや、k8sマスターの管理で用いられるような定期的に少量の通信を行うものが含まれる。
第2の制御部20は、通信記録部21、通信統計処理部22、過負荷判定部23、切替対象NF決定部24およびNF実行位置切替部25を有する。また、第2の制御部20は、CPU負荷計測部26、各アプリケーションのNF(ネットワーク機能)27およびフロー管理部28を有する。記憶部30は、通信記録情報31、通信統計情報32、NF負荷係数情報33、NFインスタンス情報34および実行NF情報35を有する。スイッチ部40は、フロールールを記憶するフローテーブル41を有する。なお、通信記録部21、通信統計処理部22、過負荷判定部23、切替対象NF決定部24、NF実行位置切替部25、通信記録情報31、通信統計情報32、NF負荷係数情報33、NFインスタンス情報34および実行NF情報35は、過負荷制御を行うNF配置管理機構として特にNF配置管理機構部50と称する。なお、通信記録部21は、記録部の一例である。過負荷判定部23および切替対象NF決定部24は、比較部および選択部の一例である。NF実行位置切替部25は、切替部の一例である。
通信記録情報31は、Host上の全てのパケットの情報を、アプリケーションごとに記録した情報である。通信記録情報31は、後述する通信記録部21によって生成される。ここで、通信記録情報31のデータ構造について、図3を参照して説明する。
図3は、実施例に係る通信記録情報のデータ構造の一例を示す図である。図3に示すように、通信記録情報31は、通信時刻、送信元IP、宛先IPおよびパケットサイズを対応付けて記憶する。送信元IPは、送信元のIPアドレスを示す。宛先IPは、対象のアプリケーションを実行するPod12のIPアドレスを示す。
図2に戻って、通信統計情報32は、通信記録情報31から統計処理して得られた情報を、アプリケーションごとに記憶する。通信統計情報32は、後述する通信統計処理部22によって生成される。ここで、通信統計情報32のデータ構造について、図4を参照して説明する。
図4は、実施例に係る通信統計情報のデータ構造の一例を示す図である。図4に示すように、通信統計情報32は、対象App、継続期間毎の通信記録、パケットサイズ別分布を対応付けて記憶する。対象Appは、対象のアプリケーションを示し、対象のアプリケーションを実行するPod12のIPアドレスを示す。継続期間の通信記録は、対象のアプリケーションのパケットの通信が継続し続けた期間の通信記録を意味し、開始時刻、終了時刻およびパケット数を含む。継続した通信とは、パケット間隔が一定期間以内の通信のことをいい、例えば、5秒以上の間隔を空けない通信のことをいう。パケット数は、継続期間の間に通信されたパケットの数を示す。パケットサイズ別分布は、継続期間の間に通信されたパケットのサイズの分布を示す。パケットのサイズの分布における階級の幅は、例えば300バイトであるが、これに限定されるものではない。但し、階級の幅が変更されると、通信統計処理部22が対象の全てのアプリケーションについてパケットサイズ別分布を再計算する。図4では、パケットサイズ別分布の階級として「1-300」、「301-600」、「601-900」を適用している。分布は、継続期間の通信記録のパケット数のうちの割合(%)でも、度数(パケット数)でも良い。図4では、割合(%)が設定されている。
図2に戻って、NF負荷係数情報33は、NFの負荷係数を示す情報である。NFの負荷係数とは、各NFの負荷を比較するために用いられる相対値であり、NFの種類やパケットサイズによって区別される。NFの種類には、例えば、DPI(Deep Packet Inspection)やLB(Load Balancing)が含まれる。DPIはパケットのデータ部の検査をするので、LBよりCPU負荷がかかる。また、パケットサイズが大きい方が小さいよりCPU負荷がかかる。このため、NF負荷係数は、NFの種類やパケットサイズによって値が区別されるように定義される。NF負荷係数情報33は、予め定義される。NF負荷係数の算出方法としては、例えば、スマートNIC94を搭載した同一環境で、パケットサイズを変化させて各通信処理を行い、CPU負荷の計測結果を基に算出することができる。なお、NF負荷係数情報33は、後述する切替対象NF決定部24によって各NFの負荷が比較される際に用いられる。ここで、NF負荷係数情報33のデータ構造の一例を、図5を参照して説明する。
図5は、実施例に係るNF負荷係数情報のデータ構造の一例を示す図である。図5に示すように、NF負荷係数情報33は、NFの負荷係数を、NF種別およびパケットサイズに対応付けて定義する。パケットサイズが「1-300」である場合には、NF種別が「DPI」である場合に、NF負荷係数として「2.0」と定義している。NF種別が「LB」である場合に、NF負荷係数として「2.0」と定義している。また、パケットサイズが「301-600」である場合には、NF種別が「DPI」である場合に、NF負荷係数として「2.5」と定義している。NF種別が「LB」である場合に、NF負荷係数として「2.0」と定義している。また、パケットサイズが「601-900」である場合には、NF種別が「DPI」である場合に、NF負荷係数として「4.5」と定義している。NF種別が「LB」である場合に、NF負荷係数として「2.0」と定義している。このように、NF負荷係数は、パケットサイズが大きい方が小さいより大きい値となり、同じパケットサイズであってもNFの種類が「DPI」の方が「LB」より大きい値となるように定義されている。
図2に戻って、NFインスタンス情報34は、起動している全てのNFのプロセス(NFインスタンス)の情報をリストアップした情報である。また、実行NF情報35は、各対象アプリケーションを実行するPod12が現に使っているNFの情報である。ここで、NFインスタンス情報34および実行NF情報35のデータ構造の一例を、それぞれ図6、図7を参照して説明する。
図6は、実施例に係るNFインスタンス情報のデータ構造の一例を示す図である。図6に示すように、NFインスタンス情報34は、インスタンスID(identifier)、対象機能ID、実行場所および起動情報を対応付けて記憶する。インスタンスIDは、NFのプロセス(NFインスタンス)を一意に識別する識別子である。対象機能IDは、対象のNFをアプリケーション(Pod)別に識別する識別子である。実行場所は、NFの実行場所を示す。実行場所には、スマートNIC94を示す「SmartNIC」またはHostを示す「Host」が設定される。起動情報は、起動した際につけられるプロセスidを示す。一例として、対象機器IDが「NF001」である場合には、スマートNIC94で起動しているプロセス(インスタンスID:“nfi0001”)と、Hostで起動しているプロセス(インスタンスID:“nfi1001”)の2つのプロセスが起動されている。
図7は、実施例に係る実行NF情報のデータ構造の一例を示す図である。図7に示すように、実行NF情報35は、機能ID、対象App(IPアドレス)、機能種類および実行インスタンスIDを対応付けて記憶する。機能IDは、現に使っている対象のNFをアプリケーション(Pod)別に識別する識別子である。対象App(IPアドレス)は、対象のアプリケーションを実行するPod12のIPアドレスを示す。機能種類は、機能IDが示すNFの種類を示す。機能種類には、例えば、DPIやLBが含まれる。実行インスタンスIDは、現に使っている対象のNFのプロセス(NFインスタンス)を一意に識別する識別子である。この実行インスタンスIDとNFインスタンス情報34のインスタンスIDとを照合することで、対象のアプリケーションのNFが、どこの実行場所で実行されているかがわかる。ここでは、Poda、Podb、Podcでそれぞれ実行している対象のアプリケーションのNFは、全てスマートNIC94上で実行されている。
図2に戻って、通信記録部21は、スマートNIC94にて送受信した全てのパケットの情報を通信記録情報31に記録する。例えば、通信記録部21は、PCIeスイッチ944から情報を取得して記録しても良いし、ネットワークポート945を通るパケットをミラーリングして集めて、ヘッダ解析して情報を取得して記録しても良い。
通信統計処理部22は、通信記録情報31を基に、アプリケーション別の通信の統計情報を算出し、通信統計情報32を生成する。例えば、通信統計処理部22は、通信記録情報31から、パケット情報をアプリケーションごとに分類する。通信統計処理部22は、アプリケーションごとに、通信時刻を参照して、継続して通信しているパケット情報を取得する。そして、通信統計処理部22は、継続して通信し続けたパケット情報に関し、継続期間の開始時刻、終了時刻、パケット数およびパケットサイズ別の分布を算出する。継続した通信とは、パケット間隔が一定期間以内の通信をいう。そして、通信統計処理部22は、対象のアプリケーション、継続期間の開始時刻、終了時刻、パケット数およびパケットサイズ別の分布を1レコードとして対応付けて通信統計情報32に記録する。
過負荷判定部23は、スマートNIC94の組込みCPU941の過負荷を判定する。例えば、過負荷判定部23は、HostのCPU91とスマートNIC94の組込みCPU941のそれぞれの負荷を計測する。HostのCPU91の負荷は、CPU負荷計測部11によって計測される。スマートNIC94の組込みCPU941の負荷は、後述するCPU負荷計測部26によって計測される。そして、過負荷判定部23は、HostのCPU91の負荷が第1の閾値より小さい場合、且つスマートNIC94の組込みCPU941の負荷が第2の閾値より大きい場合には、スマートNIC94の組込みCPU941が過負荷であると判定する。この結果、過負荷判定部23は、ネットワーク機能(NF)の実行位置の切り替えの実施が必要であると判断する。なお、過負荷判定部23は、HostのCPU91の負荷が第1の閾値より大きい場合には、スマートNIC94の組込みCPU941の負荷が第2の閾値より大きい場合であっても、NFの実行位置の切り替えの実施が必要であると判断しない。すなわち、HostのCPU91の負荷が大きい場合には、NFのHostへの切り替えは実施されない。HostのCPU91は、アプリケーションの処理で使っており、NFの処理にCPUリソースを使える状態でないからである。
切替対象NF決定部24は、スマートNIC94の組込みCPU941の使用率が過負荷である場合に、切替対象のNFを決定する。
例えば、切替対象NF決定部24は、各NFの負荷を、ネットワーク機能(NF)の種類、並びに、通信統計情報32から得られるパケット数、パケットのサイズおよび通信時間を基に比較する。各アプリケーション用の各NFの負荷の大きさは、例えば、パケット数、NFの種類、パケットサイズ、通信時間によって決まると想定されるからである。つまり、処理負荷は、同じNFでもパケット数が多いアプリケーションの方が大きくなる。1パケット分の処理負荷は、NFの種類(例えば、DPIやLB)によって異なる。通信時間が短いアプリケーション用のNFは、CPUリソースを使う時間が短い。したがって、切替対象NF決定部24は、各NFのNF負荷比較値を、NFの種類、並びに、パケット数、パケットサイズおよび通信時間を基に算出して比較する。
一例として、切替対象NF決定部24は、直近5分の通信内容を基に各アプリケーションが使用するNFのNF負荷比較値を算出する。切替対象NF決定部24は、以下の式(1)および式(2)を用いて、各NFのNF負荷比較値を計算する。
各NFのNF負荷比較値=Σ各継続通信における負荷比較値・・・(1)
1つの継続通信における負荷比較値=Σ(パケットサイズ別パケット数×NF負荷係数)×継続通信時間・・・(2)
すなわち、切替対象NF決定部24は、通信統計情報32を参照して、直近5分内の各継続通信時間について、パケットサイズ別分布から得られるパケットサイズ別パケット数に、パケットサイズおよびNFの種類に対応するNF負荷係数を乗じる。切替対象NF決定部24は、乗じる処理を、パケットサイズ別分行い、パケットサイズ別の値を加算する。そして、切替対象NF決定部24は、加算した値に通信継続時間を乗算する。NF負荷係数は、NF負荷係数情報33から得られる。そして、乗算して得られる値が、NFに対する1つの継続通信における負荷比較値である(式(2)参照)。そして、切替対象NF決定部24は、各継続通信における負荷比較値を加算して該当するNFのNF負荷比較値を算出する(式(1)参照)。
そして、切替対象NF決定部24は、各NFのNF負荷比較値を比較して、各NFの負荷が最小のNFを切替対象のNFとして決定する。負荷が最小のNFを切替対象のNFとするのは、切り替えられNFを実行することになるHostでの性能低下を避けるためである。すなわち、Hostは、アプリケーション処理を実行するが、この処理への影響を及ぼさないようにするためである。
NF実行位置切替部25は、フローテーブル41のフロールールについて、決定されたNFの実行位置をHostのNFに切り替える。例えば、NF実行位置切替部25は、実行NF情報35から、決定された切替対象となるNFの(切替前の)実行インスタンス情報を取得する。また、NF実行位置切替部25は、NFインスタンス情報34から、決定された切替対象となるNFの切替後のインスタンス情報を取得する。そして、NF実行位置切替部25は、フローテーブル41に対して、切替前の実行インスタンス情報を切替後のインスタンス情報に更新する。
CPU負荷計測部26は、スマートNIC94上に有する組込みCPU941の負荷を計測する。各アプリケーションのNF27は、各アプリケーションに対する通信のネットワーク機能を担う。フロー管理部28は、PCIeスイッチ944のフロールールを管理する。
[切替対象NF決定のイメージ]
ここで、実施例に係る切替対象NF決定のイメージを、図8を参照して説明する。図8は、実施例に係る切替対象NF決定のイメージを説明する図である。図8に示すように、スマートNIC94の組込みCPU941では、アプリケーションaのネットワーク機能(NF)272a、271a、アプリケーションbのNF272b、271b、アプリケーションcのNF272cが実行されている。例えば、アプリケーションa宛ての通信が、PCIeスイッチ944におけるフローテーブル41のフロールールに基づいて、アプリケーションaのNF271a、272aを通じてアプリケーションaを実行するPod12に配信される。アプリケーションb宛ての通信が、PCIeスイッチ944におけるフローテーブル41のフロールールに基づいて、アプリケーションbのNF271b、272bを通じてアプリケーションbを実行するPod12に配信される。
このような状況の下、切替対象NF決定部24は、組込みCPU941のCPU使用率が過負荷である場合、且つCPU91のCPU使用率が過負荷でない場合には、以下の処理を行う。切替対象NF決定部24は、各NFの負荷を、NFの種類(ネットワーク処理の種類)、並びに、通信統計情報32から得られるパケット数、パケットのサイズおよび通信時間を基にNF負荷比較値として算出する。そして、切替対象NF決定部24は、各NFのNF負荷比較値を比較する。NFの種類は、実行NF情報35の機能IDに対応する機能種類を参照すれば良い。パケット数は、通信統計情報32のパケット数およびパケットサイズ別分布から算出されれば良い。パケットサイズは、通信統計情報32のパケットサイズ別分布から算出されれば良い。通信時間は、通信統計情報32の開始時刻および終了時刻から算出されれば良い。
ここでは、パケット数は、説明の便宜上、「大」「中」「小」で表わすとする。パケットサイズは、「大」「中」「小」で表わすとする。通信時間は、「長」「中」「短」で表わすとする。アプリケーションaのNF271aでは、パケット数が「大」、パケットサイズが「小」、NW処理の種類が「DPI」、通信時間が「長」であり、NF負荷比較値が「7」と計算されるとする。アプリケーションbのNF271bでは、パケット数が「大」、パケットサイズが「大」、NW(ネットワーク)処理の種類が「DPI」、通信時間が「中」であり、NF負荷比較値が「9」と計算されている。アプリケーションaのNF272aでは、パケット数が「大」、パケットサイズが「小」、NW処理の種類が「LB」、通信時間が「長」であり、NF負荷比較値が「4」と計算されている。アプリケーションbのNF272bでは、パケット数が「大」、パケットサイズが「大」、NW処理の種類が「LB」、通信時間が「中」であり、NF負荷比較値が「3」と計算されている。アプリケーションcのNF272cでは、パケット数が「大」、パケットサイズが「大」、NW処理の種類が「LB」、通信時間が「短」であり、NF負荷比較値が「1」と計算されている。
そして、切替対象NF決定部24は、各NFのNF負荷比較値を比較して、各NFの負荷が最小のNFを切替対象のNFとして決定する。ここでは、切替対象NF決定部24は、各NFのNF負荷比較値を比較して、NF負荷比較値が最も小さいアプリケーションcのNF272cを切り換え対象のNFとして決定する。すなわち、切替対象NF決定部24は、アプリケーションcのNF272cが担っていたネットワーク機能をHostの担当とする。
[NF実行位置切替のイメージ]
続いて、実施例に係るNF実行位置切替のイメージを、図9を参照して説明する。図9は、実施例に係るNF実行位置切替のイメージを説明する図である。なお、図8で示したように、アプリケーションcのNF272cが切換対象のNFとして決定されたとする。
NF実行位置切替部25は、フローテーブル41のフロールールについて、NFの実行位置を、決定された切替対象のNFからHostのNFに切り替える。ここでは、NF実行位置切替部25は、アプリケーションcのNFの実行場所のフロールールをNF272cからNF132cに切り替える。これにより、フローテーブル41のフロールールに基づいて、アプリケーションc宛ての通信がHost上のアプリケーションcのNF132cを通じてアプリケーションcを実行するPodに配信される。
[過負荷制御の動作の一例]
図10~図14は、実施例に係る過負荷制御の動作の一例を説明する図である。図10は、実施例に係る過負荷制御の動作の一例を説明するための前提を示す図である。図10に示すように、Host上には、アプリケーションを実行するPodが複数配備されている。ここでは、アプリケーションaは機械学習(ML:Machine Learning)を対象としたアプリケーションであり、Podaによって実行される。アプリケーションbは動画解析を対象としたアプリケーションであり、Podbによって実行される。アプリケーションcはiotデータ送信を対象としたアプリケーションであり、Podcによって実行される。
組込みCPU941では、NF配置管理機構部50が、配置済みのNFのインスタンス情報を示すNFインスタンス情報34および実行中のNFのインスタンス情報を示す実行NF情報35を管理している。ここでは、例えば、PodbのDPI(機能ID:“NF001”)に関するインスタンスについては、以下の2つのプロセスが起動されている。2つのプロセスは、スマートNIC94で起動しているプロセス(インスタンスID:“nfi0001”)とHostで起動しているプロセス(インスタンスID:“nfi1001”)である。PodbのLB(機能ID:“NF004”)に関するインスタンスについては、以下の2つのプロセスが起動されている。2つのプロセスは、スマートNIC94で起動しているプロセス(インスタンスID:“nfi0004”)とHostで起動しているプロセス(インスタンスID:“nfi1004”)である。
そして、現にPodbが使っているNFであって機能種別がDPIを示すNFのインスタンスIDは、スマートNIC94上の“nfi0001”である。現にPodaが使っているNFであって機能種別がDPIを示すNFのインスタンスIDは、スマートNIC94の“nfi0002”である。現にPodcが使っているNFであって機能種別がLBを示すNFのインスタンスIDは、スマートNIC94の“nfi0003”である。現にPodbが使っているNFであって機能種別がLBを示すNFのインスタンスIDは、スマートNIC94の“nfi0004”である。現にPodaが使っているNFであって機能種別がLBを示すNFのインスタンスIDは、スマートNIC94の“nfi0005”である。
図11は、実施例に係る通信統計処理の動作の一例を示す図である。図11に示すように、通信記録部21は、スマートNIC94にて送受信した全ての入出力パケットの情報を通信記録情報31に記録する。
そして、通信統計処理部22は、通信記録情報31を基に、アプリケーション別の通信の統計情報を算出する。例えば、通信統計処理部22は、通信記録情報31から、パケット情報を対象アプリケーションの宛先IPごとに分類する。通信統計処理部22は、対象アプリケーションの宛先IPごとに、通信時刻を参照して、継続して通信しているパケット情報を集める。ここでいう継続した通信とは、パケット間隔が例えば5秒以内の通信をいう。すなわち、パケット間隔が5秒以内であれば継続していると判断し、5秒を超えると途切れたと判断する。
そして、通信統計処理部22は、継続して通信し続けたパケット情報に関し、継続期間の開始時刻、終了時刻、パケット数およびパケットサイズ別の分布を算出する。ここでいう分布は、割合でも度数(パケット数)でも良い。そして、通信統計処理部22は、対象のアプリケーション、継続期間の開始時刻、終了時刻、パケット数およびパケットサイズ別の分布を1レコードとして対応付けて通信統計情報32に記録する。ここでは、例えば、Podaで実行しているAppaを宛先IPとする1回目の継続期間毎の通信記録は、開始時刻として「20:00:00.001」、終了時刻として「20:00:30.001」、パケット数として「5000」と記録されている。かかる通信記録に対して、「301-600」のパケットサイズが「10」%、「601-900」および「901-1200」のパケットサイズがそれぞれ「15」%、「1201-1500」のパケットサイズが「60」%と記録されている。また、2回目の継続期間毎の通信記録は、開始時刻として「20:04:20.055」、終了時刻として「20:04:50.055」、パケット数として「5100」と記録されている。かかる通信記録に対して、「301-600」のパケットサイズが「0」%、「601-900」および「901-1200」のパケットサイズがそれぞれ「10」%、「1201-1500」のパケットサイズが「80」%と記録されている。
図12は、実施例に係る過負荷判定の動作の一例を示す図である。図12に示すように、過負荷判定部23は、HostのCPU91とスマートNIC94の組込みCPU941のそれぞれの負荷を計測する。HostのCPU91の負荷は、CPU負荷計測部11によって計測される。スマートNIC94の組込みCPU941の負荷は、CPU負荷計測部26によって計測される。
そして、過負荷判定部23は、HostのCPU91の負荷がThhostより小さく、且つスマートNIC94の組込みCPU941の負荷がThsnicより大きい場合には、スマートNIC94の組込みCPU941が過負荷であると判定する。そして、過負荷判定部23は、ネットワーク機能(NF)の実行位置の切り替えの実施が必要であると判断する。なお、Thhostは、HostのCPU91の負荷の閾値であり、第1の閾値の一例である。Thsnicは、組込みCPU941の負荷の閾値であり、第2の閾値の一例である。ここでは、Thhostは、0.7であるとし、Thsnicは、0.8であるとする。そして、HostのCPU91の負荷loadhostが0.43であり、組込みCPU941の負荷loadsnicが0.85であるとする。すると、過負荷判定部23は、loadhost(0.43)がThhost(0.7)より小さく、且つloadsnic(0.85)がThsnic(0.8)より大きいので、組込みCPU941が過負荷であると判定する。そして、そして、過負荷判定部23は、NFの実行位置の切り替えの実施が必要であると判断する。
図13は、実施例に係る切替対象NF決定の動作の一例を示す図である。図13に示すように、切替対象NF決定部24は、各NFの負荷を、NF種別、並びに、通信統計情報32から得られるパケット数、パケットのサイズおよび通信時間を基に比較する。一例として、切替対象NF決定部24は、直近5分の通信内容を基に各対象Appが使用するNFのNF負荷比較値を算出する。各NFのNF負荷比較値は、式(1)および式(2)を用いて計算される。
ここでは、切替対象NF決定部24は、20:00:00~20:05:00の直近5分の通信内容を基に算出するものとする。
NFの機能IDが「NF002」(対象App:Podaで実行するML、機能種別:DPI、継続期間:2回)のNF負荷比較値は、以下のように、「26,080.0」と算出される。まず、1回目の継続通信時間「20:00:00.001~20:00:30.001」における負荷比較値は、パケットサイズとして「301-600」、「601-900」、「901-1200」および「1201-1500」のそれぞれの負荷比較値を加算したものとなる。パケットサイズ「301-600」の負荷比較値は、パケット数が「5000×0.1」であり、DPIのNF負荷係数が「2.5」であるので、「(5000×0.1)×2.5」と算出される。パケットサイズ「601-900」の負荷比較値は、パケット数が「5000×0.15」であり、DPIのNF負荷係数が「4.5」であるので、「(5000×0.15)×4.5」と算出される。パケットサイズ「901-1200」の負荷比較値は、パケット数が「5000×0.15」であり、DPIのNF負荷係数が「5.0」であるので、「(5000×0.15)×5.0」と算出される。パケットサイズ「1201-1500」の負荷比較値は、パケット数が「5000×0.6」であり、DPIのNF負荷係数が「5.5」であるので、「(5000×0.6)×5.5」と算出される。そして、1回目の継続通信時間における負荷比較値は、パケットサイズのそれぞれの負荷比較値を加算して、加算した値に通信継続時間「0.5」分を乗算して「12,437.5」となる(式(2)参照)。
2回目の継続通信時間「20:04:15.001~20:02:45.001」における負荷比較値は、パケットサイズとして「601-900」、「901-1200」および「1201-1500」のそれぞれの負荷比較値を加算したものとなる。パケットサイズ「601-900」の負荷比較値は、パケット数が「5100×0.1」であり、DPIのNF負荷係数が「4.5」であるので、「(5000×0.1)×4.5」と算出される。パケットサイズ「901-1200」の負荷比較値は、パケット数が「5100×0.1」であり、DPIのNF負荷係数が「5.0」であるので、「(5000×0.1)×5.0」と算出される。パケットサイズ「1201-1500」の負荷比較値は、パケット数が「5100×0.8」であり、DPIのNF負荷係数が「5.5」であるので、「(5100×0.8)×5.5」と算出される。そして、2回目の継続通信時間における負荷比較値は、パケットサイズのそれぞれの負荷比較値を加算して、加算した値に通信継続時間「0.5」分を乗算して「13,642.5」となる(式(2)参照)。
そして、1回目の継続通信時間における負荷比較値と、2回目の継続通信時間における負荷比較値との総和「26,080.0」が「NF002」のNF負荷比較値である(式(1)参照)。
同様に、「NF001」のNF負荷比較値は、「23,400.0」と算出される。「NF003」のNF負荷比較値は、「1,475.0」と算出される。「NF004」のNF負荷比較値は、「18,000.0」と算出される。「NF005」のNF負荷比較値は、「10,100.0」と算出される。
そして、切替対象NF決定部24は、各NFのNF負荷比較値を比較して、各NFの負荷が最小のNFを切替対象のNFとして決定する。ここでは、NF負荷比較値の最小のNFは、「NF003」であるので、切替対象NF決定部24は、「NF003」のNFを切り換え対象のNFとして決定する。
図14は、実施例に係るNF実行位置切替の動作の一例を示す図である。図14に示すように、NF実行位置切替部25は、切り換え対象の「NF003」のNFについて、切替前と切替後のインスタンス情報を取得する。ここでは、NF実行位置切替部25は、実行NF情報35から機能ID「NF003」に対応する実行インスタンスID「nfi0003」を切換前のインスタンスIDとして取得する。NF実行位置切替部25は、NFインスタンス情報34から対象機能ID「NF003」に対応するインスタンスIDとして「nfi0003」および「nfi1003」を取得する。そして、NF実行位置切替部25は、切替前と異なるインスタンスID「nfi1003」を切替後のインスタンスIDとして取得する。
そして、NF実行位置切替部25は、フローテーブル41に対して、切替前の実行インスタンス情報を切替後のインスタンス情報に更新する。ここでは、NF実行位置切替部25は、フローテーブル41内の機能ID「NF003」に対応する行を削除すべく、「delete flow_id=002」のdelete命令を発行する。加えて、NF実行位置切替部25は、フローテーブル41内に新たな機能ID「NF003」を追加すべく、「append{Condition:“src=(IP(NF003))”、Action:“forward pid103”}」のappend命令を発行する。すなわち、NF実行位置切替部25は、フローテーブル41において、切替前の情報が条件(Condition)に入っているフローエントリを削除し、切替後の情報が条件(Condition)に入るフローエントリを追加する。
命令を受け付けたフロー管理部28は、命令に基づいてフローテーブル41を更新する。ここでは、フロー管理部28は、delete命令を受け付けて、フローテーブル41のflow_idが「002」の行を削除する。加えて、フロー管理部28は、append命令を受け付けて、Conditionに「src=IP(NF003)」を設定し、Actionに「forward pid103」を設定した、flow_idが「00x」の行を追加する。
この結果、NF実行位置切替部25は、実行インスタンスIDを「nfi0003」から「nfi1003」に切り替える。すなわち、NF実行位置切替部25は、負荷が最小のアプリケーションApp3のNF「NF003」の実行位置を組込みCPU941からCPU19に切り替える。
これにより、情報処理装置(Host)1は、スマートNIC94の過負荷時に一時的にHostのCPU91を利用してNFを実行することで、ネットワーク性能の低下を回避することができ、ネットワーク性能を高品質に維持することが可能となる。言い換えれば、情報処理装置(Host)1は、NFをスマートNIC94にオフロードしている場合でも、通信状況に合わせて、HostのCPU91の空き状況も見ながらHostをNFの実行先として利用することで、HostとスマートNIC94のCPUリソースを効率良く使用することが可能となる。
[通信統計処理部のフローチャート]
図15は、実施例に係る通信統計処理部のフローチャートの一例を示す図である。なお、通信統計処理部22は、定期的に実行するものとする。また、図15では、アプリケーションのことを「アプリ」と略記する。
通信統計処理部22は、通信記録情報31から前回実行時以降のパケット情報を取得する(ステップS11)。そして、通信統計処理部22は、パケット情報をアプリ(宛先IP)毎に分類する(ステップS12)。そして、通信統計処理部22は、アプリを選択する(ステップS13)。
通信統計処理部22は、選択したアプリに関し、古い順にパケット情報を取得する(ステップS14)。そして、通信統計処理部22は、直前のパケットの通信時刻と取得したパケットの通信時刻との時間差を算出する(ステップS15)。通信統計処理部22は、時間差は通信継続時間内か否かを判定する(ステップS16)。通信継続時間は、例えば5秒である。
時間差が通信継続時間内であると判定した場合には(ステップS16;Yes)、通信統計処理部22は、通信統計情報32について、現状の継続期間の通信記録を生成する(ステップS17)。そして、通信統計処理部22は、取得したパケットのサイズを確認し、該当する階級のパケット数を1だけ加算する(ステップS18)。そして、通信統計処理部22は、ステップS21に移行する。
一方、時間差が通信継続時間内でないと判定した場合には(ステップS16;No)、通信統計処理部22は、通信統計情報32について、新規の継続期間の通信記録を生成する(ステップS19)。そして、通信統計処理部22は、取得したパケットのサイズを確認し、該当する階級のパケット数を1だけ加算する(ステップS20)。そして、通信統計処理部22は、ステップS21に移行する。
ステップS21において、通信統計処理部22は、選択したアプリの全パケットを処理したか否かを判定する(ステップS21)。選択したアプリの全パケットを処理していないと判定した場合には(ステップS21;No)、通信統計処理部22は、次のパケットを処理すべく、ステップS14に移行する。
一方、選択したアプリの全パケットを処理したと判定した場合には(ステップS21;Yes)、通信統計処理部22は、全アプリを選択したか否かを判定する(ステップS22)。全アプリを選択していないと判定した場合には(ステップS22;No)、通信統計処理部22は、次のアプリを選択すべく、ステップS13に移行する。一方、全アプリを選択したと判定した場合には(ステップS22;Yes)、通信統計処理部22は、通信統計処理を終了する。
[過負荷判定部のフローチャート]
図16は、実施例に係る過負荷判定部のフローチャートの一例を示す図である。なお、過負荷判定部23は、定期的に実行するものとする。
過負荷判定部23は、HostのCPU91の負荷を取得する(ステップS32)。ここでは、過負荷判定部23は、取得したCPU91の負荷をloadhostとする。CPU91の負荷は、CPU負荷計測部11によって計測される。過負荷判定部23は、スマートNIC94の組込みCPU941の負荷を取得する(ステップS31)。ここでは、過負荷判定部23は、取得した組込みCPU941の負荷をloadsnicとする。組込みCPU941の負荷は、CPU負荷計測部26によって計測される。
過負荷判定部23は、CPU91の負荷loadhostが第1の閾値Thhostより小さい、且つ組込みCPU941の負荷loadsnicが第2の閾値Thhostより大きいか否かを判定する(ステップS33)。CPU91の負荷loadhostが第1の閾値Thhostより小さい、且つ組込みCPU941の負荷loadsnicが第2の閾値Thhostより大きいと判定した場合には(ステップS33;Yes)、過負荷判定部23は、スマートNIC94の組込みCPU941が過負荷であると判定する。そして、過負荷判定部23は、NFの実行位置の切り替えを実施すると判断する(ステップS34)。そして、過負荷判定部23は、過負荷判定処理を終了する。
一方、CPU91の負荷loadhostが第1の閾値Thhost以上、または組込みCPU941の負荷loadsnicが第2の閾値Thhost以下と判定した場合には(ステップS33;No)、過負荷判定部23は、過負荷判定処理を終了する。
[切替対象NF決定部のフローチャート]
図17は、実施例に係る切替対象NF決定部のフローチャートの一例を示す図である。なお、切替対象NF決定部24は、過負荷判定部23による過負荷判定後に実行するものとする。また、図17では、アプリケーションのことを「アプリ」と略記する。
切替対象NF決定部24は、スマートNIC94で実行中のNFを、NFインスタンス情報34および実行NF情報35を参照して選択する(ステップS41)。そして、切替対象NF決定部24は、実行NF情報35から、選択したNFの対応アプリ(対象App)を特定する(ステップS42)。
切替対象NF決定部24は、通信統計情報32から、特定したアプリの通信統計情報を取得する(ステップS43)。そして、切替対象NF決定部24は、取得した通信統計情報およびNF負荷係数情報33を用いて、直近m分のNF負荷比較値を算出する(ステップS44)。m分は、例えば5分である。例えば、切替対象NF決定部24は、前述した式(1)および式(2)を用いて、選択したNFのNF負荷比較値を計算する。
そして、切替対象NF決定部24は、スマートNIC94で実行中の全NFのNF負荷比較値を算出したか否かを判定する(ステップS45)。全NFのNF負荷比較値を算出していないと判定した場合には(ステップS45;No)、切替対象NF決定部24は、次のNFを選択すべく、ステップS41に移行する。
一方、全NFのNF負荷比較値を算出したと判定した場合には(ステップS45;Yes)、切替対象NF決定部24は、NF負荷比較値の最小のNFを切替対象のNFとして決定する(ステップS46)。そして、切替対象NF決定部24は、切替対象NF決定処理を終了する。
[NF実行位置切替部のフローチャート]
図18は、実施例に係るNF実行位置切替部のフローチャートの一例を示す図である。なお、NF実行位置切替部25は、切替対象NF決定部24による切替対象NF決定後に実行するものとする。
NF実行位置切替部25は、切替対象NF決定部24によって決定されたNFの現状のインスタンス情報を、実行NF情報35およびNFインスタンス情報34から取得する(ステップS51)。そして、NF実行位置切替部25は、決定したNFのHost上のインスタンス情報を、NFインスタンス情報34から取得する(ステップS52)。
そして、NF実行位置切替部25は、フロー管理部28から、フローテーブル41に記憶されたフロールールを取得する(ステップS53)。そして、NF実行位置切替部25は、決定したNFの現状のインスタンス情報を含むフロールールを削除する(ステップS54)。そして、NF実行位置切替部25は、決定したNFのHost上のインスタンス情報を含むフロールールを追加する(ステップS55)。
そして、NF実行位置切替部25は、データパスのフローテーブル41の更新をフロー管理部28に指示する(ステップS56)。そして、NF実行位置切替部25は、NF実行位置切替処理を終了する。
[実施例の効果]
このようにして、上記実施例では、スマートNIC94が搭載された情報処理装置1は、情報処理装置1で実行する各アプリケーションへの通信情報をアプリケーションごとに記録する。情報処理装置1は、組込みCPU941の使用率が過負荷である場合に、PCIeスイッチ944のフロールールに基づいて各アプリケーションへの通信を処理する各ネットワーク機能の負荷を、通信情報の記録を基に比較する。情報処理装置1は、各ネットワーク機能の負荷が最小のネットワーク機能を選択する。情報処理装置1は、PCIeスイッチ944のフロールールを変更すべく、選択されたネットワーク機能の実行位置を情報処理装置1上のネットワーク機能に切り替える。これにより、スマートNIC94が搭載された情報処理装置1は、通信が増加しても、情報処理装置1上のCPU91およびスマートNIC94内の組込みCPU941のリソースを効率よく利用することができる。
また、情報処理装置1は、各アプリケーションに対する各ネットワーク機能の負荷を、ネットワーク機能の種類、並びに、通信情報の記録から得られるパケット数、パケットサイズおよび通信時間を基に比較する。これにより、情報処理装置1は、各アプリケーション用の各ネットワーク機能の負荷の大きさを求めることができ、求められた各ネットワーク機能の負荷の大きさを比較することで、切替対象のネットワーク機能を決定することが可能となる。
また、情報処理装置1は、各アプリケーションに対する各ネットワーク機能の負荷を、直近の一定時間において、継続して通信した通信情報の記録から得られるパケットサイズごとのパケット数および継続時間、並びに、パケットサイズごとの使用しているネットワーク機能の種類に対する負荷係数を基に負荷比較値を計算する。情報処理装置1は、計算した負荷比較値を比較する。これにより、情報処理装置1は、各アプリケーション用の各ネットワーク機能の負荷の負荷比較値を計算することができ、計算された負荷比較値を比較することで、切替対象のネットワーク機能を決定することが可能となる。
また、情報処理装置1は、情報処理装置1のCPU91の使用率が第1の閾値より小さい場合であって、組込みCPU941の使用率が第2の閾値より大きい場合に、各アプリケーションに対する各ネットワーク機能の負荷を比較する。これにより、情報処理装置1は、CPU91の使用率と、組込みCPU941の使用率とを条件に各ネットワーク機能の負荷を比較し、さらには情報処理装置1に切り替えるネットワーク機能を決定することで、CPUリソースを効率良く利用することが可能となる。例えば、情報処理装置1は、情報処理装置1のCPU91の使用率が第1の閾値より小さい場合を条件とすることで、CPU91で実行する各アプリケーションの処理を妨げないようにすることができる。
[その他]
なお、実施例では、切替対象NF決定部24は、式(1)および式(2)を用いて、各NFのNF負荷比較値を計算すると説明した。しかしながら、切替対象NF決定部24は、式(1)および式(2)に限定されず、各NFの負荷を比較するために用いられる値を計算することができれば良い。すなわち、切替対象NF決定部24は、パケット数、NFの種類、パケットサイズおよび通信時間に限定されず、これら以外の要素を用いて、各NFのNF負荷比較値を計算しても良い。
また、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、過負荷判定部23と、切替対象NF決定部24とを1個の部として統合しても良い。また、通信記録情報31等を記憶する記憶部30を情報処理装置1の外部装置としてネットワーク経由で接続するようにしても良い。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)ネットワークインターフェースカードを搭載した情報処理装置であって、
前記ネットワークインターフェースカードは、
ネットワークスイッチと、
第1のプロセッサと、を有し、
前記第1のプロセッサは、
前記情報処理装置で実行する各アプリケーションへの通信情報をアプリケーションごとに記録する記録部と、
前記第1のプロセッサの使用率が過負荷である場合に、前記ネットワークスイッチのフロールールに基づいて各アプリケーションへの通信を処理する各ネットワーク機能の負荷を、前記通信情報の記録を基に比較する比較部と、
各ネットワーク機能の負荷が最小のネットワーク機能を選択する選択部と、
前記ネットワークスイッチのフロールールを変更すべく、前記選択部によって選択されたネットワーク機能の実行位置を前記情報処理装置のネットワーク機能に切り替える切替部と、を有する
ことを特徴とする情報処理装置。
(付記2)前記比較部は、各アプリケーションに対する各ネットワーク機能の負荷を、ネットワーク機能の種類、並びに、前記通信情報の記録から得られるパケット数、パケットサイズおよび通信時間を基に比較する
ことを特徴とする付記1に記載の情報処理装置。
(付記3)前記比較部は、各アプリケーションに対する各ネットワーク機能の負荷を、直近の一定時間において、継続して通信した通信情報の記録から得られるパケットサイズごとのパケット数および継続時間、並びに、パケットサイズごとの使用しているネットワーク機能の種類に対する負荷係数を基に負荷比較値を計算し、計算した負荷比較値を比較する
ことを特徴とする付記2に記載の情報処理装置。
(付記4)前記比較部は、前記情報処理装置の第2のプロセッサの使用率が第1の閾値より小さい場合であって、前記第1のプロセッサの使用率が第2の閾値より大きい場合に、各アプリケーションに対する各ネットワーク機能の負荷を比較する
ことを特徴とする付記1に記載の情報処理装置。
(付記5)ネットワークスイッチと、プロセッサとを有するネットワークインターフェースカードを搭載するコンピュータで実行する各アプリケーションへの通信情報をアプリケーションごとに記録し、
前記プロセッサの使用率が過負荷である場合に、ネットワークスイッチのフロールールに基づいて各アプリケーションへの通信を処理する各ネットワーク機能の負荷を、前記通信情報の記録を基に比較し、
各ネットワーク機能の負荷が最小のネットワーク機能を選択し、
前記ネットワークスイッチのフロールールを変更すべく、選択したネットワーク機能の実行位置を前記コンピュータのネットワーク機能に切り替える、
処理を前記コンピュータに実行させる過負荷制御プログラム。
(付記6)ネットワークスイッチと、プロセッサとを有するネットワークインターフェースカードを搭載するコンピュータで実行する各アプリケーションへの通信情報をアプリケーションごとに記録し、
前記プロセッサの使用率が過負荷である場合に、ネットワークスイッチのフロールールに基づいて各アプリケーションへの通信を処理する各ネットワーク機能の負荷を、前記通信情報の記録を基に比較し、
各ネットワーク機能の負荷が最小のネットワーク機能を選択し、
前記ネットワークスイッチのフロールールを変更すべく、選択したネットワーク機能の実行位置を前記コンピュータのネットワーク機能に切り替える、
処理を前記コンピュータが実行する過負荷制御方法。
(付記7)情報処理装置に搭載されるネットワークインターフェースカードであって、
ネットワークスイッチと、
プロセッサと、を有し、
前記プロセッサは、
前記情報処理装置で実行する各アプリケーションへの通信情報をアプリケーションごとに記録する記録部と、
前記プロセッサの使用率が過負荷である場合に、前記ネットワークスイッチのフロールールに基づいて各アプリケーションへの通信を処理する各ネットワーク機能の負荷を、前記通信情報の記録を基に比較する比較部と、
各ネットワーク機能の負荷が最小のネットワーク機能を選択する選択部と、
前記ネットワークスイッチのフロールールを変更すべく、前記選択部によって選択されたネットワーク機能の実行位置を前記情報処理装置のネットワーク機能に切り替える切替部と、を有する
ことを特徴とするネットワークインターフェースカード。
1 情報処理装置
10 第1の制御部
11 CPU負荷計測部
12 Pod
13 NF
20 第2の制御部
21 通信記録部
22 通信統計処理部
23 過負荷判定部
24 切替対象NF決定部
25 NF実行位置切替部
26 CPU負荷計測部
27 NF
28 フロー管理部
30 記憶部
31 通信記録情報
32 通信統計情報
33 NF負荷係数情報
34 NFインスタンス情報
35 実行NF情報
40 スイッチ部
41 フローテーブル
50 NF配置管理機構部
91 CPU
92 メモリ
93 HDD
94 スマートNIC
95 PCIeバス
941 組込みCPU
942 NIC
943 メモリ
944 PCIeスイッチ
945 ネットワークポート

Claims (6)

  1. ネットワークインターフェースカードを搭載した情報処理装置であって、
    前記ネットワークインターフェースカードは、
    ネットワークスイッチと、
    第1のプロセッサと、を有し、
    前記第1のプロセッサは、
    前記情報処理装置で実行する各アプリケーションへの通信情報をアプリケーションごとに記録する記録部と、
    前記第1のプロセッサの使用率が過負荷である場合に、前記ネットワークスイッチのフロールールに基づいて各アプリケーションへの通信を処理する各ネットワーク機能の負荷を、前記通信情報の記録を基に比較する比較部と、
    各ネットワーク機能の負荷が最小のネットワーク機能を選択する選択部と、
    前記ネットワークスイッチのフロールールを変更すべく、前記選択部によって選択されたネットワーク機能の実行位置を前記情報処理装置のネットワーク機能に切り替える切替部と、を有する
    ことを特徴とする情報処理装置。
  2. 前記比較部は、各アプリケーションに対する各ネットワーク機能の負荷を、ネットワーク機能の種類、並びに、前記通信情報の記録から得られるパケット数、パケットサイズおよび通信時間を基に比較する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記比較部は、各アプリケーションに対する各ネットワーク機能の負荷を、直近の一定時間において、継続して通信した通信情報の記録から得られるパケットサイズごとのパケット数および継続時間、並びに、パケットサイズごとの使用しているネットワーク機能の種類に対する負荷係数を基に負荷比較値を計算し、計算した負荷比較値を比較する
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記比較部は、前記情報処理装置の第2のプロセッサの使用率が第1の閾値より小さい場合であって、前記第1のプロセッサの使用率が第2の閾値より大きい場合に、各アプリケーションに対する各ネットワーク機能の負荷を比較する
    ことを特徴とする請求項1に記載の情報処理装置。
  5. ネットワークスイッチと、プロセッサとを有するネットワークインターフェースカードを搭載するコンピュータで実行する各アプリケーションへの通信情報をアプリケーションごとに記録し、
    前記プロセッサの使用率が過負荷である場合に、ネットワークスイッチのフロールールに基づいて各アプリケーションへの通信を処理する各ネットワーク機能の負荷を、前記通信情報の記録を基に比較し、
    各ネットワーク機能の負荷が最小のネットワーク機能を選択し、
    前記ネットワークスイッチのフロールールを変更すべく、選択したネットワーク機能の実行位置を前記コンピュータのネットワーク機能に切り替える、
    処理を前記コンピュータに実行させる過負荷制御プログラム。
  6. ネットワークスイッチと、プロセッサとを有するネットワークインターフェースカードを搭載するコンピュータで実行する各アプリケーションへの通信情報をアプリケーションごとに記録し、
    前記プロセッサの使用率が過負荷である場合に、ネットワークスイッチのフロールールに基づいて各アプリケーションへの通信を処理する各ネットワーク機能の負荷を、前記通信情報の記録を基に比較し、
    各ネットワーク機能の負荷が最小のネットワーク機能を選択し、
    前記ネットワークスイッチのフロールールを変更すべく、選択したネットワーク機能の実行位置を前記コンピュータのネットワーク機能に切り替える、
    処理を前記コンピュータが実行する過負荷制御方法。
JP2021072375A 2021-04-22 2021-04-22 情報処理装置、過負荷制御プログラムおよび過負荷制御方法 Pending JP2022166934A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021072375A JP2022166934A (ja) 2021-04-22 2021-04-22 情報処理装置、過負荷制御プログラムおよび過負荷制御方法
US17/565,565 US11695700B2 (en) 2021-04-22 2021-12-30 Information processing apparatus, computer-readable recording medium storing overload control program, and overload control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021072375A JP2022166934A (ja) 2021-04-22 2021-04-22 情報処理装置、過負荷制御プログラムおよび過負荷制御方法

Publications (1)

Publication Number Publication Date
JP2022166934A true JP2022166934A (ja) 2022-11-04

Family

ID=83694610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021072375A Pending JP2022166934A (ja) 2021-04-22 2021-04-22 情報処理装置、過負荷制御プログラムおよび過負荷制御方法

Country Status (2)

Country Link
US (1) US11695700B2 (ja)
JP (1) JP2022166934A (ja)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2509000A4 (en) * 2009-12-04 2017-09-20 Nec Corporation Server and flow control program
US9654406B2 (en) 2012-12-26 2017-05-16 Realtek Singapore Pte Ltd Communication traffic processing architectures and methods
EP2782318A1 (en) * 2013-03-18 2014-09-24 Koninklijke KPN N.V. Allocating resources between network nodes for providing a network node function
CN104349380B (zh) * 2013-08-08 2018-12-04 中兴通讯股份有限公司 信息交互、分流处理方法、装置、基站、rnc及终端
US9887882B2 (en) * 2015-06-12 2018-02-06 At&T Intellectual Property I, L.P. Referent system for devices of an NFV network
US10397117B2 (en) * 2016-03-10 2019-08-27 Sandvine Corporation System and method for packet distribution on a network
EP3493468A4 (en) * 2016-08-31 2019-06-12 Huawei Technologies Co., Ltd. NETWORK FUNCTION PROCESSING METHOD, AND DEVICE THEREOF
US20180109471A1 (en) * 2016-10-13 2018-04-19 Alcatel-Lucent Usa Inc. Generalized packet processing offload in a datacenter
US10382346B2 (en) * 2017-10-24 2019-08-13 Cisco Technology, Inc. Method and device for offloading processing of data flows
US11102139B1 (en) * 2018-09-05 2021-08-24 Amazon Technologies, Inc. Shared queue management utilizing shuffle sharding
US20200099628A1 (en) * 2018-11-29 2020-03-26 Intel Corporation TRAFFIC RATE LIMITING FOR VMs WITH MULTIPLE VIRTUAL FUNCTIONS
JP7439767B2 (ja) 2018-12-10 2024-02-28 日本電気株式会社 ネットワークインタフェースカード、コンピュータ、回路情報の書き換え方法及びプログラム
US11150963B2 (en) * 2019-02-28 2021-10-19 Cisco Technology, Inc. Remote smart NIC-based service acceleration
US20200177660A1 (en) * 2020-02-03 2020-06-04 Intel Corporation Offload of streaming protocol packet formation
US11570262B2 (en) * 2020-10-28 2023-01-31 Oracle International Corporation Methods, systems, and computer readable media for rank processing for network function selection
US20210144094A1 (en) * 2020-11-09 2021-05-13 Namrata Limaye Extension of openvswitch megaflow offloads to hardware to address hardware pipeline limitations
US20220210685A1 (en) * 2020-12-31 2022-06-30 SMVData Inc. Adaptable and scalable intelligent network packet broker system

Also Published As

Publication number Publication date
US20220345407A1 (en) 2022-10-27
US11695700B2 (en) 2023-07-04

Similar Documents

Publication Publication Date Title
US11379443B2 (en) Detecting outliers in server transaction time as a form of time series data
US10791168B1 (en) Traffic aware network workload management system
US7773522B2 (en) Methods, apparatus and computer programs for managing performance and resource utilization within cluster-based systems
US11405309B2 (en) Systems and methods for selecting communication paths for applications sensitive to bursty packet drops
US9122537B2 (en) Balancing server load according to availability of physical resources based on the detection of out-of-sequence packets
KR101906632B1 (ko) 네트워크 사용 제어 기법
US8613085B2 (en) Method and system for traffic management via virtual machine migration
US8656406B2 (en) Load balancer and load balancing system
US20100274890A1 (en) Methods and apparatus to get feedback information in virtual environment for server load balancing
US11265389B2 (en) System and method for computation of user experience score for virtual apps and desktop users
US20080219258A1 (en) Load balancing in data networks
KR20170060118A (ko) 분류된 네트워크 스트림의 관리
JP6272190B2 (ja) 計算機システム、計算機、負荷分散方法及びそのプログラム
US20180285169A1 (en) Information processing system and computer-implemented method
US11477102B2 (en) Upgrading user space networking stacks without disruptions to network traffic
US20220318071A1 (en) Load balancing method and related device
WO2018003031A1 (ja) 仮想化管理プログラム、仮想化管理装置および仮想化管理方法
CN109039933B (zh) 一种集群网络优化方法、装置、设备及介质
CN112416594A (zh) 一种微服务分配方法、电子设备和计算机存储介质
KR20160025926A (ko) 가상 응용서버들로 부하를 분산하는 장치 및 방법
JP2022166934A (ja) 情報処理装置、過負荷制御プログラムおよび過負荷制御方法
JP2019028673A (ja) 管理装置および管理方法
JP7255675B2 (ja) 仮想マシン監視装置、仮想マシン監視方法およびプログラム
US11716393B1 (en) Switching connectors for establishing sessions to access services according to network conditions
EP4339777A1 (en) Systems and methods for automatically scaling clusters or applications in a cloud environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240111