JP2018139368A - 通信装置および通信方法 - Google Patents

通信装置および通信方法 Download PDF

Info

Publication number
JP2018139368A
JP2018139368A JP2017033641A JP2017033641A JP2018139368A JP 2018139368 A JP2018139368 A JP 2018139368A JP 2017033641 A JP2017033641 A JP 2017033641A JP 2017033641 A JP2017033641 A JP 2017033641A JP 2018139368 A JP2018139368 A JP 2018139368A
Authority
JP
Japan
Prior art keywords
time
queue length
queue
value
stroke
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
JP2017033641A
Other languages
English (en)
Inventor
哲明 鶴岡
Tetsuaki Tsuruoka
哲明 鶴岡
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 JP2017033641A priority Critical patent/JP2018139368A/ja
Publication of JP2018139368A publication Critical patent/JP2018139368A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】キュー長の変動の特徴の通知に使用するデータ量を削減する。【解決手段】通信装置は、計測部、特定部、選択部、送信部を備える。計測部は、メモリの所定領域に書き込まれたパケット量を示すキュー長を計測する。特定部は、所定期間での第1の閾値以上のキュー長の増加が開始する第1の時刻から、所定期間での第2の閾値以上のキュー長の減少が開始する第2の時刻までの期間を、キュー長が増加傾向にある期間として特定する。選択部は、第1の時刻、第1の時刻に得られたキュー長、第2の時刻、および、第2の時刻に得られたキュー長を、キュー長を管理する管理装置への通知対象の情報に選択する。送信部は、通知対象の情報を送信する。【選択図】図1

Description

本発明は、通信装置と通信方法に関する。
インターネットなどのネットワークには、サーバ、パソコン、携帯端末など、多種の端末が接続され、さらに、ルータやスイッチなどの中継処理を行う装置も含まれている。ネットワークに接続する装置や中継処理を行う装置は、パケット単位で通信しており、いずれも処理待ちのパケットを保持するキューを使用することにより、処理待ちのパケットの廃棄を防止している。しかし、処理待ちのパケットの量がキューに保持可能なパケットの量を超えると、キューに保持されないパケットは廃棄されてしまうため、パケットロスが発生する。そこで、キューに保持されているパケットの量(キュー長)に関する情報がモニタされることがある。例えば、キュー溢れによるパケットロスの発生数を監視する方法、所定の監視タイミングでキュー長を記録する方法などが知られている。また、パケットがキューに追加される時点でのキューの最大値を監視する方法も知られている。
ところで、近年、プロセッサの性能が向上したことなどにより、1つの物理サーバ上で複数の仮想マシンを動作させ、仮想ネットワークを実現することもある。仮想ネットワークでもパケットの送受信や中継処理が行われるが、これらの処理はソフトウェアによって実現されることが多い。ソフトウェアによる処理の場合、ソフトウェアを実行しているプロセッサでの割り込み処理の発生や、オペレーティングシステムのスケジューリングなどに起因して、パケットの送受信や中継の速度が変動することがある。このため、ソフトウェアによって実現されるキューでは、物理サーバなどの物理的な装置で生成されているネットワークよりも、キュー長の変動が激しくなりやすく、リアルタイムにキュー長の変動を観測することが望ましい。
関連する技術として、ストレージレベルプール情報の空き容量の枯渇の危険性と、サーバレベルプール情報の空き容量の枯渇の危険性を判定し、得られた危険性に関する情報を表示する管理システムが提案されている(例えば、特許文献1)。輻輳が発生している無線通信装置において、無線リソースを排他的に使用してパケットを送信することができる時間を延長する制御方法も提案されている(例えば、特許文献2)。
特許5756240号 国際公開第2012/127597号
キュー溢れによるパケットロスの発生数の監視やパケットがキューに追加される時点でのキューの最大値の監視を行っても、パケットロスが発生するまでのキュー長の変化に関する情報が得られないので、システムの管理を行うための情報としては不十分である。所定の監視周期でキュー長を記録する方法を用いても、キュー長の変動が短時間で起こる場合にはキュー長の変動を捕らえるのは困難である。しかし、キューを備えている装置がリアルタイムにキュー長の変動を監視して、得られた計測結果を管理用の情報として用いると、観測データ量が膨大であるため、システムの管理を行う管理装置等に送信するデータ量も膨大になってしまう。
本発明は、1つの側面では、キュー長の変動の特徴の通知に使用するデータ量を削減することを目的とする。
ある1つの態様にかかる通信装置は、計測部、特定部、選択部、送信部を備える。計測部は、メモリの所定領域に書き込まれたパケット量を示すキュー長を計測する。特定部は、所定期間での第1の閾値以上の前記キュー長の増加が開始する第1の時刻から、前記所定期間での第2の閾値以上の前記キュー長の減少が開始する第2の時刻までの期間を、前記キュー長が増加傾向にある期間として特定する。選択部は、前記第1の時刻、前記第1の時刻に得られたキュー長、前記第2の時刻、および、前記第2の時刻に得られたキュー長を、前記キュー長を管理する管理装置への通知対象の情報に選択する。送信部は、前記通知対象の情報を送信する。
キュー長の変動の特徴の通知に使用するデータ量が削減される。
実施形態にかかる通知情報の作成方法を説明する図である。 システムの例を説明する図である。 仮想ネットワークの例を説明する図である。 通信装置の構成の例を説明する図である。 通信装置のハードウェア構成の例を説明する図である。 キュー管理情報の例を説明する図である。 第1の実施形態にかかるストロークの検出方法の例を説明する図である。 ストローク統計情報の例を説明する図である。 検出方法の例を説明するフローチャートである。 検出方法の例を説明するフローチャートである。 第1の実施形態にかかる検出方法の例を説明する図である。 第2の実施形態にかかるストロークの検出方法の例を説明する図である。 キュー管理情報とストローク統計情報の例を説明する図である。 検出方法の例を説明するフローチャートである。 検出方法の例を説明するフローチャートである。 第2の実施形態にかかる検出方法の例を説明する図である。 ストロークの検出方法の変形例を説明する図である。 ストローク長の最大値の取得方法の例を説明する図である。 ストローク長の最大値の変更処理の例を説明する図である。 キューと管理情報の例を説明する図である。
図1は、実施形態にかかる通知情報の作成方法を説明する図である。図1のグラフは、通信装置20が備えるあるキューに格納されている未処理のパケットの量の時間変化の例である。以下の説明では、観測対象のキューに格納されている未処理のパケットの量のことを「キュー長」と記載することがある。
実施形態にかかる方法では、通信装置20は、リアルタイムなキュー長の変化を特定可能な程度の時間間隔でキュー長を測定する。通信装置20は、得られた測定結果から、未処理のパケットを保持するキューの長さが増加傾向にある期間と、増加傾向の開始時と終了時のキュー長の組み合わせを特定する。
未処理のパケットを保持するキューの長さが増加傾向にある期間の開始時刻は、例えば、1回の測定間隔での閾値以上のキューの増加が開始した時点とすることができる。図1の例では、Aに示す観測データでのキュー長は、観測中に得られたキュー長の最小値(min値)であるとする。また、観測データBは、観測データAの計測以降でそのキュー長が、観測データAで得られたキュー長よりも閾値以上大きな値である最初の観測データとする。すると、観測データAが得られた時刻から観測データBが得られた時刻までの期間でキューの増加が閾値以上となっており、キュー長の増加は観測データAの観測時刻から始まっていると考えられる。このため、観測データAの観測時刻が1回の測定間隔での閾値以上のキューの増加が開始した時点となる。従って、図1の例では、未処理のパケットを保持するキューの長さが増加傾向にある期間の開始時刻は、Aに示すデータの観測時刻である。
一方、未処理のパケットを保持するキューの長さが増加傾向にある期間の終了時刻は、例えば、1回の測定間隔での閾値以上のキューの減少が開始した時点とすることができる。なお、キュー長の減少量と比較する閾値の値は、キュー長の増加量との比較に使用する閾値と同じであっても良く、また、異なる値であっても良い。例えば、Cに示す観測データでのキュー長は、観測中に得られたキュー長の最大値(max値)であるとする。また、観測データDは、観測データCの計測以降に観測データCで得られたキュー長よりも閾値以上小さな値である最初の観測データとする。すると、観測データCが得られた時刻から観測データDが得られた時刻までの期間でキューの減少が閾値以上となっており、キュー長の減少は観測データCの観測時刻から始まっていると考えられる。このため、観測データCの観測時刻が1回の測定間隔での閾値以上のキューの減少が開始した時点となる。従って、図1の例では、未処理のパケットを保持するキューの長さが増加傾向にある期間の終了時刻は、Cに示すデータの観測時刻である。
図1中の太い破線の矢印Eは、未処理のパケットを保持するキューの長さが増加傾向にある期間でのキュー長の変動の傾向を示している。以下の説明では、未処理のパケットを保持するキューの長さが増加傾向にある期間でのキュー長の変動の傾向のことを「ストローク」と記載することがある。図1の場合、観測されたストロークは、矢印Eに示すように、観測データAと観測データCの時点を結ぶ矢印となる。
ここで、ストロークは、キューの長さが増加傾向にある期間でのキュー長の変化の速度を表わしているので、キュー溢れ等の対策を行う際に有益な情報である。また、キュー長の増加とキュー長の減少のいずれについても、所定の閾値以上の変動が起こらない場合には、ストロークの始点や終点としては認識されない。このため、キュー長に対する閾値未満の大きさの変動によって、キューの長さの変動傾向の開始や終了が特定されずにすむので、キューの長さの変動の傾向をつかみやすい。例えば、図1の例では、観測データAが得られる前にも、キュー長の増減が2回観測されているが、いずれも閾値未満での増減であるため、ストロークには含められていない。従って、観測データAが得られる前に観測されているキュー長の小さな変化は、キューの長さの増加傾向としては認識されない。同様に、矢印Eに示す区間中でも、閾値未満の大きさでのキュー長の減少は3回起こっているが、いずれも閾値未満での増減であるため、ストロークの終了とは認識されない。
このように、実施形態にかかる方法では、軽微なキュー長の変動を省略して、キュー長の変動の傾向を見やすくすることができる。さらに、ストロークには軽微なキュー長の変動が含まれていないので、ストロークの情報を通信装置20が管理装置等に送信したとしても、送信対象のデータは膨大にならない。このため、実施形態にかかる方法では、管理装置での処理負荷や、通信装置20と管理装置の間の通信路の負荷が軽減される。
<システム構成例と通信装置の構成の例>
図2は、システムの例を説明する図である。図2に示すネットワークの例では、インターネット6を介して、クライアント2(2a〜2c)の各々が、通信装置20と通信している。通信装置20はデータセンタネットワーク8に含まれている装置であって、サーバとして動作しているとする。通信装置20は、管理ネットワーク12を介して管理装置10によって管理されている。管理装置10は、例えば、通信装置20が備えるキューの長さの変更などの処理を行うことができるものとする。クライアント2aとクライアント2bは、企業内などに設けられたLAN(Local Area Network)4中に位置しており、LAN4やインターネット6に含まれている中継装置を介して通信装置20と通信する。なお、クライアント2cのように無線アクセスネットワークに位置していない装置でも、実施形態にかかる通信方法が適用可能である。同様に、通信装置20と通信する装置は、インターネット6を介さずに通信装置20と通信しても良い。
実施形態にかかる計測方法は、通信装置20だけでなく、LAN4やインターネット6中の中継装置やクライアント2などに適用されても良い。ただし、LAN4やインターネット6中の中継装置において、ストロークの観測が行われた場合は、中継装置の制御を行う装置に対して、得られた観測結果が送信される。同様に、クライアント2などでストロークの観測が行われた場合、得られた観測結果は、ユーザやオペレータが認識可能となる任意の方法で出力され得る。
図3は、通信装置20において生成されている仮想ネットワークの例を説明する図である。通信装置20は、ハイパーバイザ33を動作させることにより、仮想マシン60(60a、60b)を実現する。また、通信装置20は、NIC(Network Interface Card)21を備えている。
ハイパーバイザ33は、NIC21(21a、21b)とドライバ25(25a、25b)を介して、パケットの送受信を行う。送信処理待ちのパケットは、適宜、キュー28(28a、28b)に格納される。ドライバ25aやドライバ25bを介して受信されたパケットは、ブリッジ処理部31(31a、31b)とIP(Internet Protocol)処理部32での処理により、仮想リンク部40(40a〜40d)を介して、宛先の仮想マシン60に転送される。仮想マシン60は、仮想リンク部40と仮想NIC61(61a〜61d)を介して、パケットの送受信を行う。仮想マシン60での受信処理待ちのパケットは、キュー41(41a〜41d)に格納される。一方、仮想マシン60から送信されてブリッジ処理部31での中継処理待ちのパケットは、キュー42(42a〜42d)に適宜、格納される。
なお、図3は、仮想ネットワークの一例に過ぎない。例えば、1台の通信装置20で実現される仮想マシン60の数は任意である。また、使用されるオペレーションシステム(Operating System、OS)の種類等によっては、キュー41やキュー42は省略され得る。同様に、キュー28だけでなく、ハイパーバイザ33での受信処理待ちに使用するキューが設けられても良い。なお、図3の例では、ハイパーバイザ33での受信処理待ちに使用するキューは、NIC21に備えられていても良い。
図4は、通信装置20の構成の例を説明する図である。通信装置20は、NIC21、ホストOS処理部35、統計処理部44、ストローク統計情報72を備え、任意の数の仮想マシン60を動作させることができる。図4の例では、NIC21(21a、21b)は送信バッファ22(22a、22b)と受信バッファ23(23a、23b)を有する。送信バッファ22は、NIC21での送信処理の際のパケットのバッファリングに用いられ、受信バッファ23は、NIC21での受信処理の際のパケットのバッファリングに用いられる。
ホストOS処理部35は、ドライバ25(25a、25b)、仮想スイッチ部30、仮想リンク部40(40a、40b)、転送処理部43(43a、43b)、ストローク検出部50(50a、50b)を備える。ドライバ25(25a、25b)は、送信部26(26a、26b)と受信部27(27a、27b)を備える。送信部26はパケット送信のための処理を行い、受信部27はパケットの受信のための処理を行う。仮想スイッチ部30は、パケットの宛先に応じたスイッチングを行う。なお、仮想スイッチ部30には、図3に示すブリッジ処理部31やIP処理部32が含まれている。
仮想リンク部40bは、キュー管理情報71とキュー41bを含む。ストローク検出部50bは、計測部51、特定部52、選択部53を有する。計測部51は、定期的にキュー41bのキュー長を観測する。特定部52は、計測部51での計測によって得られたキュー長のうち、暫定的に所定期間の観測での最長のキュー長または最短のキュー長として特定されたときの値や計測時刻をキュー管理情報71に記録する。従って、キュー管理情報71は、キュー41bに対するキュー長の観測結果のうち、暫定的に所定期間の観測での最長のキュー長または最短のキュー長として特定されたときの値や計測時刻を保持している。特定部52は、キュー管理情報71を用いて、ストロークの開始点と終了点を特定する。特定部52は、ストロークの開始点と終了点の各々が観測された時刻と、ストロークの開始点と終了点の各々でのキュー長をストローク統計情報72に記録する。選択部53は、ストローク統計情報72に記録された情報を、管理装置10に送信する対象として選択する。
統計処理部44は、ストローク統計情報72に含まれている情報に対する統計処理を行う。例えば、統計処理部44は、所定の期間中に得られたストロークの中からキュー長が最長に達したものを選択できる。なお、統計処理部44はオプションであり、統計処理が行われない通信装置20では、統計処理部44を備えていなくてもよい。なお、統計処理部44が含まれている通信装置20においては、選択部53は、統計処理部44の処理によって得られた情報を、管理装置10への通知対象として選択する。
仮想マシン60は、仮想NIC61、OS処理部64、アプリケーション処理部67(67a、67b)を備える。OS処理部64は、ドライバにより送信部65と受信部66を実現する。送信部65は仮想NIC61を介した送信処理を行うことにより、通信装置20中で実現されている他の仮想マシン60や通信装置20の外部の装置にパケットを送信できる。受信部66は仮想NIC61を介した受信処理を行うことにより、通信装置20中で実現されている他の仮想マシン60や通信装置20の外部の装置からパケットを受信する。アプリケーション処理部67は、アプリケーションを用いてパケット中のデータを処理し、適宜、送信パケットを生成する。
なお、図4では、紙面の関係上、一部のリンクと一部のキューを図示しているが、通信装置20で実装される仮想リンク部40の数やキューの数は、実装に応じて任意に変更され得る。また、図4では、キュー41bとキュー41bのキュー長の処理に使用されるストローク検出部50などを図示しているが、他の仮想リンクにもキュー41やそのキュー41のキュー長に関する処理を行うストローク検出部50等が備えられている。さらに、仮想マシン60から送信されたパケットの送信に使用されるキュー42(図3)に対しても、そのキュー42のキュー長に関する処理を行うためのストローク検出部50等が備えられても良い。
図5は、通信装置20のハードウェア構成の例を説明する図である。通信装置20は、プロセッサ101、メモリ102、バスコントローラ103、I/O(Input/Output)バス、ネットワーク接続装置108、タイマ109を備える。さらに、通信装置20は、オプションとして、ストレージ装置104、ストレージI/O105(105a、105b)、ディスプレイI/O106、I/O107を備えても良い。プロセッサ101は、任意のプロセッサであり、例えば、Central Processing Unit(CPU)とすることができる。なお、図5では、図を簡略化するためにプロセッサ101を1つ図示しているが、通信装置20に含まれているプロセッサ101の数は任意である。また、通信装置20に含まれるプロセッサ101が1つであっても、プロセッサ101に含まれているプロセッサコアの数が複数であっても良い。
プロセッサ101は、仮想マシン60、ホストOS処理部35、統計処理部44として動作する。プロセッサ101は、適宜、メモリ102やストレージ装置104に格納されたプログラムを読み込み、メモリ102をワーキングメモリとして用いて処理を行う。メモリ102は、Random Access Memory(RAM)とRead Only Memory(ROM)を含む。メモリ102は、キュー管理情報71とストローク統計情報72を格納する他、キュー41、キュー42などとして動作する。さらに、メモリ102は、プロセッサ101の処理に用いられるデータや、プロセッサ101の処理により得られたデータなどを保持する。
バスコントローラ103は、プロセッサ101とメモリ102を、データの入出力が可能なように接続する。また、ストレージI/O105、ディスプレイI/O106、I/O107は、通信装置20と通信装置20に接続されたディスプレイ113や入力装置110、光学ディスクドライブ111を、データの入出力が可能なように接続する。光学ディスクドライブ111は、適宜、可搬記憶媒体112からのデータの読み込みや可搬記憶媒体112へのデータの書き込みに使用されうる。プロセッサ101は、可搬記憶媒体112に記録されたプログラムを実行しても良い。
<第1の実施形態>
以下、図4に示すキュー41bに格納されているパケットの量が、図1のキュー長のグラフに示すとおりに経時変化する場合を例として、ストロークの検出方法を説明する。
図6は、キュー管理情報71の例を説明する図である。キュー管理情報71は、min値の観測時刻、min値、max値の観測時刻、max値を含む。ここで、min値は、ストロークの開始点を検索している期間中に得られたキュー長の最小値の暫定値である。従って、min値は、そのキュー管理情報71が更新された時点における、ストロークの開始時点でのキュー長の候補である。min値の観測時刻は、計測部51の計測によって、min値が得られた時刻である。max値は、ストロークの終了点を検索している期間中に得られたキュー長の最大値の暫定値である。従って、max値は、そのキュー管理情報71が更新された時点における、“ストロークの終了時点でのキュー長”の候補である。max値の観測時刻は、計測部51の計測によって、max値が得られた時刻である。
図6中に示すキュー管理情報71_1〜71_10は、キュー管理情報71に記録されている情報の経時変化である。以下、図6と図7を適宜参照しながら、キュー管理情報71に記録されている情報の更新の例を説明する。
図7は、第1の実施形態にかかるストロークの検出方法の例を説明する図である。以下の説明では、分かりやすくするために、キュー41bを用いた通信が開始したときから、時系列に沿って説明する。キュー41bを用いた通信が開始した時点では、キュー管理情報71が初期化されているので、キュー管理情報71には、min値、min値の観測時刻、max値、max値の観測時刻のいずれも保持されていない。キュー41bを用いた通信が開始すると、キュー41bには、仮想スイッチ部30から仮想マシン60b宛のパケットとして入力されたパケットのうち、転送処理部43bでの処理を待っているパケットが格納される。計測部51は、計測周期ごとに、キュー41bのキュー長を計測する。
時刻t1において、計測部51がキュー41bのキュー長を測定したとする。しかし、時刻t1の時点ではキュー41bに格納されているパケットが無いとする。すると、計測部51は、時刻t1でのキュー長を0と判定する。特定部52は、計測部51での計測結果を、これまでに得られているキュー長の最小値と比較する。時刻t1の時点では、キュー管理情報71にはmin値が記録されていないので、特定部52は、時刻t1で得られた値を暫定的なmin値として記録すると共に、時刻t1を暫定的なmin値の観測時刻とする。このため、時刻t1での測定によって、キュー管理情報71_1(図6)が得られる。
図7の時刻t2において計測部51がキュー41bのキュー長を測定したとする。時刻t2の時点では、計測部51は、キュー長がy1であると計測する。特定部52は、得られたキュー長=y1をmin値と比較し、min値を更新するかを決定する。キュー長=y1のほうがmin値(キュー長=0)よりも大きいので、特定部52は、min値やmin値の観測時刻を更新しない。さらに、特定部52は、得られたキュー長y1を、ストロークの開始判定に使用する閾値Th1と比較することにより、ストロークが開始したかを判定する。特定部52は、キュー長が閾値Th1以上であれば、ストロークが開始したと判定する。閾値Th1の決定方法については後述する。図7の例では、y1は閾値Th1未満であるとする。このため、特定部52はストロークがまだ開始していないと判定する。ストロークが開始するまでは、max値の検索は行われない。また、キュー管理情報71_1は時刻t2の測定結果によっては更新されない。
時刻t3において、計測部51がキュー41bのキュー長を測定したとする。時刻t3の時点でも、キュー41bに格納されているパケットが無いとする。すると、特定部52は、時刻t3でのキュー長=0を、これまでに得られているmin値と比較する。時刻t3で得られたキュー長は0であり、キュー管理情報71_1に記録されているmin値も0である。このため、特定部52は、時刻t3でもmin値が得られたと判定して、min値の観測時刻を更新する。このため、時刻t3での測定によって、キュー管理情報71_1はキュー管理情報71_2(図6)に示すように更新される。
時刻t3での計測後も、同様の処理によりキュー長の計測や、キュー管理情報71の更新が行われる。例えば、時刻t4においても、計測部51がキュー41bのキュー長=0を測定したとする。すると、時刻t3の計測結果が得られたときと同様の処理が特定部52によって行われるので、キュー管理情報71_2はキュー管理情報71_3(図6)に示すように更新される。
図7の時刻t5において計測部51がキュー41bのキュー長を測定したとする。時刻t5の時点では、計測部51は、キュー長がTh1であると計測したとする。特定部52は、得られたキュー長=Th1がmin値より大きいので、min値を更新しない。一方、特定部52は、得られたキュー長が閾値Th1に達したので、ストロークが開始したと判定する。
すると、特定部52は、ストロークの終点の検索を開始する。ストロークの終点の検索の際には、特定部52は、max値を検索する。max値の検索の際には、特定部52は、計測部51で得られた計測値をmax値と比較し、より大きい値を暫定的なmax値とする。時刻t5の計測結果を用いた更新前は、キュー管理情報71はキュー管理情報71_3に示すとおりであり、max値は記録されていない。そこで、特定部52は、キュー長=Th1をmax値とすると共に、時刻t5をmax値の計測時刻に設定する。このため、キュー管理情報71_3はキュー管理情報71_4に示すように更新される。
時刻t6において計測部51がキュー41bのキュー長がy3であると計測したとする。特定部52は、キュー長=y3を、キュー管理情報71_4に記録されているmax値である閾値Th1と比較する。図7の例では、y3は閾値Th1よりも大きな値である。このため、特定部52は、キュー管理情報71_4中のmax値をy3に更新し、さらに、max値の観測時刻をt6に更新する。従って、時刻t6での測定結果により、キュー管理情報71_5(図6)が得られる。
時刻t7において計測部51がキュー41bのキュー長がy2であると計測したとする。特定部52は、キュー長=y2を、キュー管理情報71_5に記録されているmax値(y3)と比較する。図7の例では、y2はy3よりも小さな値である。このため、特定部52は、キュー管理情報71中のmax値やmax値の観測時刻を更新しない。
特定部52は、max値を更新しない場合、キュー管理情報71_5に記録されているmax値と最新のキュー長の差分値を、ストロークの終点の検出に使用する閾値Th2と比較する。特定部52は、max値とキュー長の差分値が閾値Th2以上であれば、ストロークが終了したと判定する。図7の例では、差分値=y3−y2は閾値Th2未満であったとする。すると、特定部52は、まだストロークの終点を発見していないと判定し、max値の検索を継続する。従って、時刻t7において、キュー管理情報71_5は更新されない。
時刻t8において計測部51がキュー41bのキュー長がy3であると計測したとする。特定部52は、キュー長=y3がキュー管理情報71_5に記録されているmax値(y3)と同じ値であると判定する。そこで、特定部52は、キュー管理情報71_5中のmax値の観測時刻をt8に更新する。従って、キュー管理情報71_5がキュー管理情報71_6(図6)に更新される。
時刻t9において計測部51がキュー41bのキュー長がy5であると計測したとする。特定部52は、キュー長=y5がキュー管理情報71_6に記録されているmax値(y3)より大きいので、キュー管理情報71_6中のmax値をy5、max値の観測時刻をt9に更新する。従って、キュー管理情報71_6は、キュー管理情報71_7(図6)に示すように更新される。
時刻t10において、計測部51はキュー41bのキュー長がy4であると計測したとする。特定部52は、キュー長=y4がキュー管理情報71_7に記録されているmax値(y5)よりも小さいので、max値やmax値の観測時刻を更新しない。次に、特定部52は、キュー管理情報71_7に記録されているmax値(y5)と最新のキュー長(y4)の差分値(y5−y4)を、ストロークの終点の検出に使用する閾値Th2と比較する。図7の例では、差分値(y5−y4)は閾値Th2より小さいので、特定部52は、ストロークの終点に至っていないと判定し、max値の検索を継続する。従って、キュー管理情報71_7は更新されない。
時刻t11において、計測部51はキュー41bのキュー長がy7であると計測したとする。すると、キュー長=y7はキュー管理情報71_7中のmax値(y5)よりも大きいので、時刻t9での計測後の処理と同様の処理により、キュー管理情報71_7は、キュー管理情報71_8(図6)に示すように更新される。
時刻t12において、計測部51はキュー41bのキュー長がy6であると計測したとする。キュー長=y6はキュー管理情報71_8に記録されているmax値(y7)よりも小さいので、時刻t10での計測後の処理と同様の処理が行われる。図7の例では、キュー管理情報71_8に記録されているmax値(y7)と最新のキュー長(y6)の差分値(y7−y6)は閾値Th2より小さいので、特定部52は、ストロークの終点に至っていないと判定し、max値の検索を継続する。
時刻t13において、計測部51はキュー41bのキュー長がy8であると計測したとする。すると、キュー長=y8はキュー管理情報71_8中のmax値よりも大きいので、時刻t9での計測後の処理と同様の処理により、キュー管理情報71_8は、キュー管理情報71_9(図6)に示すように更新される。
時刻t14において、計測部51はキュー41bのキュー長が(y8−Th2)であると計測したとする。キュー長=(y8−Th2)はキュー管理情報71_9に記録されているmax値(y8)よりも小さいので、キュー管理情報71中のmax値やmax値の観測時刻は更新されない。図7の例では、時刻t14において、キュー管理情報71_9に記録されているmax値(y8)と最新のキュー長(y8−Th2)の差分値は閾値Th2と同じ値である。そこで、特定部52は、キュー管理情報71_9に記録されているmax値がストロークの終点であると判定し、得られたストロークの情報を、ストローク統計情報72に記録する。ここで、ストローク統計情報72中のストロークの情報として、ストロークの始点の観測時刻、ストロークの始点でのキュー長、ストロークの終点の観測時刻、ストロークの終点でのキュー長が記録される。ストローク統計情報72の例やストローク統計情報72を用いた処理の例については、図8を参照しながら後述する。
特定部52は、ストロークの終点の検出が終わると、新たなストロークの始点の検索を開始する。ここで、次に発生するストロークの始点でのキュー長は、検出済みのストロークの始点で得られたキュー長以下であるとは限らない。例えば、転送処理部43bでの転送処理の速さが、仮想スイッチ部30からキュー41bへのパケットの蓄積の速さに追いつかなくなると、キュー41b中のパケットの蓄積量が0になる前に新たなストロークが発生する可能性がある。そこで、特定部52は、新たなストロークの始点の検索のために、キュー管理情報71中のmin値を最新のキュー長の観測結果を用いて更新する。
時刻t14での計測時には、最新のキュー長は(y8−Th2)である。そこで、特定部52は、時刻t14での計測を用いたストロークの終点に伴い、キュー管理情報71_9のmin値を(y8−Th2)に設定すると共に、min値の観測時刻を時刻t14に設定する。このため、キュー管理情報71_9は、キュー管理情報71_10(図6)に示すように更新される。その後、新たなストロークの検出のために行われる処理は、図7を参照しながら説明した時刻t2〜t5での計測処理やキュー長の計測後の処理と同様である。
図6、図7の説明では、ストロークの検出の際に、閾値Th1と閾値Th2を使用しているが、第1の実施形態でも、閾値Th1と閾値Th2の値は同じであっても良く、また、互いに異なっていても良い。閾値Th1と閾値Th2の値のうちの小さい方の値は、特定しようとするストロークの大きさの最小値に相当する。閾値Th1と閾値Th2のいずれも観測対象のキューに格納可能なパケットの容量に応じて決定されても良い。閾値Th1や閾値Th2は、処理対象のキューに格納可能なパケット数を基準として、例えば、処理対象のキューに格納可能なパケット数の1/n(nは任意の正の値)に設定されても良い。また、閾値Th1と閾値Th2のいずれも、64パケットなどの具体的な値で設定されても良い。換言すると、閾値Th1と閾値Th2は、バースト的なパケットの送受信としてシステムにおいて監視するパケットの連続数であるといえる。
図8は、ストローク統計情報72の例を説明する図である。ストローク統計情報72は、検出されたストロークの始点の観測時刻(始点時刻)、ストロークの始点でのキュー長、ストロークの終点の観測時刻(終点時刻)、ストロークの終点でのキュー長を保持している。ストローク統計情報72_1は、図7の時刻t14での計測によってストロークの終点が検出されたことを契機に生成されたストローク統計情報72の例である。
選択部53は、ストローク統計情報72_1に記録されたストロークの情報を、管理装置10に通知する情報として選択する。選択部53は、選択した情報を管理装置10に通知するための制御パケットを生成し、送信部26やNIC21を介して管理装置10に向けて送信する。なお、管理装置10との通信に使用する送信部26やNIC21は、通信装置20が備える任意のものであってよく、また、管理装置10との通信に使用するための専用のNIC21などであっても良い。さらに、通信装置20から管理装置10への通知処理に使用される制御パケットは、任意の形式を用いることができる。例えば、管理装置10への通知に使用される制御パケットとして、既知の監視ソフトウェアのアラート機能を実現するパケットが使用されても良い。
ストローク統計情報72_1には、1つのストロークの情報が格納されているが、実装に応じて、ストローク統計情報72に保持されるストロークの数は任意に変更され得る。例えば、ストローク統計情報72_2では、複数のストロークの各々について、始点の観測時刻、ストロークの始点でのキュー長、終点の観測時刻、ストロークの終点でのキュー長が記録されている。ストローク統計情報72_2の1番目の記録は、2016年10月25日の01:05:17.287から01:05:17.291にかけて、キュー長が50パケットから227パケットに増加するストロークが観測されたことを表わしている。ストローク統計情報72_2の2番目の記録は、2016年10月25日の01:05:17.294から01:05:17.298にかけて、キュー長が92パケットから459パケットに増加するストロークが観測されたことを表わしている。さらに、ストローク統計情報72_2の3番目の記録は、2016年10月25日の01:05:20.780から01:05:20.786にかけて、キュー長が0パケットから320パケットに増加するストロークが観測されたことを表わしている。このように、複数のストロークに関する情報が得られると、管理装置10では、ストロークの発生頻度や、キュー41bに蓄積されたパケットの量を用いて、適宜、キュー41bに割り当てるメモリの容量の変更などを、通信装置20に要求することができる。また、管理装置10に通知された情報を、適宜、オペレータが確認して通信装置20の設定を変更するシステムでは、オペレータが、ストロークの発生頻度やパケットの蓄積量などの値を用いて、通信装置20に対する設定変更を行うことができる。
仮想化環境などでは、キュー長の管理やプロセッサ101のタスクの割り当てもソフトウェアで行われるため、仮想マシン等が適用されていない環境と比較して、バースト的なパケットの送受信が発生しやすい。このため、プロセッサ101の処理の配分等がパケットの受信量に見合わない場合に、容易にキュー溢れが発生してしまう。従って、ストロークの情報を管理装置10に通知することにより、管理装置10ではキュー長の大きな変動を特定し、適宜、プロセッサ101のタスクの振り分け状況やキューの設定状況を変更することを決定することができる。例えば、管理装置10は、ストローク長と所定期間中に発生したストロークの回数に応じて、キュー長の変更量を決定することができる。例えば、所定期間に3回のストロークが発生した場合、管理装置10は、観測されたストロークのうちの最長のストローク長の3倍を新たなキューの容量として設定することを通信装置20に要求しても良い。
なお、図6〜図8を参照しながら、キュー41bに蓄積されるパケットのストロークの検出について説明したが、他のキューについても同様の処理により、ストロークの検出や検出結果の通知等の処理が行われる。
図9Aと図9Bは、ストロークの検出方法の例を説明するフローチャートである。通信装置20の起動時に、特定部52は、一時的にメモリ等に保持されているキュー長の測定値や、キュー管理情報71中に記録されているmin値、max値を初期化する(ステップS1)。ステップS1の処理の際に、特定部52は、min値やmax値の観測時刻も合わせて初期化しても良い。
計測部51は、処理対象のキュー41でキュー長が変化したかを判定する(ステップS2)。このとき、計測部51は、仮想スイッチ部30からキュー41へのパケットのエンキューや、転送処理部43によるキュー41からのパケットのデキューが発生しているかを判定することにより、キュー長の変化をモニタできる。計測部51は、キュー長が変化していない場合は、キュー長が変化するまで待機する(ステップS2でNo)。
キュー長が変化すると、計測部51はキュー長(x)を取得する(ステップS2でYes、ステップS3)。特定部52は、得られたキュー長(x)がmin値以下であるかを判定する(ステップS4)。ここで、min値は、キュー管理情報71中に保持されている。キュー長(x)がmin値以下である場合、特定部52は、キュー長(x)がmin値と同じ値であるかを判定する(ステップS4でYes、ステップS5)。キュー長(x)がmin値と同じ値である場合、特定部52は、キュー管理情報71中のmin値の観測時刻を更新し、ステップS2に戻る(ステップS5でYes、ステップS6)。キュー長(x)がmin値より小さい場合、特定部52は、得られたキュー長(x)をmin値に代入し、さらに、min値の観測時刻を更新してから、ステップS2に戻る(ステップS5でNo、ステップS7)。なお、ステップS4やS5において、min値が初期値に設定されている場合、特定部52は、min値がキュー長(x)未満であると判定するものとする。
一方、得られたキュー長(x)がmin値より大きい場合、特定部52は、得られたキュー長(x)がmin値と閾値Th1の合計(min値+Th1)以上であるかを判定する(ステップS4でNo、ステップS8)。得られたキュー長(x)がmin値と閾値Th1の合計(min値+Th1)以上ではない場合、ストロークの始点が発見されていないので、ステップS2以降の処理が繰り返される(ステップS4でNo、ステップS8でNo)。
得られたキュー長(x)がmin値と閾値Th1の合計(min値+Th1)以上である場合、特定部52は、現在のmin値とmin値の観測時刻をストロークの始点として検出したと判定する(ステップS8でYes)。そこで、特定部52は、min値をストローク開始点、min値の観測時刻をストローク開始時刻に設定し、さらに、最新のキュー長xをmax値に設定する(ステップS9)。
その後、計測部51は、処理対象のキュー41でキュー長が変化したかを判定し、キュー長が変化するまで待機する(ステップS10でNo)。キュー長が変化すると、計測部51は新たにキュー長(y)を取得する(ステップS10でYes、ステップS11)。特定部52は、得られたキュー長(y)がmax値以上であるかを判定する(ステップS12)。ここで、max値は、キュー管理情報71中に保持されている。キュー長(y)がmax値以上である場合、特定部52は、キュー長(y)がmax値と同じ値であるかを判定する(ステップS12でYes、ステップS13)。キュー長(y)がmax値と同じ値である場合、特定部52は、キュー管理情報71中のmax値の観測時刻を更新し、ステップS10に戻る(ステップS13でYes、ステップS14)。キュー長(y)がmax値を超えている場合、特定部52は、得られたキュー長(y)をmax値に代入し、さらに、max値の観測時刻を更新してから、ステップS10に戻る(ステップS13でNo、ステップS15)。
一方、得られたキュー長(y)がmax値より小さい場合、特定部52は、得られたキュー長(y)がmax値から閾値Th2を差し引いた値(max値−Th2)以下であるかを判定する(ステップS12でNo、ステップS16)。ここで、ステップS16の処理は、得られたキュー長yがmax値よりも閾値Th2以上小さくなっているかを判定している。得られたキュー長(y)がmax値から閾値Th2を差し引いたときの差分(max値−Th2)以下ではない場合、ストロークの終点が発見されていないので、ステップS10以降の処理が繰り返される(ステップS12でNo、ステップS16でNo)。
得られたキュー長(y)がmax値から閾値Th2を差し引いた値(max値−Th2)以下である場合、特定部52は、現在のmax値とmax値の観測時刻をストロークの終点として検出したと判定する(ステップS16でYes)。そこで、特定部52は、max値をストローク終点、max値の観測時刻をストローク終了時刻に設定する(ステップS17)。特定部52は、更新後のキュー管理情報71の情報をストローク統計情報72に記録することにより、得られたストロークの情報を保存する(ステップS18)。さらに、特定部52は、キュー管理情報71において、最新のキュー長yを新たなmin値に設定し、ステップS2に戻る(ステップS19)。
図10は、第1の実施形態にかかる検出方法の例を説明する状態遷移図である。なお、図10では、図9Aや図9Bから、閾値判定の式を変形し、計測値がmin値と閾値の合計を超えるとストロークの開始を検出する場合の例を説明する。また、同様に、図10では、計測値がmax値から閾値を差し引いた値よりも小さくなるとストロークの終点を検出する。
ST101は、特定部52がストロークの開始点を検索している状態を示す。ストロークの開始点の検索中は、特定部52は、計測部51の計測結果を用いて、キュー管理情報71中のmin値やmin値の観測時刻の更新を行う。ここで、ストロークとして特定するキュー長の変化の規模を限定するために、特定部52は、閾値以上のキュー長の増加が観測されたときに得られているmin値の観測時点を、ストロークの開始時点として判定する。このため、特定部52は、計測部51で得られた計測値がmin値と閾値の合計を超えるまで、ST101の状態を継続する。なお、ST101の状態で行われる処理は、図9Aを参照しながら説明したステップS2〜S8と同様である。
一方、計測部51で得られた計測値がmin値と閾値の合計を超えると、特定部52は、ST101からST102に遷移する。このとき、特定部52は、以後の処理に使用するmax値を、観測されたキュー長に設定する。ST101からST102への遷移は、図9AのステップS8においてYesと判定されてステップS9の処理が行われた場合に相当する。
ST102は、特定部52がストロークの終了点を検索している状態を示す。ストロークの終了点の検索中、特定部52は、計測部51の計測結果を用いて、キュー管理情報71中のmax値やmax値の観測時刻の更新を行う。特定部52は、max値の検索の際においても、ストロークとして特定するキュー長の変化の規模を限定するために、閾値以上のキュー長の減少が観測されたときに得られているmax値の観測時点を、ストロークの終了時点として判定する。このため、特定部52は、計測部51で得られた計測値がmax値から閾値を差し引いた値を下回るまで、ST102の状態を継続する。なお、ST102の状態で行われる処理は、図9Bを参照しながら説明したステップS10〜S16と同様である。
一方、計測部51で得られた計測値がmax値から閾値を差し引いた値を下回ると、特定部52は、ST102からST101に遷移する。このとき、特定部52は、以後の処理に使用するmin値を、観測されたキュー長に設定する。ST102からST101への遷移は、図9BのステップS16においてYesと判定された後のステップS17〜S19の処理が行われた場合に相当する。
このように、第1の実施形態にかかる方法では、軽微なキュー長の変動を省略して、ストロークの始点と終点についてだけ、キュー長と観測時刻を特定するので、少ないデータ量でキュー長の変動の傾向を見やすくすることができる。また、ストロークには軽微なキュー長の変動が含まれていないので、ストロークの情報を通信装置20が通信装置10等に送信したとしても、送信対象のデータは膨大にならない。従って、第1の実施形態にかかる方法を適用することにより、管理装置10での処理負荷や、通信装置20と管理装置10の間の通信路の負荷が軽減される。
さらに、第1の実施形態によると、ストロークの規模と発生頻度が管理装置10やオペレータに通知されるため、管理装置10やオペレータにとって、システムの性能を改善するためのリソースの配備の決定を行いやすくなるという利点もある。例えば、ストロークの長さは長いがストロークの発生頻度が低い場合は、キューの容量の調整によって問題を解決できる可能性が高い。一方、ストロークの発生頻度が高い場合は、ストロークが発生しているリンクが過負荷状態に陥っているので、適宜、ロードバランシングやリソースの配備を変更することにより負荷を軽減できる可能性がある。このように、ストロークの情報を管理装置10やオペレータに通知することにより、ネットワークの問題を適切に解決しやすくなる。
<第2の実施形態>
第2の実施形態では、キュー長の計測値の代わりに、移動平均値(Moving Average、MA、mave)を用いる場合の例を説明する。なお、移動平均値の計算方法として、任意の既知の方法が使用されうる。例えば、指数加重移動平均(Exponentially Weighted Moving Average、EWMA)が移動平均値の計算の際に用いられても良い。
図11は、第2の実施形態にかかるストロークの検出方法の例を説明する図である。図11では、キュー長の変動を実線で示し、ストロークの始点付近と終点付近でのキュー長の変化などを拡大して表わしている。拡大された図面中の細い破線(MA)は移動平均の変動である。さらに、太い破線の矢印は、図11に示す変動で特定されたストロークの例である。
図12は、キュー管理情報71とストローク統計情報72の例を説明する図である。第2の実施形態では、キュー管理情報71として、min値とmax値の代わりに極小値と極大値を用いるものとする。従って、キュー管理情報71(71_21〜71_23)には、キュー長の極小値、キュー長の極小値の観測時刻、キュー長の極大値、キュー長の極大値の観測時刻が記録される。一方、ストローク統計情報72に記録される値は、第2の実施形態であっても第1の実施形態と同様に、ストロークの始点時刻、始点でのキュー長、終点時刻、終点でのキュー長である。
以下、図11と図12を参照しながら、キュー41bを用いた通信の開始後に、図11に示すキュー長の変化が発生した場合を例として、通信装置20での処理の例を時系列に沿って説明する。キュー41bを用いた通信が開始した時点では、キュー管理情報71が初期化されているので、キュー管理情報71には、極小値、極小値の観測時刻、極大値、極大値の観測時刻のいずれも保持されていない。その後、計測部51はキュー長の取得を行うと共に、過去のキュー長を用いて移動平均値を求める。時刻t21の時点で得られた移動平均を、時刻t21の前に得られた移動平均値および時刻t21の後の計測により得られた移動平均値と比較した結果、特定部52は、時刻t21において極小値が得られていたと判定したとする。また、時刻t21において得られた極小値は0であったとする。すると、特定部52は、時刻t21の時点において、以下の情報をキュー管理情報71に記録するので、キュー管理情報71_21(図12)が得られる。
時刻t22において、計測部51がキュー41bのキュー長を測定し、得られたキュー長を用いて移動平均を求めたとする。時刻t22の時点では、移動平均値はy21であったとする。その後、特定部52は、過去に得られた移動平均値と移動平均値y21を用いて、移動平均の極小値の検出を行う。ここでは、時刻t22の時点では、移動平均の極小値として新たな値が得られず、キュー管理情報71は更新されないとする。
時刻t23において、計測部51がキュー41bのキュー長の測定と移動平均の計算を行ったとする。時刻t23で観測されたキュー長はy22であったとする。その後、特定部52は、過去に得られた移動平均値と時刻t23での測定結果から得られた移動平均値を用いて、移動平均の極小値の検出を行う。図11の例では、時刻t23での極小値の検出の際に、移動平均の極小値が時刻t22に得られていたことと、極小値がy21であることが特定されたとする。すると、特定部52は、時刻t22で極小値が得られたと判定して、極小値の観測時刻と極小値を更新する。このため、時刻t23での測定値を用いた処理によって、キュー管理情報71_21はキュー管理情報71_22(図12)に示すように更新される。
さらに、特定部52は、最新のキュー長(y22)が、最新の移動平均値とストロークの始点の検出に用いる閾値Th1の合計に達しているかも判定する。例えば、時刻t23での移動平均値をy22aとする。図11の例では、拡大図に示すとおり、時刻t23でのキュー長y22は、時刻t23での移動平均値(y22a)よりも閾値Th1だけ大きい。従って、時刻t23に得られたキュー長の観測値は、最新の移動平均値(y22a)と閾値Th1の合計となる。そこで、特定部52は、最新の極小値が観測された時刻t22をストロークの開始点とし、最新の極小値であるy21をストロークの始点でのキューの長さであると判定する。
特定部52は、ストロークの始点を検出すると、ストロークの終点を求めるための処理を開始する。特定部52は、時刻t23で得られた移動平均の値(y22a)を、暫定的な極大値とする。このため、特定部52は、キュー管理情報71_22を、以下の情報を含むように更新する。
極小値の観測時刻:t22
極小値 :y21
極大値の観測時刻:t23
極大値 :y22a
その後も、計測部51は所定の周期ごとに、キュー41bのキュー長の測定と移動平均の計算を行う。特定部52は、新たに得られた移動平均値や過去に得られた移動平均値を用いることにより極大値が得られると、適宜、キュー管理情報71において、移動平均の極大値と極大値の観測時刻を更新する。
例えば、特定部52は、時刻t25の測定と移動平均の計算結果を用いて、時刻t24に得られた移動平均値y23は極大値であると判定したとする。すると、特定部52は、キュー管理情報71中の極大値と極大値の観測時刻を更新するので、キュー管理情報71_23(図12)が得られる。
特定部52は、さらに、最新のキュー長が、最新の移動平均値よりもストロークの終点の検出に用いる閾値Th2以上小さい値であるかも判定する。図11の例では、拡大図に示すとおり、時刻t25で得られている移動平均値(y24a)と、時刻t25でのキュー長の実測値(y24a−Th2)の差は閾値Th2である。従って、時刻t25に得られたキュー長の観測値は、最新の移動平均値(y24a)よりも閾値Th2だけ小さい値となる。そこで、特定部52は、最新の極大値が観測された時刻t24をストロークの終了点とし、最新の極大値であるy23をストロークの終点でのキューの長さであると判定する。特定部52は、得られたストロークの情報をストローク統計情報72に記録するので、図11での計測結果として、ストローク統計情報72_11(図12)が得られる。
ストローク統計情報72が得られた後に、通信装置20から管理装置10に行われる通知処理は、第2の実施形態であっても第1の実施形態と同様である。このため、管理装置10は、通信装置20から通知されたストロークの情報を用いて、通信装置20のキュー長を制御するための処理を特定でき、特定した処理を要求するための制御パケットを通信装置20に送信できる。
図13Aと図13Bは、ストロークの検出方法の例を説明するフローチャートである。図13Aと図13Bでは、測定回数の前後関係を明確にするために、計測回を変数iで示している。なお、図13Aと図13Bでは、図11や図12の説明から、閾値判定の式を変形し、計測値が最新の移動平均と閾値の合計を超えるとストロークの開始を検出する場合の例を説明する。また、同様に、図13Aと図13Bでは、最新の移動平均が極大値から閾値を差し引いた値よりも小さくなるとストロークの終点を検出する。
通信装置20の起動時に、特定部52は、一時的にメモリ等に保持されているキュー長の測定値、キュー管理情報71中に記録されている最新の極小値(α)、最新の極大値(β)を初期化し、変数iを0に設定する(ステップS31)。ステップS31の処理の際に、特定部52は、極小値や極大値の観測時刻も合わせて初期化しても良い。
計測部51は、処理対象のキュー41でキュー長が変化したかを判定する(ステップS32)。キュー長が変化したかの判定の際には、計測部51は、第1の実施形態と同様に、エンキューやデキューのタイミングを用いることができる。計測部51は、キュー長が変化していない場合は、キュー長が変化するまで待機する(ステップS32でNo)。
キュー長が変化すると、計測部51は変数iを1つインクリメントし、キュー長(x)を取得する(ステップS32でYes、ステップS33、S34)。計測部51は、さらに、キュー長(x)を用いて、i回目の測定での移動平均(MAi)を取得する(ステップS35)。
特定部52は、i回目の測定での移動平均(MAi)を用いて、i−1回目に求められた移動平均(MAi−1)が極小値であるかを判定する(ステップS36)。i−1回目の移動平均(MAi−1)が極小値である場合、特定部52は、最新の極小値αをi−1回目の移動平均(MAi−1)にし、最新の極小値αの観測時刻をi−1回目のキュー長取得時刻とする(ステップS36でYes、ステップS37)。i−1回目に求められた移動平均(MAi−1)が極小値で無い場合(ステップS36でNo)と、ステップS37の処理後のいずれも、ステップS38以降の処理が行われる。
特定部52は、i回目の測定で得られたキュー長(x)が、i回目の移動平均(MAi)と閾値Th1の和(MAi+Th1)を超えているかを判定する(ステップS38)。i回目の測定で得られたキュー長(x)がi回目の移動平均と閾値Th1の和(MAi+Th1)を超えていない場合、特定部52は、ステップS32に戻る(ステップS38でNo)。
一方、i回目の測定で得られたキュー長(x)がi回目の移動平均と閾値Th1の和(MAi+Th1)を超えている場合、特定部52は、最新の極小値(α)をストロークの開始点として検出したことになる(ステップS38でYes)。そこで、特定部52は、最新の極小値(α)をストロークの開始点とし、最新の極小値の観測時刻をストロークの開始時刻とする(ステップS39)。さらに、特定部52は、i回目の移動平均を最新の極大値(β)に設定する(ステップS40)。
その後、計測部51は、処理対象のキュー41でキュー長が変化したかを判定し、キュー長が変化するまで待機する(ステップS41でNo)。キュー長が変化すると、計測部51は変数iを1つインクリメントし、キュー長(y)を取得する(ステップS41でYes、ステップS42、S43)。計測部51は、さらに、キュー長(y)を用いて、i回目の測定での移動平均(MAi)を取得する(ステップS44)。
特定部52は、i回目の測定での移動平均(MAi)を用いて、i−1回目に求められた移動平均(MAi−1)が極大値であるかを判定する(ステップS45)。i−1回目の移動平均(MAi−1)が極大値である場合、特定部52は、最新の極大値βをi−1回目の移動平均(MAi−1)にし、最新の極大値βの観測時刻をi−1回目のキュー長取得時刻とする(ステップS45でYes、ステップS46)。i−1回目に求められた移動平均(MAi−1)が極大値では無い場合(ステップS45でNo)と、ステップS46の処理後のいずれも、ステップS47以降の処理が行われる。
特定部52は、i回目の測定で得られたキュー長(y)が、i回目の移動平均(MAi)から閾値Th2を差し引いた差分値(MAi−Th2)未満であるかを判定する(ステップS47)。i回目の測定で得られたキュー長(y)がi回目の移動平均から閾値Th2を差し引いた差分値(MAi−Th2)以上の場合、特定部52は、ステップS41に戻る(ステップS47でNo)。
一方、i回目の測定で得られたキュー長(y)がi回目の移動平均から閾値Th2を差し引いた差分値(MAi−Th2)を下回っている場合、特定部52は、最新の極大値(β)をストロークの終了点として検出したことになる(ステップS47でYes)。そこで、特定部52は、最新の極大値(β)をストロークの終了点とし、最新の極大値の観測時刻をストロークの終了時刻とする(ステップS48)。特定部52は、更新後のキュー管理情報71の情報をストローク統計情報72に記録することにより、得られたストロークの情報を保存する(ステップS49)。さらに、特定部52は、キュー管理情報71において、さらに、特定部52は、i回目の移動平均を最新の極小値(α)に設定し、ステップS32に戻る(ステップS50)。
図14は、第2の実施形態にかかる検出方法の例を説明する状態遷移図である。ST201は、特定部52がストロークの開始点を検索している状態を示す。ストロークの開始点の検索中は、特定部52は、移動平均値(mave)の変動の履歴を用いて、キュー管理情報71中の極小値や極小値の観測時刻の更新を行う。さらに、移動平均値の更新も、キュー長の測定のたびに行われる。ここで、ストロークとして特定するキュー長の計測値の変化の規模を限定するために、特定部52は、移動平均値と閾値の和をキュー長が上回ったときに得られている最新の極小値の観測時点を、ストロークの開始時点として判定する。このため、特定部52は、観測されたキュー長が移動平均値と閾値の合計を超えるまで、ST201の状態を継続する。なお、ST201の状態の処理は、図13Aを参照しながら説明したステップS32〜S38と同様である。
一方、計測部51で観測されたキュー長が移動平均値と閾値の合計を超えると、特定部52は、ST201からST202に遷移する。このとき、特定部52は、最新の移動平均の値を、以後の処理に使用する極大値に設定する。ST201からST202への遷移は、図13AのステップS38においてYesと判定されてステップS39、S40の処理が行われた場合に相当する。
ST202は、特定部52がストロークの終了点を検索している状態を示す。ストロークの終了点の検索中、特定部52は、移動平均値の変動の履歴を用いて、キュー管理情報71中の極大値や極大値の観測時刻の更新を行う。さらに、ST202においても、移動平均値の更新も、キュー長の測定のたびに行われる。特定部52は、極大値の検索の際においても、ストロークとして特定するキュー長の変化の規模を限定するために、移動平均値から閾値を差し引いた差分値をキュー長が下回ったときに得られている極大値の観測時点を、ストロークの終了時点として判定する。このため、特定部52は、移動平均値から閾値を差し引いた差分値をキュー長が下回るまで、ST202の状態を継続する。なお、ST202の状態の処理は、図13Bを参照しながら説明したステップS41〜S47と同様である。
一方、移動平均値から閾値を差し引いた差分値をキュー長が下回ると、特定部52は、ST202からST201に遷移する。このとき、特定部52は、最新の移動平均を、以後の処理に使用する極小値に設定する。ST202からST201への遷移は、図13BのステップS47においてYesと判定された後のステップS48〜S50の処理が行われた場合に相当する。
第2の実施形態で説明したように極小値と極大値を用いたストロークの検出では、キュー長の最小値や最大値が閾値よりも小さい範囲で長時間にわたって変動する場合に、キュー長の変化が比較的激しい期間を精度よく検出することができる。例えば、キュー長が時刻taから時刻tcにかけて閾値Th1未満の差で増加し続け、その後、急激にキュー長が増加したとする。この場合、第1の実施形態では、最小のキュー長が得られた時刻taがストロークの開始点として認識されるが、第2の実施形態では、キュー長の実測値が移動平均値と閾値の和を越える直前に極小値が観測された時点がストロークの開始点となる。従って、キュー長の小幅な変動が長時間にわたる場合は、第2の実施形態を用いて検出されたストロークは、第1の実施形態よりも、キュー長の変動状況を正確に反映したデータとなる。
<第3の実施形態>
第3の実施形態では、処理対象のキュー41でバッファ溢れが発生した場合を含む例を説明する。
図15は、ストロークの検出方法の変形例を説明する図である。例えば、図15のEに示す期間の最初で、キュー長がキューの最大値に達したとする。この場合、キュー長がキューの最大値に達した段階でパケットのエンキューが行われなくなるが、パケットのデキューは行われる。このため、キュー長は減少する。しかし、キュー長の減少とほぼ同時に、キュー41の空き容量に新たなパケットがエンキューされるので、キュー長はすぐにキュー最大長に達してしまう。従って、図15のEの期間に示すように、キュー長は小刻みにキュー長最大値とキュー長最大値よりもわずかに小さな値を繰り返す可能性がある。
このように、キュー長がキュー長最大値に達した場合、最新のキュー長の観測値とキュー長の最大値の差が閾値を超えるまでストロークの終点に達しないと考えると、矢印Dのように、ストロークの始点と終点が検出されてしまう。しかし、矢印Dに示す情報では、キュー長の変動が実際よりも緩やかになってしまう。このような現象は、第2の実施形態で説明したように、極大値と最新の移動平均の差が閾値を超えるまでストロークの終点に達しないと設定してストロークを検出した場合にも起こってしまう。
そこで、第3の実施形態では、特定部52は、予め、ストロークの検出対象となっているキュー41が格納することができるキュー長の最大値を記憶しているものとする。キュー長がキュー長の最大値を超えると、キュー41に格納されないパケットが廃棄されることになる。そこで、特定部52は、ストロークの終点を検出する前に、計測部51での計測値がキューの最大長に達した場合、キュー長が最大値に達した時点をストロークの終点とする。
すると、図15に示すケースでは、矢印Dに示すストロークの代わりに、矢印Cに示すストロークが特定される。なお、第3の実施形態においても、処理対象のキューに含まれているパケットの量がキュー長最大値に達しない場合は、第1および第2の実施形態のいずれによってストロークの検出が行われても良い。このため、図15に示すようにキュー長が変動する場合、図15の矢印A〜Cに示す3つのストロークが検出される。
このように、第3の実施形態では、キュー溢れが発生しても、キュー長の変動を的確に表わしたストロークの情報を取得することができる。
<第4の実施形態>
第4の実施形態として、通信装置20から管理装置10に対して、所定期間中に得られたストロークのうちで最長のストロークのみを通知する場合の変形例を説明する。第4の実施形態にかかる通信装置20は、統計処理部44を備えているものとする。統計処理部44は、ストローク統計情報72に含まれている各々のストロークについてストローク長を計算すると共に、検出された最長のストロークを抽出し、抽出した情報を最大ストローク長情報73として保持できる。また、統計処理部44は、最大ストローク長情報73を選択部53に通知しても良い。
図16は、ストローク長の最大値の取得方法の例を説明する図である。図16に示すストローク統計情報72のうち、2016年10月25日の01:05:17.291の時点では、No.1に示すストロークが検出されている。No.1のストロークは、2016年10月25日の01:05:17.287から2016年10月25日の01:05:17.291にかけて発生し、キュー長は50パケットから227パケットにまで変化している。統計処理部44は、No.1のストロークのストローク長として、ストロークの終点でのキュー長からストロークの始点でのキュー長を差し引いた値を求める。No.1のストロークのみが検出されている時点では、統計処理部44は、No.1のストロークが最長のストロークであると判定する。そこで、統計処理部44は、No.1のストロークの終点時刻とストローク長を最大ストローク長情報73_1として保持する。
次に、2016年10月25日の01:05:17.294から2016年10月25日の01:05:17.298にかけてNo.2に示すストロークが発生したとする。No.2のストロークでは、キュー長は92パケットから459パケットにまで変化しているので、ストローク長は367パケットである。統計処理部44は、新たに得られたストロークの長さを、最大ストローク長情報73_1に記録されているストローク長と比較することにより、いずれのストロークが長いかを判定する。図16の例では、No.2のストロークの長さの方が最大ストローク長情報73_1中のストローク長よりも長いので、統計処理部44は、No.2のストロークの情報で最大ストローク長情報73を更新する。その結果、最大ストローク長情報73_1は最大ストローク長情報73_2に更新される。
その後、2016年10月25日の01:05:20.780から2016年10月25日の01:05:20.786にかけてNo.3に示すストロークが発生したとする。No.3のストロークでは、キュー長は0パケットから320パケットにまで変化しているので、ストローク長は320パケットである。統計処理部44は、新たに得られたストロークの長さを、最大ストローク長情報73_2に記録されているストローク長と比較することにより、いずれのストロークが長いかを判定する。図16の例では、最大ストローク長情報73_2に記録されているストローク長の方がNo.3のストロークの長さよりも長いので、統計処理部44は、最大ストローク長情報73_2を更新しない。
選択部53は、管理装置10に対してストロークの情報を通知するタイミングになると、統計処理部44から最大ストローク長情報73に含まれている情報を取得する。選択部53は、最大ストローク長情報73中の情報を含むパケットを生成し、送信部26などを介して管理装置10に通知する。
なお、通信装置20は、管理装置10からの要求に応じて、ストロークの情報を管理装置10に通知しても良い。この場合、選択部53は、受信部27を介して管理装置10からの要求を取得する。すると、選択部53は、管理装置10からの要求を取得したタイミングにおいて、統計処理部44が保持している最大ストローク長情報73の情報を管理装置10に通知する。
ここで、通信装置20は、管理装置10に最大ストローク長情報73中の情報を通知するたびに、最大ストローク長情報73の情報を初期化することにより、所定の周期中で観測された最長のストロークの情報を管理装置10に通知するように設計されても良い。
図17は、最大ストローク長情報73中の情報を管理装置10に通知後に初期化が行われる場合での、ストローク長の最大値の変更処理の例を説明する図である。図17の例では、管理装置10から通信装置20に統計情報を要求する要求パケットが送信され、通信装置20は、要求パケットに応答して最大ストローク長情報73中の情報を管理装置10に通知するものとする。
例えば、時刻Tを終点時刻とする177パケットのストロークが特定部52で検出されたとする。すると、統計処理部44は、最大ストローク長情報73_11に示すように、終点時刻=T、ストローク長=177パケットという情報を保持する。
その後、管理装置10からの要求パケットを通信装置20が受信する前に、特定部52は、時刻Tを終点時刻とする367パケットのストロークを特定したとする。統計処理部44は、特定部52によって特定された最新のストロークの長さのほうが最大ストローク長情報73_11中のストローク長よりも長いので、最新のストロークの情報で最大ストローク長情報73を更新する。この結果、最大ストローク長情報73_11は、最大ストローク長情報73_12に更新される。
その後、管理装置10から統計情報を要求する要求パケットが通信装置20に送られたとする(ステップS61)。通信装置20が保持する受信部27は、要求パケットを受信すると、要求パケットを選択部53に出力する。選択部53は、統計処理部44から最大ストローク長情報73_12中の情報を取得する。選択部53は、最大ストローク長情報73_12中の情報を通知する制御パケットP1を生成し、送信部26を介して管理装置10に送信する(ステップS62)。一方、統計処理部44は、制御パケットP1に含められた情報を最大ストローク長情報73_12から削除する。このため、最大ストローク長情報73は、最大ストローク長情報73_13に示すように初期化された状態になる。
次に、特定部52は、時刻Tを終点時刻とする320パケットのストロークを特定したとする。統計処理部44は、最大ストローク長情報73_13中のストローク長が0であるため、特定部52によって特定された最新のストロークの長さの方が最大ストローク長情報73_13中のストローク長よりも長いと判定する。そこで、統計処理部44は、最大ストローク長情報73_13は、最大ストローク長情報73_14に更新する。
一方、管理装置10では、制御パケットP1を受信すると、制御パケットP1によって通知されたストロークの情報を保持する。その後、管理装置10から統計情報を要求する要求パケットが通信装置20に送られたとする(ステップS63)。
通信装置20の選択部53は、受信部27を介して、要求パケットを取得する。選択部53は、統計処理部44から最大ストローク長情報73_14中の情報を取得する。選択部53は、最大ストローク長情報73_14中の情報を通知する制御パケットP2を生成し、送信部26を介して管理装置10に送信する(ステップS64)。一方、統計処理部44は、制御パケットP2に含められた情報を最大ストローク長情報73_14から削除する。このため、最大ストローク長情報73は、最大ストローク長情報73_15に示すように初期化された状態になる。
一方、管理装置10では、制御パケットP2を受信すると、制御パケットP2によって通知されたストロークの情報を保持する。このため、管理装置10は、図17に示すように、制御パケットP1とP2の両方から取得した情報を記憶できる。
図16、図17に示す最大ストローク長情報73は、一例であり、最大ストローク長情報73に含まれる情報要素は、実装に応じて変更されうる。例えば、最大ストローク長情報73は、所定期間中に観測された中で最長のストロークの終点時刻とストローク長の他に、所定期間中に観測された中で最長のストロークの始点時刻を含んでいても良い。
第4の実施形態のように、所定期間中の最大のストローク長を管理装置10に通知する場合、管理装置10に通知されるデータ量は全てのストロークが通知される場合よりも少ない。このため、通信装置20と管理装置10の間の通信量の削減や管理装置10での処理負荷の軽減が求められる場合に、第4の実施形態を適用できる。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
以上の説明では、キュー長の変化がエンキューやデキューで発生する場合を例として説明したが、双方向のポインタを使用したキューのように、キューの途中に含まれているパケットの取出しが可能であっても良い。さらに、通信装置20が備える各キュー41、42、28として、キュー長をトラフィックに応じて変動させることが可能なデータ構造が使用されうる。
図18は、キューと管理情報の例を説明する図である。図18に示す例では、キュー管理情報として、nextフィールド、prevフィールド、qlenフィールド、maxqlenフィールド、stateフィールド、minmaxフィールド、minmax_tsフィールドを含む。ここで、キュー管理情報中のnextフィールドは、キューの先頭のパケットバッファを指定する情報であり、キュー管理情報中のprevフィールドは、キューの末尾のパケットバッファを指定する情報である。qlenフィールドは、現在のキュー長を保持する。maxqlenフィールドは、キュー長の最大値を保持する。
キューとして使用されるパケットバッファは、nextフィールドとprevフィールドを保持し、パケットデータを格納する。図18の例では、複数のパケットバッファが1つのキューとして使用されており、各パケットバッファ中のnextフィールドは、そのパケットバッファに続く領域として使用されるパケットバッファを識別するアドレス等を格納している。一方、各パケットバッファ中のprevフィールドは、そのパケットバッファの1つ前のパケットバッファの識別に使用するアドレス等を格納している。
図18のようにソフトウェアで管理される形式のキューでは、パケットバッファがあればキュー長を調整することができる。ただし、キューの実際の長さは、キュー管理情報中のmaxqlenフィールドの値以下となるように調整される。
このような形式のキューが用いられる場合、管理装置10は、通信装置20に対して、maxqlenフィールドの値の変更を要求することにより、ストロークの発生を防ぐために、キュー長を変更することができる。
以上の説明では、管理装置10やオペレータが運用する端末等から送信された制御パケットを用いて通信装置20がキュー長等を変更する場合を例として説明したが、キュー長の管理の処理は、通信装置20で行われても良い。
第4の実施形態は、第1〜第3の実施形態のいずれとも組み合わせることができる。さらに、通信装置20は、第1の実施形態による処理と第2の実施形態による処理の両方が可能になるように設計されても良い。
第4の実施形態を変形して、通信装置20が管理装置10に通知するストロークを、所定期間中に得られたストロークのうちで所定のストローク長以上のものに限定しても良い。このときに通知対象とするかの判定に使用するストローク長は、実装に応じて任意に設定され得る。
さらに、統計処理部44が最大ストローク長情報73に記録されている情報を初期化するタイミングは、実装に応じて変更され得る。例えば、統計処理部44は、管理装置10宛のパケットの送信や管理装置10宛のパケットの生成を契機として、最大ストローク長情報73を初期化することができる。
以上の実施形態にかかる通信方法は、NFV(Network Functions Virtualization)などを適用した仮想化環境に適用されても良い。また、仮想化が適用されていない環境に以上の実施形態にかかる通信方法が適用されても良い。
上述の第1〜第4の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
メモリの所定領域に書き込まれたパケット量を示すキュー長を計測する計測部と、
所定期間での第1の閾値以上の前記キュー長の増加が開始する第1の時刻から、前記所定期間での第2の閾値以上の前記キュー長の減少が開始する第2の時刻までの期間を、前記キュー長が増加傾向にある期間として特定する特定部と、
前記第1の時刻、前記第1の時刻に得られたキュー長、前記第2の時刻、および、前記第2の時刻に得られたキュー長を、前記キュー長を管理する管理装置への通知対象の情報に選択する選択部と、
前記通知対象の情報を送信する送信部
を備えることを特徴とする通信装置。
(付記2)
前記特定部は、
前記キュー長が計測された計測時刻の各々に対応付けて、前記キュー長の移動平均値を求め、
処理対象の計測時刻に計測されたキュー長の計測値が当該計測時刻に対して求められた移動平均値より前記第1の閾値以上大きくなると、当該計測時刻までに計算された移動平均値の極小値に対応付けられ、かつ、当該計測時刻に最も近い時刻を、前記第1の時刻に決定し、
処理対象の計測時刻に計測されたキュー長の計測値が当該計測時刻に対して求められた移動平均値より前記第2の閾値以上小さくなると、当該計測時刻までに計算された移動平均値の極大値に対応付けられ、かつ、当該計測時刻に最も近い時刻を、前記第2の時刻に決定する
ことを特徴とする付記1に記載の通信装置。
(付記3)
前記特定部は、前記キュー長が増加傾向にあると判定してから、前記所定期間での第2の閾値以上の前記キュー長の減少が開始する前に、前記キュー長が前記キューに格納可能なパケットの最大量に達した場合、前記キュー長が前記キューに格納可能なパケットの最大量に達した時刻を、前記キュー長が増加傾向にある期間の終了時刻とする
ことを特徴とする付記1または2に記載の通信装置。
(付記4)
前記キュー長が増加傾向にある期間として特定された期間の各々について、前記第2の時刻に得られたキュー長と前記第1の時刻に得られたキュー長の差分値を計算するとともに、前記差分値が相対的に大きい期間を求める統計処理部をさらに備え、
前記送信部は、前記差分値が相対的に大きい期間についての通知対象として選択された情報を前記管理装置に送信する
ことを特徴とする付記1〜3のいずれか1項に記載の通信装置。
(付記5)
メモリの所定領域に書き込まれたパケット量を示すキュー長を計測し、
所定期間での第1の閾値以上の前記キュー長の増加が開始する第1の時刻から、前記所定期間での第2の閾値以上の前記キュー長の減少が開始する第2の時刻までの期間を、前記キュー長が増加傾向にある期間として特定し、
前記第1の時刻、前記第1の時刻に得られたキュー長、前記第2の時刻、および、前記第2の時刻に得られたキュー長を、前記キュー長を管理する管理装置への通知対象の情報に選択し、
前記通知対象の情報を送信する
処理を通信装置が行うことを特徴とする通信方法。
(付記6)
前記通信装置は、
前記キュー長が計測された計測時刻の各々に対応付けて、前記キュー長の移動平均値を求め、
処理対象の計測時刻に計測されたキュー長の計測値が当該計測時刻に対して求められた移動平均値より前記第1の閾値以上大きくなると、当該計測時刻までに計算された移動平均値の極小値に対応付けられ、かつ、当該計測時刻に最も近い時刻を、前記第1の時刻に決定し、
処理対象の計測時刻に計測されたキュー長の計測値が当該計測時刻に対して求められた移動平均値より前記第2の閾値以上小さくなると、当該計測時刻までに計算された移動平均値の極大値に対応付けられ、かつ、当該計測時刻に最も近い時刻を、前記第2の時刻に決定する
ことを特徴とする付記5に記載の通信方法。
(付記7)
前記通信装置は、前記キュー長が増加傾向にあると判定してから、前記所定期間での第2の閾値以上の前記キュー長の減少が開始する前に、前記キュー長が前記キューに格納可能なパケットの最大量に達した場合、前記キュー長が前記キューに格納可能なパケットの最大量に達した時刻を、前記キュー長が増加傾向にある期間の終了時刻とする
ことを特徴とする付記5または6に記載の通信方法。
(付記8)
前記通信装置は、
前記キュー長が増加傾向にある期間として特定された期間の各々について、前記第2の時刻に得られたキュー長と前記第1の時刻に得られたキュー長の差分値を計算し、
前記差分値が相対的に大きい期間を求め、
前記差分値が相対的に大きい期間についての通知対象として選択された情報を前記管理装置に送信する
ことを特徴とする付記5〜7のいずれか1項に記載の通信方法。
2 クライアント
4 LAN
6 インターネット
8 データセンタネットワーク
10 管理装置
12 管理ネットワーク
20 通信装置
21 NIC
22、62 送信バッファ
23、63 受信バッファ
25 ドライバ
26、65 送信部
27、66 受信部
28、41、42 キュー
30 仮想スイッチ部
31 ブリッジ処理部
32 IP処理部
33 ハイパーバイザ
35 ホストOS処理部
40 仮想リンク部
43 転送処理部
44 統計処理部
50 ストローク検出部
51 計測部
52 特定部
53 選択部
60 仮想マシン
61 仮想NIC
64 OS処理部
67 アプリケーション処理部
71 キュー管理情報
72 ストローク統計情報
73 最大ストローク長情報
101 プロセッサ
102 メモリ
103 バスコントローラ
104 ストレージ装置
105 ストレージI/O
106 ディスプレイI/O
107 I/O
108 ネットワーク接続装置
109 タイマ
110 入力装置
111 光学ディスクドライブ
112 可搬記憶媒体

Claims (5)

  1. メモリの所定領域に書き込まれたパケット量を示すキュー長を計測する計測部と、
    所定期間での第1の閾値以上の前記キュー長の増加が開始する第1の時刻から、前記所定期間での第2の閾値以上の前記キュー長の減少が開始する第2の時刻までの期間を、前記キュー長が増加傾向にある期間として特定する特定部と、
    前記第1の時刻、前記第1の時刻に得られたキュー長、前記第2の時刻、および、前記第2の時刻に得られたキュー長を、前記キュー長を管理する管理装置への通知対象の情報に選択する選択部と、
    前記通知対象の情報を送信する送信部
    を備えることを特徴とする通信装置。
  2. 前記特定部は、
    前記キュー長が計測された計測時刻の各々に対応付けて、前記キュー長の移動平均値を求め、
    処理対象の計測時刻に計測されたキュー長の計測値が当該計測時刻に対して求められた移動平均値より前記第1の閾値以上大きくなると、当該計測時刻までに計算された移動平均値の極小値に対応付けられ、かつ、当該計測時刻に最も近い時刻を、前記第1の時刻に決定し、
    処理対象の計測時刻に計測されたキュー長の計測値が当該計測時刻に対して求められた移動平均値より前記第2の閾値以上小さくなると、当該計測時刻までに計算された移動平均値の極大値に対応付けられ、かつ、当該計測時刻に最も近い時刻を、前記第2の時刻に決定する
    ことを特徴とする請求項1に記載の通信装置。
  3. 前記特定部は、前記キュー長が増加傾向にあると判定してから、前記所定期間での第2の閾値以上の前記キュー長の減少が開始する前に、前記キュー長が前記キューに格納可能なパケットの最大量に達した場合、前記キュー長が前記キューに格納可能なパケットの最大量に達した時刻を、前記キュー長が増加傾向にある期間の終了時刻とする
    ことを特徴とする請求項1または2に記載の通信装置。
  4. 前記キュー長が増加傾向にある期間として特定された期間の各々について、前記第2の時刻に得られたキュー長と前記第1の時刻に得られたキュー長の差分値を計算するとともに、前記差分値が相対的に大きい期間を求める統計処理部をさらに備え、
    前記送信部は、前記差分値が相対的に大きい期間についての通知対象として選択された情報を前記管理装置に送信する
    ことを特徴とする請求項1〜3のいずれか1項に記載の通信装置。
  5. メモリの所定領域に書き込まれたパケット量を示すキュー長を計測し、
    所定期間での第1の閾値以上の前記キュー長の増加が開始する第1の時刻から、前記所定期間での第2の閾値以上の前記キュー長の減少が開始する第2の時刻までの期間を、前記キュー長が増加傾向にある期間として特定し、
    前記第1の時刻、前記第1の時刻に得られたキュー長、前記第2の時刻、および、前記第2の時刻に得られたキュー長を、前記キュー長を管理する管理装置への通知対象の情報に選択し、
    前記通知対象の情報を送信する
    処理を通信装置が行うことを特徴とする通信方法。
JP2017033641A 2017-02-24 2017-02-24 通信装置および通信方法 Pending JP2018139368A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017033641A JP2018139368A (ja) 2017-02-24 2017-02-24 通信装置および通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017033641A JP2018139368A (ja) 2017-02-24 2017-02-24 通信装置および通信方法

Publications (1)

Publication Number Publication Date
JP2018139368A true JP2018139368A (ja) 2018-09-06

Family

ID=63451507

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017033641A Pending JP2018139368A (ja) 2017-02-24 2017-02-24 通信装置および通信方法

Country Status (1)

Country Link
JP (1) JP2018139368A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110784478A (zh) * 2019-10-31 2020-02-11 深圳前海微众银行股份有限公司 超时时长的调整方法、装置、设备及计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110784478A (zh) * 2019-10-31 2020-02-11 深圳前海微众银行股份有限公司 超时时长的调整方法、装置、设备及计算机可读存储介质
CN110784478B (zh) * 2019-10-31 2024-04-30 深圳前海微众银行股份有限公司 超时时长的调整方法、装置、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
JP3683133B2 (ja) パケットスケジューリング装置
CN108694087A (zh) 用于最优系统级性能的网络接口卡中的动态负载均衡
JP5750714B2 (ja) 計算機システム、仮想サーバ配置方法及び配置制御装置
US9197566B2 (en) Information processing method, recording medium, and information processing apparatus
JP6972714B2 (ja) データ取得プログラム、装置、及び方法
JP2016149698A (ja) パケット通信装置およびパケット受信処理方法
US20170264500A1 (en) Number-of-scales estimation apparatus, number-of-scales management system, number-of-scales estimation method, number-of-scales management method, and storage medium
WO2016177191A1 (zh) 一种报文的处理方法及装置
JP2008263436A (ja) 負荷分散装置及びネットワーク装置
US11088954B2 (en) Link detection method and related apparatus
CN114118560A (zh) 一种基于微服务的路由方法、装置、设备及存储介质
CN116909735A (zh) 算力调度方法及装置、服务器和存储介质
JP2018139368A (ja) 通信装置および通信方法
JP5917678B1 (ja) 情報処理装置、方法およびプログラム
CN109565449B (zh) 使用分析进行功率感知交换
CN113132479A (zh) 流量切换、模型生成方法、装置、设备、存储介质及程序
CN108712494A (zh) 处理异步消息的方法、装置及设备
EP3685567B1 (en) Load shedding of traffic based on current load state of target capacity
CN114500418B (zh) 数据统计方法及相关装置
JP2016152453A (ja) 通信制御システム、通信方法、及びゲートウェイ装置
WO2020095677A1 (ja) アクセス制御方法、アクセス制御装置、およびデータ処理装置
US20210320899A1 (en) Notification device and notification method
Huang et al. Tuning the aggressive TCP behavior for highly concurrent HTTP connections in data center
JP2021002701A (ja) パケット解析プログラムおよびパケット解析装置
Suksomboon et al. Erlang-k-based packet latency prediction model for optimal configuration of software routers