JP2009134358A - 通信プログラム、通信装置および通信方法 - Google Patents

通信プログラム、通信装置および通信方法 Download PDF

Info

Publication number
JP2009134358A
JP2009134358A JP2007307913A JP2007307913A JP2009134358A JP 2009134358 A JP2009134358 A JP 2009134358A JP 2007307913 A JP2007307913 A JP 2007307913A JP 2007307913 A JP2007307913 A JP 2007307913A JP 2009134358 A JP2009134358 A JP 2009134358A
Authority
JP
Japan
Prior art keywords
packet
parameter value
timer parameter
communication
usage rate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007307913A
Other languages
English (en)
Other versions
JP4952542B2 (ja
Inventor
Koji Takahara
浩二 高原
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 JP2007307913A priority Critical patent/JP4952542B2/ja
Priority to US12/264,554 priority patent/US7836227B2/en
Publication of JP2009134358A publication Critical patent/JP2009134358A/ja
Application granted granted Critical
Publication of JP4952542B2 publication Critical patent/JP4952542B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】タイマパラメータとして大きな値が設定されている状態では、単位時間あたりに受信するパケットの数が少ないときであっても、タイマパラメータに応じた保留経過時間経過後にパケットの通信処理を開始する。その結果、パケットの送受信が遅延するので、パケット受信に対するレスポンスが低速化することを課題とする。
【解決手段】単位時間あたりにネットワークアダプタによって受信された受信パケットの数を計測し、予め設定された単位時間あたりに処理を行う目標パケット数よりも計測結果のほうが少ない場合には、保留時間を決定するためのタイマパラメータ値を小さい方に変更し、目標パケット数よりも計測結果のほうが多い場合には、タイマパラメータ値を大きい方に変更する。
【選択図】 図1

Description

この発明は、通信プログラム、通信装置および通信方法に関する。
従来より、ネットワーク上を流れるパケットを受信するネットワークアダプタおよびネットワークアダプタの動作を制御するネットワークドライバを備えた通信装置がある。
具体的には、ネットワークアダプタは、パケットを最初に受信したときに、タイマパラメータとして設定された保留時間の間だけ待機し、保留時間の経過後、ネットワークドライバを搭載した通信プログラムに対して割り込みを上げる割り込み処理を行うことによりパケット受信を通知する。割り込み処理によるパケット受信の通知を受け付けた通信プログラムは、ネットワークアダプタの割り込み処理を一旦停止させ、ネットワークドライバが受信したパケットの通信処理を実行する。なお、タイマパラメータは、処理開始前に固定値として設定されたものである。
パケットの通信処理を終了した後、通信プログラムは、ネットワークアダプタに対する割り込み停止処理およびパケットの通信処理を実行している間にパケットを受信したか否かをネットワークアダプタに問い合わせる。ここで、ネットワークアダプタからパケットを受信している旨の問合結果を受け付けた場合には、通信プログラムは、ネットワークアダプタに対する割り込み停止処理およびパケットの通信処理を実行している間にネットワークアダプタによって受信されたパケットの通信処理を併せて実行する。一方、ネットワークアダプタからパケットを受信していない旨の問合結果を受け付けた場合には、通信プログラムは、ネットワークアダプタに対して割り込み処理の停止を解除し、ネットワークアダプタによるパケット受信の通知を待機する。
なお、例えば、特許文献1(特開平1−282643号公報)では、処理を切り替える時間間隔をCPU負荷率に応じて変更する発明が開示されている。そして、この発明を通信装置に適用することで、CPUにおける過剰負荷を抑制することができる。
特開平1−282643号公報
ところで、上記した従来の技術は、パケット受信に対するレスポンスが低速化するという課題があった。
すなわち、固定値であるタイマパラメータとして大きな値が設定されている状態では、単位時間あたりに受信するパケットの数が少ないときであっても、タイマパラメータに応じた保留経過時間経過後にパケットの通信処理を開始する。その結果、従来の技術は、パケットの送受信が遅延するので、パケット受信に対するレスポンスが低速化するという課題があった。
また、特許文献1の手法を上記従来技術に適用した場合、通信とは関係のないプロセスのCPU負荷が高いときや時間あたりのパケット数が少ないときでも、タイマパラメータが大きくなって、パケット受信に対するレスポンス性能が悪化してしまうという問題がある。
すなわち、特許文献1の手法は、CPU全体の負荷率から、「プロセスを切替える時間間隔」を決めているが、通信装置の場合は、CPU全体の負荷率ではなくて、時間あたりの通信パケット数を計算しなければ、タイマパラメータ値変更により、CPU使用率がどのくらい変更するのかを、正確に計算することができない。
さらに、特許文献1の「プロセスを切替える時間間隔」は、ソフトウェアのみを考慮すればよい問題であるのに対して、タイマパラメータは、変更するためにネットワークアダプタのリセットが必要となる場合もあり、その場合は、ネットワークアダプタのリセット処理の追加が必要になる場合もある。
さらに、特許文献1の「プロセスを切替える時間間隔」が、0となることは論理的にあり得ないが、タイマパラメータは、時間あたりのパケット数が少なければ0になることがありうる。
そして、特許文献1の「プロセスを切替える時間間隔」が、その値の範囲は提示されていないが、プロセス切替えの性質上数十ミリ秒程度であると考えられるのに対して、タイマパラメータの値の範囲は、0から100マイクロ秒程度である。
このように、特許文献1の手法を、通信装置にそのまま使用すると、通信とは関係のないプロセスのCPU負荷が高い場合、時間あたりのパケット数が少ない場合でも、タイマパラメータが大きくなって、パケット受信に対するレスポンス性能が悪化してしまうという問題がある。
そこで、開示の通信プログラム、通信装置および通信方法は、上述した従来技術の課題を解決するためになされたものであり、パケット受信に対するレスポンスを高速化することが可能な通信プログラム、通信装置および通信方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、開示の通信プログラムは、所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として行われる受信パケットの通信処理をコンピュータに実行させる通信プログラムであって、単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測手順と、前記パケット数計測手順による計測結果に基づいて、前記保留時間を決定するためのタイマパラメータ値を変更するパラメータ値変更手順とをコンピュータに実行させる。
また、上記の通信プログラムにおいて、前記パラメータ値変更手順は、予め設定された単位時間あたりに処理を行う目標パケット数よりも前記パケット数計測手順による計測結果のほうが少ない場合には、前記タイマパラメータ値を小さい方に変更し、前記目標パケット数よりも前記パケット数計測手順による計測結果のほうが多い場合には、前記タイマパラメータ値を大きい方に変更する。
また、上記の通信プログラムにおいて、所定の間隔で区分けして設定されたパケット数値範囲ごとに、前記タイマパラメータ値を変更したときのCPU使用率を計測するシミュレーションを実行し、各パケット数値範囲に対応付けて、各タイマパラメータ値ごとのCPU使用率をシミュレーション結果として記憶部に記憶するシミュレーション結果記憶手順をさらにコンピュータに実行させ、前記パラメータ値変更手順は、前記シミュレーション結果記憶手順により記憶されている前記シミュレーション結果に基づいて、前記パケット数計測手順による前記計測結果と前記CPU使用率とが加味された前記タイマパラメータ値に変更する。
また、上記の通信プログラムにおいて、前記パケット数計測手順による前記計測結果と、予め設定された前記通信処理に要する通信処理時間と、予め設定された前記割り込み処理に要する割り込み処理時間とに基づいて、前記タイマパラメータ値ごとに前記CPU使用率を算出するCPU使用率算出手順をさらにコンピュータに実行させ、前記パラメータ値変更手順は、前記CPU使用率算出手順による算出結果に基づいて、前記タイマパラメータ値を変更する。
また、上記の通信プログラムにおいて、前記パラメータ値変更手順は、前回タイマパラメータ値を変更したときから一定の時間が経過したか否かを判定し、一定の時間が経過していないと判定した場合には、前記タイマパラメータ値の変更を中止する。
また、開示の通信装置は、所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として受信パケットを通信処理する通信装置であって、単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測手段と、前記パケット数計測手段による計測結果に基づいて、前記保留時間を決定するためのタイマパラメータ値を変更するパラメータ値変更手段とを備える。
また、開示の通信方法は、所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として受信パケットを通信処理する通信方法であって、単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測工程と、前記パケット数計測工程による計測結果に基づいて、前記保留時間を決定するためのタイマパラメータ値を変更するパラメータ値変更工程とを含む。
開示の通信プログラム、通信装置および通信方法によれば、パケット受信に対するレスポンスを高速化することが可能である。
以下に添付図面を参照して、この発明に係る通信プログラム、通信装置および通信方法の実施例を詳細に説明する。なお、以下では、この発明が適用された通信装置を実施例として説明する。
以下の実施例1では、実施例1に係る通信装置の概要および特徴、通信装置の構成、通信装置による処理の流れを順に説明し、最後に実施例1の効果を説明する。
[実施例1に係る通信装置の概要および特徴]
まず最初に、図1を用いて、実施例1に係る通信装置の概要および特徴を説明する。
実施例1に係る通信装置のネットワークアダプタは、所定の保留時間経過後にパケット受信通知として制御部に対する割り込み処理を実行する。そして、実施例1に係る通信装置の制御部は、割り込み処理の受付を契機として受信パケットの通信処理を実行することを概要とし、パケット受信に対するレスポンスを高速化することを主たる特徴とする。
具体的には、実施例1に係る通信装置は、図1に示すように、単位時間あたりにネットワークアダプタによって受信された受信パケットの数を計測し、計測結果に基づいて、保留時間を決定するためのタイマパラメータ値を変更する。
詳細には、実施例1に係る通信装置は、予め設定された単位時間あたりに処理を行う目標値となる目標パケット数よりも計測結果のほうが少ない場合には、タイマパラメータ値を小さい方に変更し、計測結果のほうが目標パケット数よりも多い場合には、タイマパラメータ値を大きい方に変更する。
このようなことから、実施例1に係る通信装置は、上記した主たる特徴のごとく、パケット受信に対するレスポンスを高速化することが可能である。また、実施例1に係る通信装置は、CPUにおける過剰負荷を抑制することもできる。
[通信装置の構成]
次に、図2、図3を用いて、図1に示した通信装置10の構成を説明する。図2は、通信装置の構成を示すブロック図である。図3は、シミュレート結果記憶部に記憶される情報の一例を示す図である。図2に示すように、通信装置10は、入出力部11と、記憶部12と、ネットワークアダプタ13と、制御部14とを備える。
このうち、入出力部11は、各種の情報の入出力を実行する。具体的には、入出力部11は、キーボードやマウス、マイク、ディスプレイなどを備えて構成され、例えば、ユーザから受け付けた目標CPU使用率を後述の目標CPU使用率記憶部12aに書き込み、タイマパラメータ値の初期値を後述のタイマパラメータ記憶部13aに書き込む。なお、目標CPU使用率やタイマパラメータ値の初期値の入力方法は本発明を限定するものではなく、例えば、所定のアプリケーションを用いて入力された目標CPU使用率をプロトコル変換して後述の目標CPU使用率記憶部12aに書き込むようにしてもよいし、ioctlなどでドライバによって値を目標CPU使用率記憶部12aやタイマパラメータ記憶部13aにイバに値を書き込む既存技術を用いてもよい。
記憶部12は、制御部14による各種処理に必要なデータおよびプログラムを格納するものであり、目標CPU使用率記憶部12aと、シミュレート結果記憶部12bとを備える。
目標CPU使用率記憶部12aは、ユーザによって入出力部11を介して入力された目標CPU使用率を記憶する。ここで、目標CPU使用率とは、制御部14によるタイマパラメータ変更処理を実行するときに用いられるCPU使用率の目標値(例えば、80%)である。尚シミュレーション結果とは、例えば、そのパケット数範囲の中の最小パケット数の場合に、そのパラメータ値でCPU使用率がどうなるかを現実の通信装置を模倣するプログラムより求めた値のことである。
シミュレート結果記憶部12bは、所定の間隔で区分けして設定されたパケット数値範囲ごとに、タイマパラメータ値を変更したときのCPU使用率を計測したときのシミュレーション結果として、各パケット数値範囲に対応付けて、各タイマパラメータ値ごとのCPU使用率を記憶する。
具体的に一例をあげて説明すると、シミュレート結果記憶部12bは、図3に示すように、パケット数値範囲「0〜999」に対応付けて、タイマパラメータ値を「0」に設定した場合のCPU使用率「0%」と、タイマパラメータ値を「10」に設定した場合のCPU使用率「0%」と、タイマパラメータ値を「20」に設定した場合のCPU使用率「0%」と、タイマパラメータ値を「30」に設定した場合のCPU使用率「0%」と、・・・タイマパラメータ値を「90」に設定した場合のCPU使用率「0%」とをシミュレート結果として記憶する。
そして、シミュレート結果記憶部12bは、パケット数値範囲「0〜999」と同様に、1000パケット間隔で区分けして設定された各パケット数値範囲(例えば、「1000〜1999」と、「2000〜2999」と、・・・、「30000〜30999」と、・・・、「50000〜50999」と、・・・、「99000以上」)に対応付けて、各タイマパラメータ値に応じたCPU使用率をシミュレート結果として記憶する。
ここで、パケット数値範囲とは、1秒あたりの受信パケット数(packets/s)であり、CUP使用率とは、CPU使用率を計測するシミュレーションによって計測された計測結果である。
ネットワークアダプタ13は、ネットワーク上を流れるパケットを受信するものであり、タイマパラメータ記憶部13aと、パケット受信部13bと、割り込み処理部13cとを備える。
タイマパラメータ記憶部13aは、パケットを受信してから割り込み処理を実行するまでの保留時間を決定するためのタイマパラメータ値を記憶する。具体的には、タイマパラメータ記憶部13aは、ユーザによって入出力部11を介して入力されたタイマパラメータ値の初期値(例えば、90マイクロ秒)を記憶する。そして、タイマパラメータ記憶部13aに記憶されたタイマパラメータ値は、制御部14によって書き換えられる。
パケット受信部13bは、通信装置10の外部からパケットを受信する。具体的には、パケット受信部13bは、通信装置10の外部からパケットを受信すると、受信したパケットの数を制御部14に対して通知するとともに、割り込み処理部13cに対して、割り込み処理を依頼する。そして、パケット受信部13bは、制御部14から割り込み停止処理およびパケットの通信処理を実行している間にパケットを受信したか否かの問い合わせを受け付けた場合に、問合結果としてパケットを受信したか否かを回答する。
割り込み処理部13cは、所定の保留時間経過後にパケット受信通知として割り込み処理を実行する。具体的には、割り込み処理部13cは、パケット受信部13bから、割り込み処理の依頼を受け付けたときに、制御部14から割り込み処理の停止要求を受け付けているか否かを判定する。ここで、割り込み処理の停止要求を受け付けていないと判定した場合には、割り込み処理部13cは、タイマパラメータ記憶部13aからタイマパラメータ値を読み込み、タイマパラメータ値によって決定される保留時間の間、割り込み処理を保留する。そして、割り込み処理部13cは、保留時間経過後に制御部14に対してパケット受信通知としての割り込み処理を実行する。一方、割り込み処理の停止要求を受け付けていると判定した場合には、割り込み処理部13cは、そのまま処理を終了する。
制御部14は、OS(Operating System)などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部14は、通信制御部14aと、パケット数計測部14bと、タイマパラメータ変更部14cとを備える。
通信制御部14aは、受信パケットの通信処理を実行する。具体的には、通信制御部14aは、割り込み処理部13cからパケット受信通知としての割り込み処理を受け付けた場合に、割り込み処理部13cに対して、割り込み処理の停止要求を送信する。そして、通信制御部14aは、パケット受信部13bによって受信されたパケットをネットワークアダプタ13から読み込み、受信パケットの通信処理を実行する。
そして、パケットの通信処理を終了した後、通信制御部14aは、割り込み処理部13cに対する割り込み停止処理およびパケットの通信処理を実行している間にパケットを受信したか否かをパケット受信部13bに問い合わせる。ここで、パケット受信部13bからパケットを受信している旨の問合結果を受け付けた場合には、通信制御部14aは、割り込み処理部13cに対する割り込み停止処理およびパケットの通信処理を実行している間にパケット受信部13bによって受信されたパケットをネットワークアダプタ13から読み込み、受信パケットの通信処理を併せて実行する。
一方、パケット受信部13bからパケットを受信していない旨の問合結果を受け付けた場合には、通信制御部14aは、割り込み処理部13cに対して割り込み処理の停止を解除し、割り込み処理部13cによるパケット受信通知としての割り込み処理を待機する。
パケット数計測部14bは、ネットワークアダプタによって受信された受信パケットの数を計測する。具体的には、パケット数計測部14bは、パケット受信部13bからの受信したパケットの数の通知を受け付け、受信したパケットの数を累積加算することで受信パケットの数を計測する。そして、パケット数計測部14bは、受信したパケットの数の累計が所定の数値(例えば、1000以上)に至ると、「受信したパケットの数の累計」を「受信パケットの数の計測を開始してから受信したパケットの数の累計が所定の数値に至るまでにかかった時間」で除算した値である「単位時間当たりのパケット数」を算出し、計測結果としてタイマパラメータ変更部14cに対して送信する。
タイマパラメータ変更部14cは、保留時間を決定するためのタイマパラメータ値を変更する。具体的には、タイマパラメータ変更部14cは、シミュレート結果記憶部12bに記憶されているシミュレーション結果に基づいて、パケット数計測部14bによる計測結果と、CPU使用率とが加味されたタイマパラメータ値に変更する。
具体的に一例をあげて説明すると、タイマパラメータ変更部14cは、パケット数計測部14bから計測結果(1秒あたりに50000個のパケットを受信した旨の計測結果)を受け付けると、目標CPU使用率記憶部12aから目標CPU使用率(80%)を読み込む。
次に、タイマパラメータ変更部14cは、シミュレート結果記憶部12bに記憶されているシミュレーション結果の中から計測結果に対応するパケット数値範囲「50000〜50999」を選択する。さらに、タイマパラメータ変更部14cは、選択したパケット数値範囲「50000〜50999」の各タイマパラメータ値に対応するCPU使用率(「100%」、「83%」、「78%」、「70%」、・・・、「50%」)と、目標CPU使用率とを比較し、目標CPU使用率よりも小さく、かつ、最小となるタイマパラメータ値(「20」)を変更すべきタイマパラメータ値に決定する。なお、計測結果に対応する全てのCPU使用率が目標CPU使用率よりも大きい場合には、タイマパラメータ変更部14cは、最大となるタイマパラメータ値(「90」)を変更すべきタイマパラメータ値に決定する。以降、決定したタイマパラメータ値を決定タイマパラメータ値と表す。
次に、タイマパラメータ変更部14cは、タイマパラメータ記憶部13aに記憶されているタイマパラメータ値が決定タイマパラメータ値と同じか否かを判定し、同じでない場合には、タイマパラメータ記憶部13aに記憶されているタイマパラメータ値を決定タイマパラメータ値に書き換える。
そして、タイマパラメータ変更部14cは、パケット数計測部14bによる受信パケット数の累計を「0」に変更するとともに受信パケット数の計測を再開させる。
[通信装置による通信処理]
まず、図4を用いて、通信装置10による通信処理を説明する。図4は、通信装置による通信処理の流れを示すフローチャートである。なお、通信装置10による通信処理は、通信装置10の駆動の停止とともに処理を終了する。
図4に示すように、通信装置10は、通信装置10の外部からパケットを受信すると(ステップS1001肯定)、割り込み処理が停止しているか否かを判定する(ステップS1002)。具体的には、パケット受信部13bは、通信装置10の外部からパケットを受信すると、受信したパケットの数を制御部14に対して通知するとともに、割り込み処理部13cに対して、割り込み処理を依頼し、割り込み処理部13cは、制御部14から割り込み処理の停止要求を受け付けているか否かを判定する。
ここで、割り込み処理が停止していると判定した場合には(ステップS1002肯定)、通信装置10は、再びパケットの受信を待機する(ステップS1001)。
一方では、割り込み処理が停止していないと判定した場合には(ステップS1002否定)、通信装置10は、タイマパラメータ値によって決定される保留時間の間、割り込み処理を保留し(ステップS1003)、保留時間経過後、パケット受信通知としての割り込み処理を実行する(ステップS1004)。具体的には、割り込み処理部13cは、タイマパラメータ記憶部13aからタイマパラメータ値を読み込み、タイマパラメータ値によって決定される保留時間の間、割り込み処理を保留し、保留時間経過後に制御部14に対してパケット受信通知としての割り込み処理を実行する。
続いて、通信装置10は、割り込み処理を停止し(ステップS1005)、受信パケットの通信処理を実行する(ステップS1006)。具体的には、通信制御部14aは、割り込み処理部13cに対して、割り込み処理の停止要求を送信し、パケット受信部13bによって受信されたパケットをネットワークアダプタ13から読み込み、受信パケットの通信処理を実行する。
続いて、通信装置10は、割り込み停止処理およびパケットの通信処理を実行している間にパケットを受信したか否かを判定する(ステップS1007)。具体的には、通信制御部14aは、パケットを受信したか否かをパケット受信部13bに問い合わせ、パケット受信部13bは、問合結果としてパケットを受信したか否かを回答する。
ここで、割り込み停止処理およびパケットの通信処理を実行している間にパケットを受信していると判定した場合には(ステップS1007肯定)、通信装置10は、割り込み停止処理およびパケットの通信処理を実行している間に受信した受信パケットの通信処理を併せて実行する(ステップS1006)。具体的には、通信制御部14aは、割り込み処理部13cに対する割り込み停止処理およびパケットの通信処理を実行している間にパケット受信部13bによって受信されたパケットをネットワークアダプタ13から読み込み、受信パケットの通信処理を併せて実行する。
一方では、割り込み停止処理およびパケットの通信処理を実行している間にパケットを受信していないと判定した場合には(ステップS1007否定)、通信装置10は、割り込み処理の停止を解除し(ステップS1008)、再びパケットの受信を待機する(ステップS1001)。具体的には、通信制御部14aは、割り込み処理部13cに対して割り込み処理の停止を解除し、割り込み処理部13cによるパケット受信通知としての割り込み処理を待機する。
[通信装置によるタイマパラメータ変更処理]
次に、図5を用いて、通信装置10によるタイマパラメータ変更処理を説明する。図5は、通信装置によるタイマパラメータ変更処理の流れを示すフローチャートである。なお、通信装置10によるタイマパラメータ変更処理は、通信装置10の駆動の停止とともに処理を終了する。
図5に示すように、通信装置10は、通信装置10の外部からパケットを受信すると(ステップS2001肯定)、受信パケットの数を計測する(ステップS2002)。具体的には、パケット受信部13bは、通信装置10の外部からパケットを受信すると、受信したパケットの数を制御部14に対して通知し、パケット数計測部14bは、受信したパケットの数を累積加算することで受信パケットの数を計測する。
ここで、受信したパケットの数の累計が所定の数値に満たない場合には(ステップS2003否定)、通信装置10は、再びパケットの受信を待機する(ステップS2001)。
一方では、受信したパケットの数の累計が所定の数値に至ると(ステップS2003肯定)、通信装置10は、「単位時間当たりのパケット数」を計測結果として算出する(ステップS2004)。具体的には、パケット数計測部14bは、受信したパケットの数の累計が所定の数値に至ると、「単位時間当たりのパケット数」を算出し、計測結果としてタイマパラメータ変更部14cに対して送信する。
続いて、通信装置10は、目標CPU使用率よりも小さいCPU使用率に対応する各タイマパラメータ値の中から、最小となるタイマパラメータ値を変更すべきタイマパラメータ値に決定する(ステップS2005)。
具体的には、計測結果を受け付けたタイマパラメータ変更部14cは、目標CPU使用率記憶部12aから目標CPU使用率を読み込み、シミュレート結果記憶部12bに記憶されているシミュレーション結果の中から計測結果に対応するパケット数値範囲を選択する。そして、選択したパケット数値範囲の各タイマパラメータ値に対応するCPU使用率と、目標CPU使用率とを比較し、目標CPU使用率よりも小さく、かつ、最小となるタイマパラメータ値を変更すべきタイマパラメータ値に決定する。
そして、通信装置10は、タイマパラメータ値を決定したタイマパラメータ値に変更し(ステップS2006)、計測した受信パケット数の累計を「0」に変更し(ステップS2007)、再びパケットの受信を待機する(ステップS2001)。具体的には、タイマパラメータ変更部14cは、タイマパラメータ記憶部13aに記憶されているタイマパラメータ値が決定タイマパラメータ値と同じか否かを判定し、同じでない場合には、タイマパラメータ記憶部13aに記憶されているタイマパラメータ値を決定タイマパラメータ値に書き換える。そして、タイマパラメータ変更部14cは、タイマパラメータ記憶部13aに記憶されているタイマパラメータ値を決定タイマパラメータ値に書き換え、パケット数計測部14bによる受信パケット数の累計を「0」に変更するとともに受信パケット数の計測を再開させる。
[実施例1の効果]
上記したように、実施例1によれば、パケット受信に対するレスポンスを高速化することが可能である。
また、実施例1によれば、単位時間あたりに受信するパケットの数が少ないときには、パケット受信に対するレスポンスを高速化することが可能であるとともに、単位時間あたりに受信するパケットの数が多いときにはCPUにおける過剰負荷を抑制することが可能である。
また、実施例1によれば、目標CPU使用率以下にCPU使用率を抑制しつつ、パケット受信に対するレスポンスを高速化することが可能である。
ところで、実施例1では、シミュレーション結果を用いてタイマパラメータ値を変更する場合を説明したが、本発明はこれに限定されるものではなく、CPU使用率を算出してタイマパラメータ値を変更するようにしてもよい。
そこで、実施例2では、パケット数計測部14bによる計測結果を用いてCPU使用率を算出し、CPU使用率算出結果に基づいてタイマパラメータ値を変更する場合を説明する。なお、実施例2では、実施例2に係る通信装置の構成および通信装置による処理の流れを説明した後、実施例2による効果を説明する。
[実施例2に係る通信装置の構成]
まず、図6、図7および図8を用いて実施例2に係る通信装置10の構成を説明する。図6は、実施例2に係る通信装置の構成を示すブロック図である。図7は、算出結果記憶部に記憶される情報の一例を示した図である。図8は、CPU使用率算出部によるCPU使用率算出処理の一例を説明するための図である。実施例2に係る通信装置10の構成は、算出結果記憶部12cと、CPU使用率算出部14dとを新たに備える他は、実施例1に係る通信装置10と以下に説明する点が異なる。
すなわち、算出結果記憶部12cは、CPU使用率算出部14dによるCPU使用率の算出結果を記憶する。具体的に一例をあげて説明すると、算出結果記憶部12cは、図7に示すように、各タイマパラメータ値(例えば、「0」、「10」、「20」、・・・、「90」)に対応付けてCPU使用率を記憶する。
パケット数計測部14bは、受信したパケットの数の累計が所定の数値(例えば、1000以上)に至ると、「受信パケットの数の計測を開始してから受信したパケットの数の累計が所定の数値に至るまでにかかった時間」を「受信したパケットの数の累計」で除算して「1パケットを受信するのに要する時間」を算出し、計測結果としてCPU使用率算出部14dに対して送信する。
CPU使用率算出部14dは、パケット数計測部14bによる計測結果と、予め設定された通信処理に要する通信処理時間と、予め設定された割り込み処理に要する割り込み処理時間とに基づいて、タイマパラメータ値ごとにCPU使用率を算出する。
具体的には、CPU使用率算出部14dは、パケット数計測部14から計測結果である「1パケットを受信するのに要する時間」を受け付けると、「1パケットを受信するのに要する時間」と、予め設定された通信処理に要する通信処理時間と、予め設定された割り込み処理に要する割り込み処理時間とに基づいて、タイマパラメータ値ごとにCPU使用率を算出する。そして、CPU使用率算出部14dは、算出結果である各タイマパラメータ値に対応するCPU使用率を算出結果記憶部12cに格納する。
ここで、図8を用いて、CPU使用率算出部14dによるCPU使用率算出処理の一例を説明する。なお、「i」は、パケット数に基づく変数を表し、「t1」は、1パケットを通信処理するのに要する通信処理時間に基づく変数を表し、「t2」は、割り込み処理時間に基づく変数を表し、「w1」は、タイマパラメータ値によって決定される保留時間に基づく変数を表し、「w2」は、CPUが処理を実行していない時間に基づく変数を表し、「sum:合計」は、通信処理時間の変更、割り込み処理時間の変更および保留時間の変更に基づいて変更される変数を表す。
また、パケット数計測部14bから計測結果として、「1パケットを受信するのに要する時間」が「20マイクロ秒」である旨の計測結果を受け付けたものとし、通信処理時間として「10マイクロ秒」が設定され、割り込み処理時間として「10マイクロ秒」が設定されており、タイマパラメータ値によって決定される保留時間が「10マイクロ秒」であるときのCPU使用率を算出するときの処理について説明する。
CPU使用率算出部14dは、CPU使用率算出処理を開始すると、「i」、「t1」、「t2」、「w1」、「w2」および「sum」の値を全て「0」に設定する(図8の(1)参照)。
続いて、CPU使用率算出部14dは、「w1」に対して保留時間である「10マイクロ秒」を加算するとともに、「sum」に対して保留時間である「10マイクロ秒」を加算する(図8の(2)参照)。
続いて、CPU使用率算出部14dは、「t1」に対して割り込み処理時間である「10マイクロ秒」を加算するとともに、「sum」に対して割り込み処理時間である「10マイクロ秒」を加算する(図8の(3)参照)。
続いて、CPU使用率算出部14dは、「t2」に対して通信処理時間である「10マイクロ秒」を加算するとともに、「sum」に対して通信処理時間である「10マイクロ秒」を加算する(図8の(4)参照)。
続いて、CPU使用率算出部14dは、「i」に対して1パケットを処理したことを意味する「1」を加算する(図8の(5)参照)。
続いて、CPU使用率算出部14dは、「sum」が「1000マイクロ秒」以上であるか否かを判定する。図8の(5)に示した例では、CPU使用率算出部14dは、「sum」である「30マイクロ秒」が「1000マイクロ秒」以上でないと判定するので、「i」である「1」に対して「1パケットを受信するのに要する時間」である「20マイクロ秒」を乗算して、乗算結果が「sum」以上であるか否かを判定する。
ここで、図8の(5)に示した例では、CPU使用率算出部14dは、乗算結果である「20マイクロ秒」が「sum」である「30マイクロ秒」以上でないと判定するので、「t2」に対して通信処理時間である「10マイクロ秒」を加算するとともに、「sum」に対して通信処理時間である「10マイクロ秒」を加算する(図8の(6)参照)。
続いて、CPU使用率算出部14dは、「i」に対して1パケットを処理したことを意味する「1」を加算する(図8の(7)参照)。
続いて、CPU使用率算出部14dは、「sum」が「1000マイクロ秒」以上であるか否かを判定する。図8の(7)に示した例では、「sum」である「40マイクロ秒」が「1000マイクロ秒」でないと判定するので、「i」である「2」に対して「1パケットを受信するのに要する時間」である「20マイクロ秒」を乗算して、乗算結果が「sum」以上であるか否かを判定する。
ここで、図8の(7)に示した例では、CPU使用率算出部14dは、乗算結果である「40マイクロ秒」が「sum」である「40マイクロ秒」以上であると判定する。
この場合に、CPU使用率算出部14dは、「「i」に対して「1パケットを受信するのに要する時間」を乗算した値」から「sum」を差し引いた差分値を「w2」に対して加算するとともに、「sum」を「「i」に対して「1パケットを受信するのに要する時間」を乗算した値」に変更する。
なお、図8の(7)に示した例では、差分値である「0マイクロ秒」が「w2」に対して加算されたものとし、「sum」が「「i」に対して「1パケットを受信するのに要する時間」を乗算した値」である「40マイクロ秒」に変更されたものとする。
続いて、CPU使用率算出部14dは、再び「w1」に対して保留時間である「10マイクロ秒」を加算するとともに、「sum」に対して保留時間である「10マイクロ秒」を加算する(図8の(8)参照)。
このようにして、CPU使用率算出部14dは、「sum」が「1000マイクロ秒」以上であると判定するまで上記した処理を実行し(図8の(9)参照)、「sum」が「1000マイクロ秒」以上であると判定した場合には、「t1」である「250マイクロ秒」と、「t2」である「500マイクロ秒」とを積算した積算値から「sum」である「1000マイクロ秒」を除算してCPU使用率(つまり、75%)を算出して、タイマパラメータ値によって決定される保留時間が「10マイクロ秒」であるときのCPU使用率を算出するときの処理を終了する。
タイマパラメータ変更部14cは、CPU使用率算出部14dによる算出結果に基づいて、タイマパラメータ値を変更する。具体的には、タイマパラメータ変更部14cは、算出結果記憶部12cに記憶されている各タイマパラメータに対応するCPU使用率と、目標CPU使用率とを比較し、目標CPU使用率(「80%」)よりも小さく、かつ、最小となるタイマパラメータ値(「10」)を変更すべきタイマパラメータ値に決定する。
[実施例2に係るタイマパラメータ変更処理]
まず、図9を用いて、実施例2に係るタイマパラメータ変更処理を説明する。図9は、実施例2に係るタイマパラメータ変更処理の流れを示すフローチャートである。なお、実施例2に係るタイマパラメータ変更処理は、通信装置の駆動の停止とともに処理を終了するものとし、実施例1に係るタイマパラメータ変更処理と異なる点について詳細に説明する。
図9に示すように、通信装置10は、通信装置10の外部からパケットを受信すると(ステップS3001肯定)、受信パケットの数を計測し(ステップS3002)、受信したパケットの数の累計が所定の数値に至ると(ステップS3003肯定)、通信装置10は、「1パケットを受信するのに要する時間」を計測結果として算出する(ステップS3004)。具体的には、パケット数計測部14bは、受信したパケットの数の累計が所定の数値に至ると、「1パケットを受信するのに要する時間」を算出し、計測結果としてCPU使用率算出部14dに対して送信する。
続いて、通信装置10は、計測結果と、予め設定された通信処理に要する通信処理時間と、予め設定された割り込み処理に要する割り込み処理時間とに基づいて、タイマパラメータ値ごとにCPU使用率を算出する(ステップS3005)。具体的には、CPU使用率算出部14dは、「1パケットを受信するのに要する時間」と、予め設定された通信処理に要する通信処理時間と、予め設定された割り込み処理に要する割り込み処理時間とに基づいて、タイマパラメータ値ごとにCPU使用率を算出する。そして、CPU使用率算出部14dは、算出結果である各タイマパラメータ値に対応するCPU使用率を算出結果記憶部12cに格納する。
続いて、通信装置10は、目標CPU使用率よりも小さいCPU使用率に対応する各タイマパラメータ値の中から、最小となるタイマパラメータ値を変更すべきタイマパラメータ値に決定する(ステップS3006)。具体的には、タイマパラメータ変更部14cは、算出結果記憶部12cに記憶されている各タイマパラメータに対応するCPU使用率と、目標CPU使用率とを比較し、目標CPU使用率よりも小さく、かつ、最小となるタイマパラメータ値を変更すべきタイマパラメータ値に決定する。
そして、通信装置10は、タイマパラメータ値を決定したタイマパラメータ値に変更し(ステップS3007)、計測した受信パケット数の累計を「0」に変更し(ステップS3008)、再びパケットの受信を待機する(ステップS3001)。
[CPU使用率算出処理]
次に、図10を用いて、CPU使用率算出処理を説明する。図10は、CPU使用率算出処理の流れを示すフローチャートである。なお、CPU使用率算出処理は、図9で示したステップS3005に対応する。
図10に示すように、CPU使用率算出部14dは、CPU使用率算出処理を開始すると、「i」、「t1」、「t2」、「w1」、「w2」および「sum」の値を全て「0」に設定する(ステップS4001)。
続いて、CPU使用率算出部14dは、CPU使用率算出部14dは、「w1」に対して保留時間を加算するとともに、「sum」に対して保留時間を加算する(ステップS4002)。
続いて、CPU使用率算出部14dは、「t1」に対して割り込み処理時間を加算するとともに、「sum」に対して割り込み処理時間を加算する(ステップS4003)。
続いて、CPU使用率算出部14dは、「t2」に対して通信処理時間を加算するとともに、「sum」に対して通信処理時間を加算する(ステップS4004)。
続いて、CPU使用率算出部14dは、「i」に対して1パケットを処理したことを意味する「1」を加算する(ステップS4005)。
続いて、CPU使用率算出部14dは、「sum」が「1000マイクロ秒」以上であるか否かを判定する(ステップS4006)。
ここで、「sum」が「1000マイクロ秒」以上でないと判定した場合には(ステップS4006否定)、CPU使用率算出部14dは、「i」に対して「1パケットを受信するのに要する時間」を乗算して、乗算結果が「sum」以上であるか否かを判定する(ステップS4007)。
ここで、乗算結果が「sum」以上でないと判定した場合には(ステップS4007否定)、CPU使用率算出部14dは、再び「t2」に対して通信処理時間を加算するとともに、「sum」に対して通信処理時間を加算して(ステップS4004)、上記した処理(ステップS4004〜S4007)を繰り返し実行する。
一方では、乗算結果が「sum」以上であると判定した場合には(ステップS4007肯定)、CPU使用率算出部14dは、「「i」に対して「1パケットを受信するのに要する時間」を乗算した値」から「sum」を差し引いた差分値を「w2」に対して加算するとともに、「sum」を「「i」に対して「1パケットを受信するのに要する時間」を乗算した値」に変更する(ステップS4008)。
続いて、CPU使用率算出部14dは、再び「w1」に対して保留時間を加算するとともに、「sum」に対して保留時間を加算して(ステップS4002)、上記した処理(ステップS4002〜S4008)を繰り返し実行する。
ステップS4006の説明に戻ると、「sum」が「1000マイクロ秒」以上であると判定した場合には(ステップS4006肯定)、CPU使用率算出部14dは、「t1」と、「t2」とを積算した積算値から「sum」を除算してCPU使用率を算出し(ステップS4009)、CPU使用率算出処理を終了する。
[実施例2の効果]
上記したように、実施例2によれば、ネットワークアダプタによって受信された受信パケットの数を用いて算出されるCPU使用率に基づいて、パケット受信に対するレスポンスを高速化することが可能である。
ところで、実施例1および実施例2では、タイマパラメータ値を動的に変更する場合を説明したが、タイマパラメータ値を動的に変更することがハードウェアレベルでサポートされていない場合があり、この場合には、ハードウェアレベルで再初期化した後に、タイマパラメータ値を変更するようにしてもよい。
しかしながら、ハードウェアレベルでの再初期化には、数ミリ秒から数秒ほどの時間を要すことが多い。再初期化の最中にはパケットの送受信が実行できないため、頻繁にハードウェアレベルでの再初期化を実行すると、ロスするパケットの数が多くなり、結果として、ネットワークの性能の低下が発生する場合がある。
そこで、実施例3では、タイマパラメータ値を変更するためのハードウェアレベルでの再初期化の頻度を抑制する場合を説明する。なお、実施例3では、実施例3に係る通信装置10の構成および通信装置10による処理の流れを説明した後、実施例3による効果を説明する。
[実施例3に係る通信装置の構成]
まず、実施例3に係る通信装置10の構成を説明する。図11は、実施例3に係る通信装置の構成を示すブロック図である。実施例3に係る通信装置10の構成は、変更時刻記憶部12dを新たに備える他は、実施例1に係る通信装置10と以下に説明する点が異なる。
すなわち、変更時刻記憶部12dは、タイマパラメータ値を変更したときの時刻を記憶する。具体的には、変更時刻記憶部12dは、タイマパラメータ変更部14cによってタイマパラメータ記憶部13aに記憶されているタイマパラメータ値を決定タイマパラメータ値に書き換えたときの時刻を記憶する。
タイマパラメータ変更部14cは、前回タイマパラメータ値を変更したときから一定の時間が経過したか否かを判定し、一定の時間が経過していないと判定した場合には、タイマパラメータ値の変更を中止する。
具体的には、タイマパラメータ変更部14cは、タイマパラメータ記憶部13aに記憶されているタイマパラメータ値が決定したタイマパラメータ値と同じか否かを判定し、同じでない場合には、変更時刻記憶部12dからタイマパラメータ値を変更したときの時刻を読み込む。
そして、タイマパラメータ変更部14cは、タイマパラメータ値を変更したときから一定の時間(例えば、ハードウェアレベルでの再初期化に要する時間の100倍)が経過したか否かを判定する。ここで、タイマパラメータ値を変更したときから一定の時間が経過していると判定した場合には、タイマパラメータ変更部14cは、タイマパラメータ記憶部13aに記憶されているタイマパラメータ値を決定タイマパラメータ値に書き換え、変更時刻記憶部12dに記憶されている時刻を変更すべきタイマパラメータ値を決定したときの時刻(つまり、この処理を実行している時点の時刻)に書き換える。
一方では、タイマパラメータ値を変更したときから一定の時間が経過していないと判定した場合には、変更時刻記憶部12dは、タイマパラメータ値の変更を中止し、パケット数計測部14bに受信パケット数の累計を「0」に変更するとともに受信パケット数の計測を再開させる。
[実施例3に係る通信装置によるタイマパラメータ変更処理]
次に、図12を用いて、実施例3に係る通信装置10によるタイマパラメータ変更処理を説明する。図12は、実施例3に係る通信装置によるタイマパラメータ変更処理の流れを示すフローチャートである。なお、以下では、実施例1に係る通信装置10によるタイマパラメータ変更処理と異なる点について詳細に説明する。
図12に示すように、通信装置10は、通信装置10の外部からパケットを受信すると(ステップS5001肯定)、受信パケットの数を計測し(ステップS5002)、受信したパケットの数の累計が所定の数値に満たない場合には(ステップS5003否定)、通信装置10は、再びパケットの受信を待機する(ステップS5001)。
一方では、受信したパケットの数の累計が所定の数値に至ると(ステップS5003肯定)、通信装置10は、「単位時間当たりのパケット数」を算出し(ステップS5004)、目標CPU使用率よりも小さいCPU使用率に対応する各タイマパラメータ値の中から、最小となるタイマパラメータ値を変更すべきタイマパラメータ値に決定する(ステップS5005)。
そして、通信装置10は、前回タイマパラメータ値を変更したときから一定の時間が経過したか否かを判定する(ステップS5006)。具体的には、タイマパラメータ変更部14cは、変更時刻記憶部12dからタイマパラメータ値を変更したときの時刻を読み込み、タイマパラメータ値を変更したときから一定の時間が経過したか否かを判定する。
ここで、タイマパラメータ値を変更したときから一定の時間が経過していると判定した場合には(ステップS5006肯定)、通信装置10は、タイマパラメータ値を決定タイマパラメータ値に変更し(ステップS5007)、前回タイマパラメータ値を変更したときの時刻をこの処理を実行している時点の時刻に書き換える(ステップS5008)。具体的には、タイマパラメータ変更部14cは、タイマパラメータ記憶部13aに記憶されているタイマパラメータ値を決定タイマパラメータ値に書き換え、変更時刻記憶部12dに記憶されている時刻を変更すべきタイマパラメータ値を決定したときの時刻に書き換える。
そして、通信装置10は、計測した受信パケット数の累計を「0」に変更し(ステップS5009)、再びパケットの受信を待機する(ステップS5001)。
ステップS5006に戻ると、タイマパラメータ値を変更したときから一定の時間が経過していないと判定した場合には(ステップS5006否定)、計測した受信パケット数の累計を「0」に変更し(ステップS5009)、再びパケットの受信を待機する(ステップS5001)。
[実施例3の効果]
上記したように、実施例3によれば、ネットワークの性能の低下を発生することなくパケット受信に対するレスポンスを高速化することが可能である。
さて、これまで実施例1〜3について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、実施例4として、他の実施例を説明する。
例えば、実施例1では、受信したパケットの数の累計が所定の数値に至ることを契機に、タイマパラメータ値を変更する場合を説明した。しかしながら、所定の時間当たりに受信するパケットの数が極端に少ない場合には、受信したパケットの数の累計が所定の数値に至るまでに長時間を要する。
この場合には、所定の時間が経過することを契機に、「単位時間当たりのパケット数」を計測結果として算出し、タイマパラメータ値を変更するようにしても本発明を適用することができる。
また、実施例1では、目標CPU使用率よりも小さいと判定したCPU使用率に対応する各タイマパラメータ値の中から、最小となるタイマパラメータ値を変更すべきタイマパラメータ値に決定する場合を説明したが、本発明はこれに限定されるものではなく、シミュレーション結果に基づいて、パケット数計測部14bによる計測結果とCPU使用率とが加味されたタイマパラメータ値に変更する場合であれば適用することができる。
すなわち、所定の間隔で区分けして設定された単位時間当たりのパケット数値範囲に対応付けて、シミュレーション結果に基づいて設定されたタイマパラメータ値をシミュレート結果記憶部12bに記憶しておき(図13参照)、パケット数計測部14bによる計測結果に対応するタイマパラメータ値を変更すべきタイマパラメータ値に決定するようにしてもよい。なお、図13は、実施例4に係るシミュレート結果記憶部に記憶される情報の一例を示した図である。
(装置構成等)
また、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報(例えば、図3、図7および図13に示した記憶情報や図8に示したパラメータ)については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図2に示したパケット数計測部14bと、タイマパラメータ変更部14cとを統合して構成することができる。
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(通信プログラム)
ところで、本発明はあらかじめ用意されたプログラムを通信装置10としてのコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図14を用いて、上記の実施例に示した通信装置10と同様の機能を有する通信プログラムを実行するコンピュータを一例として説明する。図14は、通信プログラムを実行するコンピュータを示す図である。
図14に示すように、通信装置10としてのコンピュータ110は、入力部120、ROM130、CPU140、HDD150、RAM160、出力部170およびネットワークアダプタ180をバス190などで接続して構成される。
ROM130には、上記の実施例1に示した通信装置10と同様の機能を発揮する通信プログラム、つまり、図14に示すようにパケット受信プログラム130aと、割り込み処理プログラム130bと、通信処理プログラム130cと、パケット数計測プログラム130dと、タイマパラメータ変更プログラム130eとが、あらかじめ記憶されている。なお、これらのプログラム130a〜プログラム130eについては、図2に示した通信装置10の各構成要素と同様、適宜統合または、分散してもよい。
そして、CPU140がこれらのプログラム130a〜プログラム130eをROM130から読み出して実行することで、図14に示すように、プログラム130a〜プログラム130eは、パケット受信プロセス140aと、割り込み処理プロセス140bと、通信処理プロセス140cと、パケット数計測プロセス140dと、タイマパラメータ変更プロセス140eとして機能するようになる。なお、プロセス140a〜プロセス140eは、図2に示した、パケット受信13bと、割り込み処理部13cと、通信制御部14aと、パケット数計測部14bと、タイマパラメータ変更部14eとにそれぞれ対応する。
また、HDD150には、図14に示すように、シミュレート結果データテーブル150aが設けられる。なお、シミュレート結果データテーブル150aは、図2に示したシミュレート結果記憶部12bに対応する。そして、CPU140は、入力部120を介して受け付けたタイマパラメータデータ160aおよび目標CPU使用率データ160bをRAM160に格納するとともに、シミュレート結果データテーブル150aから、シミュレート結果データ160cを読み出してRAM160に格納し、RAM160に格納されたタイマパラメータデータ160a、目標CPU使用率データ160bおよびシミュレート結果データ160cに基づいて処理を実行する。
なお、上記した各プログラム130a〜プログラム130eについては、必ずしも最初からROM130に記憶させておく必要はなく、例えば、コンピュータ110に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」、またはコンピュータ110の内外に備えられるHDDなどの「固定用の物理媒体」、さらには公衆回線、インターネット、LAN、WANなどを介してコンピュータ110に接続される「他のコンピュータ(またはサーバ)」などに各プログラムを記憶させておき、コンピュータ110がこれから各プログラムを読み出して実行するようにしてもよい。
実施例1に係る通信装置の概要および特徴を説明するための図である。 通信装置の構成を示すブロック図である。 シミュレート結果記憶部に記憶される情報の一例を示す図である。 通信装置による通信処理の流れを示すフローチャートである。 通信装置によるタイマパラメータ変更処理の流れを示すフローチャートである。 実施例2に係る通信装置の構成を示すブロック図である。 算出結果記憶部に記憶される情報の一例を示した図である。 CPU使用率算出部によるCPU使用率算出処理の一例を説明するための図である。 実施例2に係るタイマパラメータ変更処理の流れを示すフローチャートである。 CPU使用率算出処理の流れを示すフローチャートである。 実施例3に係る通信装置の構成を示すブロック図である。 実施例3に係る通信装置によるタイマパラメータ変更処理の流れを示すフローチャートである。 実施例4に係るシミュレート結果記憶部に記憶される情報の一例を示した図である。 通信プログラムを実行するコンピュータを示す図である。
符号の説明
10 通信装置
11 入出力部
12 記憶部
12a 目標CPU使用率記憶部
12b シミュレート結果記憶部
12c 算出結果記憶部
12d 変更時刻記憶部
13 ネットワークアダプタ
13a タイマパラメータ記憶部
13b パケット受信部
13c 割り込み処理部
14 制御部
14a 通信制御部
14b パケット数計測部
14c タイマパラメータ変更部
14d CPU使用率算出部
110 コンピュータ
120 入力部
130 ROM(Read-Only Memory)
130a パケット受信プログラム
130b 割り込み処理プログラム
130c 通信処理プログラム
130d パケット数計測プログラム
130e タイマパラメータ変更プログラム
140 CPU(Central Processing Unit)
140a パケット受信プロセス
140b 割り込み処理プロセス
140c 通信処理プロセス
140d パケット数計測プロセス
140e タイマパラメータ変更プロセス
150 HDD(Hard disk drive)
150a シミュレート結果データテーブル
160 RAM(Random Access Memory)
160a タイマパラメータデータ
160b 目標CPU使用率データ
160c シミュレート結果データ
170 出力部
180 ネットワークアダプタ
190 バス

Claims (7)

  1. 所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として行われる受信パケットの通信処理をコンピュータに実行させる通信プログラムであって、
    単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測手順と、
    前記パケット数計測手順による計測結果に基づいて、前記保留時間を決定するためのタイマパラメータ値を変更するパラメータ値変更手順と、
    をコンピュータに実行させることを特徴とする通信プログラム。
  2. 前記パラメータ値変更手順は、予め設定された単位時間あたりに処理を行う目標パケット数よりも前記パケット数計測手順による計測結果のほうが少ない場合には、前記タイマパラメータ値を小さい方に変更し、前記目標パケット数よりも前記パケット数計測手順による計測結果のほうが多い場合には、前記タイマパラメータ値を大きい方に変更することを特徴とする請求項1に記載の通信プログラム。
  3. 所定の間隔で区分けして設定されたパケット数値範囲ごとに、前記タイマパラメータ値を変更したときのCPU使用率を計測するシミュレーションを実行し、各パケット数値範囲に対応付けて、各タイマパラメータ値ごとのCPU使用率をシミュレーション結果として記憶部に記憶するシミュレーション結果記憶手順をさらにコンピュータに実行させ、
    前記パラメータ値変更手順は、前記シミュレーション結果記憶手順により記憶されている前記シミュレーション結果に基づいて、前記パケット数計測手順による前記計測結果と前記CPU使用率とが加味された前記タイマパラメータ値に変更することを特徴とする請求項1または2に記載の通信プログラム。
  4. 前記パケット数計測手順による前記計測結果と、予め設定された前記通信処理に要する通信処理時間と、予め設定された前記割り込み処理に要する割り込み処理時間とに基づいて、前記タイマパラメータ値ごとに前記CPU使用率を算出するCPU使用率算出手順をさらにコンピュータに実行させ、
    前記パラメータ値変更手順は、前記CPU使用率算出手順による算出結果に基づいて、前記タイマパラメータ値を変更することを特徴とする請求項1または2に記載の通信プログラム。
  5. 前記パラメータ値変更手順は、前回タイマパラメータ値を変更したときから一定の時間が経過したか否かを判定し、一定の時間が経過していないと判定した場合には、前記タイマパラメータ値の変更を中止することを特徴とする請求項1〜4のいずれか1つに記載の通信プログラム。
  6. 所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として受信パケットを通信処理する通信装置であって、
    単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測手段と、
    前記パケット数計測手段による計測結果に基づいて、前記保留時間を決定するためのタイマパラメータ値を変更するパラメータ値変更手段と、
    を備えたことを特徴とする通信装置。
  7. 所定の保留時間経過後にネットワークアダプタがパケット受信通知として割り込み処理を実行し、当該割り込み処理の受付を契機として受信パケットを通信処理する通信方法であって、
    単位時間あたりに前記ネットワークアダプタによって受信された受信パケットの数を計測するパケット数計測工程と、
    前記パケット数計測工程による計測結果に基づいて、前記保留時間を決定するためのタイマパラメータ値を変更するパラメータ値変更工程と、
    を含んだことを特徴とする通信方法。
JP2007307913A 2007-11-28 2007-11-28 通信プログラム、通信装置および通信方法 Expired - Fee Related JP4952542B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007307913A JP4952542B2 (ja) 2007-11-28 2007-11-28 通信プログラム、通信装置および通信方法
US12/264,554 US7836227B2 (en) 2007-11-28 2008-11-04 Computer-readable recording medium having communication program recorded thereon, communication apparatus, and communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007307913A JP4952542B2 (ja) 2007-11-28 2007-11-28 通信プログラム、通信装置および通信方法

Publications (2)

Publication Number Publication Date
JP2009134358A true JP2009134358A (ja) 2009-06-18
JP4952542B2 JP4952542B2 (ja) 2012-06-13

Family

ID=40670721

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007307913A Expired - Fee Related JP4952542B2 (ja) 2007-11-28 2007-11-28 通信プログラム、通信装置および通信方法

Country Status (2)

Country Link
US (1) US7836227B2 (ja)
JP (1) JP4952542B2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01282643A (ja) * 1988-05-10 1989-11-14 Nec Corp インターバル・タイムの動的変更方式
WO2003063002A1 (fr) * 2002-01-24 2003-07-31 Fujitsu Limited Ordinateur permettant de determiner dynamiquement un delai d'interruption
JP2003524312A (ja) * 1999-03-01 2003-08-12 サン・マイクロシステムズ・インコーポレイテッド ネットワークインターフェースにおいて割込みを示す方法および装置
JP2004072228A (ja) * 2002-08-02 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> パケット交換網の性能管理閾値設定方法、閾値設定装置、プログラム、およびプログラムを記憶した記憶媒体
JP2005032036A (ja) * 2003-07-07 2005-02-03 Nec Engineering Ltd チャネルカードの割込間隔値自動設定装置
JP2007241842A (ja) * 2006-03-10 2007-09-20 Nec Corp I/oブリッジ回路及び割り込み信号制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115776A (en) * 1996-12-05 2000-09-05 3Com Corporation Network and adaptor with time-based and packet number based interrupt combinations
US6434651B1 (en) * 1999-03-01 2002-08-13 Sun Microsystems, Inc. Method and apparatus for suppressing interrupts in a high-speed network environment
US6889277B2 (en) * 2002-04-18 2005-05-03 Sun Microsystems, Inc. System and method for dynamically tuning interrupt coalescing parameters
US6988156B2 (en) * 2002-04-18 2006-01-17 Sun Microsystems, Inc. System and method for dynamically tuning interrupt coalescing parameters
KR100924693B1 (ko) * 2002-09-04 2009-11-03 삼성전자주식회사 인터럽트의 발생횟수를 최소화하는 네트워크 인터페이스카드(Network Interface Card) 및인터럽트 발생방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01282643A (ja) * 1988-05-10 1989-11-14 Nec Corp インターバル・タイムの動的変更方式
JP2003524312A (ja) * 1999-03-01 2003-08-12 サン・マイクロシステムズ・インコーポレイテッド ネットワークインターフェースにおいて割込みを示す方法および装置
WO2003063002A1 (fr) * 2002-01-24 2003-07-31 Fujitsu Limited Ordinateur permettant de determiner dynamiquement un delai d'interruption
JP2004072228A (ja) * 2002-08-02 2004-03-04 Nippon Telegr & Teleph Corp <Ntt> パケット交換網の性能管理閾値設定方法、閾値設定装置、プログラム、およびプログラムを記憶した記憶媒体
JP2005032036A (ja) * 2003-07-07 2005-02-03 Nec Engineering Ltd チャネルカードの割込間隔値自動設定装置
JP2007241842A (ja) * 2006-03-10 2007-09-20 Nec Corp I/oブリッジ回路及び割り込み信号制御方法

Also Published As

Publication number Publication date
JP4952542B2 (ja) 2012-06-13
US20090138642A1 (en) 2009-05-28
US7836227B2 (en) 2010-11-16

Similar Documents

Publication Publication Date Title
US10178165B2 (en) Distributing application traffic to servers based on dynamic service response time
JP6457447B2 (ja) データセンターのネットワークトラフィックスケジューリング方法及び装置
US9825869B2 (en) Traffic shaping based on request resource usage
JP2019537115A (ja) ユーザー異常行動検出方法、装置及びシステム
CN107370684B (zh) 业务限流方法及业务限流装置
KR102128144B1 (ko) 데이터 교환을 위한 방법 및 장치
US9769022B2 (en) Timeout value adaptation
US20180145883A1 (en) Server, computer program product, and communication system
JP4952542B2 (ja) 通信プログラム、通信装置および通信方法
CN109981779A (zh) 服务提供方法、服务器及计算机存储介质
CN108122050A (zh) 时间预估方法、装置、电子设备及计算机可读存储介质
JP2011095869A (ja) リクエスト情報処理方法および計算機システム
JP2014191378A (ja) サーバ数調整システムおよび方法ならびにプログラム
JP6191162B2 (ja) サーバ装置、サービス無償利用管理方法およびサービス無償利用管理プログラム
JP6823257B2 (ja) ジョブ監視プログラム、ジョブ監視装置及びジョブ監視方法
CN112379978B (zh) 后端服务调用方法、装置、设备和存储介质
JP6335527B2 (ja) システム、システムの制御方法およびコンピュータプログラム
US8051419B2 (en) Method of dynamically adjusting number of task request
JP5291366B2 (ja) 流量制御装置
US20160088119A1 (en) Relay device and relay method
KR102523008B1 (ko) 오류의 검출에 기반하여 게임의 모드를 적응적으로 전환하기 위한 전자 장치, 방법, 및 컴퓨터 판독가능 저장 매체
CN113300901B (zh) 一种数据流监控方法、装置、电子设备以及存储介质
JP2004070579A (ja) タスクスケジューリング装置、タスクスケジューリング方法、プログラム
US11144350B2 (en) Automatic management of server overloads
JP5384566B2 (ja) フロントエンドサーバ、インタプリタ型プログラム及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120123

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: 20120214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120227

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees