JP4747307B2 - ネットワーク処理制御装置,プログラムおよび方法 - Google Patents

ネットワーク処理制御装置,プログラムおよび方法 Download PDF

Info

Publication number
JP4747307B2
JP4747307B2 JP2009539914A JP2009539914A JP4747307B2 JP 4747307 B2 JP4747307 B2 JP 4747307B2 JP 2009539914 A JP2009539914 A JP 2009539914A JP 2009539914 A JP2009539914 A JP 2009539914A JP 4747307 B2 JP4747307 B2 JP 4747307B2
Authority
JP
Japan
Prior art keywords
cpu
network
processing
unit
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009539914A
Other languages
English (en)
Other versions
JPWO2009060530A1 (ja
Inventor
博史 山口
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
Publication of JPWO2009060530A1 publication Critical patent/JPWO2009060530A1/ja
Application granted granted Critical
Publication of JP4747307B2 publication Critical patent/JP4747307B2/ja
Active 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Selective Calling Equipment (AREA)

Description

本発明は,ネットワーク処理の制御技術に関し,より詳しくは,ネットワーク高負荷時のシステム負荷軽減を図るため,処理モードを切り替えてネットワーク処理を制御するネットワーク処理制御装置,プログラムおよび方法に関する。
ネットワークに接続するコンピュータのネットワーク制御部(ネットワークコントローラ)は,ネットワークからデータ(パケット)を受信すると,受信パケットを直接データ格納部(リングバッファ)へ格納し,CPUへ割り込みを通知する。
CPUは,ネットワークコントローラの割り込み通知により,オペレーティングシステム(OS)に登録してあるネットワークドライバの割り込みハンドラを実行する。ドライバの割り込みハンドラは,リングバッファをチェックし,リングバッファに格納されたパケットを処理する。
ネットワークドライバがリングバッファのパケットを処理する方法には以下の2種類がある。
1.割り込みのみでリングバッファを処理する方法(割り込み手法)
割り込み手法では,ネットワークドライバは,ネットワークコントローラの割り込み通知ごとにリングバッファをチェックし,格納されたパケットを処理する。
2.ポーリングでリングバッファを処理する方法(ポーリング手法)
ポーリング手法では,ネットワークドライバは,リングバッファを定期的にチェックし,リングバッファにパケットが存在していれば,そのパケットを処理する。
例えば,ネットワークドライバは,最初の割り込み通知によりネットワークコントローラの割り込み通知機能を抑止し,その後,リングバッファを定期的にチェックして存在するパケットを処理する。そして,リングバッファの定期的チェック時にパケットが存在しなければ,ネットワークコントローラの割り込み通知機能を有効にして,定期的チェックを停止する(例えば,特許文献1参照)。
リングバッファの定期的チェックの契機として,以下の1つまたは複数のタイミングが使用される。
(1)タイマ:タイマによる時間監視をもとに一定時間ごとにチェックする。
(2)他のドライバの割り込み:他のドライバの割り込み処理が終了した後にチェックする。
(3)低優先度のデーモンプログラム:プログラムに優先度が設定されている場合に,低優先度のデーモンプログラムを用意しておき,デーモンプログラムにCPUを割り当てたときにチェックする。
特開平7−49822号公報
従来のリングバッファのデータ処理では,以下のような問題点があった。
(1)従来の割り込み手法では,ネットワークコントローラが大量のパケットを継続的に受信するような状態,すなわち,ネットワークが高負荷の状態である場合には,ネットワークコントローラの割り込み通知が多発し,ネットワークドライバの割り込み処理がCPUを占有してしまう。その結果,他のアプリケーションプログラムが動作することができなくなり,システムの本来のサービスが提供できない状態となる。
(2)また,従来のポーリング手法では,ポーリングによってデータ処理が行われるため,ネットワークが高負荷な状態のときでもネットワークドライバの割り込みが多発するような状況は起きない。しかしながら,ポーリング間隔中に受信したパケット数がリングバッファの格納可能数を超えると,超過分のパケットが破棄されることになる。
そして,ポーリングの契機を特定する方法によって,以下のような問題が生じる。
(2−1)タイマによってポーリング契機が特定される場合には,ネットワークコントローラが受信したパケットをネットワークドライバが処理するまでのレイテンシ(遅延時間)が,最大でタイマ間隔時間だけかかることになる。したがって,ネットワークドライバの処理タイミングを早めることができず,システムの本来のサービスのパフォーマンスが低下することになる。
また,タイマ間隔時間を短くすると,ネットワーク高負荷時にはネットワークドライバがCPUを占有する状態が生じ,アプリケーションプログラムが動作することができなくなり,システムの本来のサービスが提供されない状態となる。
(2−2)他のドライバの割り込みによってポーリング契機が特定される場合には,他のドライバの割り込みが不定期であるため,ネットワークコントローラが受信したパケットがネットワークドライバによって処理されるまでのレイテンシを予測することができない。したがって,他のドライバの割り込みの発生状況によっては,システムの本来のサービスのパフォーマンスが低下する状態が生じるおそれがある。
さらに,他のドライバの割り込みが多いと,他のドライバとネットワークドライバとがCPUを占有し,アプリケーションプログラムが動作することができなくなり,システムの本来のサービスを提供できない状態となる。
(2−3)低優先度のデーモンプログラムによってポーリング契機が特定される場合には,他のアプリケーションプログラムの多くがCPUを使用する状態が続くことによって,低優先度のデーモンプログラムにはCPUが割り当てられない状況が生じる。したがって,デーモンプログラムが起動されず,ネットワークドライバが受信したパケットを処理できないため,システムの本来のサービスを提供できない状態となる。
このように,多数のアプリケーションプログラム・ドライバがCPUを使用する状態と,ネットワークが高負荷であってネットワークドライバがCPUを使用する状態とが同時に発生する場合に,従来の手法では,アプリケーションプログラムとネットワークドライバのどちらかの処理が犠牲となる。そのため,システム全体として本来のサービスを提供できないという問題がある。
本発明の目的は,アプリケーションプログラムとネットワークドライバの両方に対して,適切なCPU時間の割り当てを図るために,アプリケーションプログラム,ドライバによるCPUの使用状況を監視し,CPUの使用状況にもとづいて,ネットワークドライバの処理契機を変化させることができる技術を提供することである。
本発明は,ネットワークを介してデータ送受信を行い,受信したデータをデータ格納部へ格納するネットワーク制御部と,当該データ格納部に格納されたデータを処理するネットワーク処理部とを備えるネットワーク処理制御装置において,ネットワーク処理制御装置を構成する各処理手段が以下のような処理を行う。
CPU使用情報処理部が,当該ネットワーク処理制御装置のCPUの使用状況を示すCPU使用情報を取得すると,CPUの使用状況が高負荷または低負荷であるかを判定する判定条件を備えた負荷状態判定部が,CPU使用情報からCPUの負荷状態を判定する。そして,判定条件設定部が,前記判定条件の設定または変更の情報の入力を受け付け,前記判定条件を更新する。
そして,処理モード設定部が,ネットワーク処理部の処理モードとして,負荷状態が低負荷と判定された場合に,割り込みモードを設定する。また,前記負荷状態が高負荷と判定された場合に,ポーリングモードを設定する。
ネットワーク処理部では,割り込みモードが設定されている場合には,ネットワーク制御部がデータ格納部へのデータ格納時に発行する割り込み通知を契機に,前記データの処理を行う。また,ポーリングモードが設定されている場合には,所定の間隔でデータ格納部にポーリングを行い,前記データの処理を行う。
なお,ポーリングモードが設定されると,ネットワーク制御部の割り込み通知機能は抑止され,割り込みモードへ変更されると,当該割り込み通知機能の抑止が解除される。
これにより,ネットワークデバイスの割り込み処理が多数生じCPUが占有されるという状態を回避することができる。よって,多数のアプリケーションプログラムがCPUを使用する状態と,ネットワーク高負荷時においてネットワークドライバがCPUを使用する状態とが同時に発生するような場合でも,システムとしての本来のサービスを継続することができる。
また,前記装置では,CPU使用情報処理部が,CPU使用情報として,CPUを使用するアプリケーションプログラム数を取得する。そして,負荷状態判定部が,CPUを使用するアプリケーションプログラム数を用いてCPUの使用状況が高負荷または低負荷であるかを判定する判定条件を備え,取得されたアプリケーションプログラム数からCPUの負荷状態を判定する。
さらに,前記装置では,負荷条件判定部が,CPU使用情報の所定の計測値が,判定条件として予め設定された上限値以上であるかを判定し,処理モード設定部は,取得された計測値が上限値以上の場合に,ポーリングの間隔を長くする変更を行う。
または,前記負荷条件判定部は,CPU使用情報の所定の計測値が,前記判定条件として予め設定された下限値以下であるかを判定し,処理モード設定部が,計測値が下限値以下の場合に,ポーリングの間隔を短くする変更を行う。
これにより,CPUの負荷の傾向に対応してポーリングの間隔を変更することができるので,データ格納部で必要以上にデータが破棄されることがなく,ネットワーク高負荷時におけるシステム本来のサービスの低下を最小限に抑えることができる。
また,前記装置は,判定条件の設定または変更の情報入力を受け付け,保持された判定条件を更新する判定条件設定部を備える。
これにより,前記装置で実行されるアプリケーションの状況,接続されるネットワークの状況などに応じて任意に判定条件を設定することができ,前記装置の使用状況に対応させたネットワーク処理制御を行うことができる。
本発明によれば,ネットワーク処理が高負荷になったとき,システムのCPU使用率などを算出し,CPU使用率に応じてネットワークドライバによる受信データ処理のタイミングを変化させることができる。よって,データ(パケット)の受信率を変化させることができるため,ネットワークドライバがCPUを占有して他のサービスが動作できなくなる状態を防止することができる。
本発明の実施の形態における構成例を示す図である。 本発明の実施形態におけるンピュータの構成例を示す図である。 コンピュータのソフトウェアの構成例を示す図である。 判定条件の例を示す図である。 本発明の実施形態における処理(割り込みモード時の処理)の流れを示すフローチャートである。 本発明の実施形態における処理(ポーリングモード時の処理)の流れを示すフローチャートである。 CPU使用情報の遷移と処理モードの変更タイミングとを説明するための図である。
符号の説明
1 ネットワーク処理制御装置
2 CPU
3 メモリ
4 ネットワーク
5 ネットワークデータ制御部(ネットワークコントローラ)
6 データ格納部(リングバッファ)
11 CPU使用情報取得部
12 判定条件格納部
13 負荷状態判定部
14 処理モード設定部
15 判定条件設定部
20 オペレーティングシステム(OS)
21 ネットワークドライバ
22 CPU使用状況監視ドライバ
23 ドライバ
25 アプリケーションプログラム
図1は本発明の実施の形態における構成例を示す図,図2は本実施形態を実施するコンピュータ10の構成例を示す図,および図3はコンピュータ10のソフトウェアの構成例を示す図である。
図1に示すネットワーク処理制御装置1は,コンピュータ10において,ソフトウェアプログラムなどによって構成されるCPU使用情報取得部11,判定条件格納部12,負荷状態判定部13,処理モード設定部14,および判定条件設定部15からなる。
コンピュータ10は,図2に示すように,CPU2,メモリ3,ネットワーク4に接続するネットワークデータ制御部(ネットワークコントローラ)5が,それぞれバス9で接続された構成をとる。
ネットワークコントローラ5は,ネットワーク4を介してデータの送受信処理を行う。ネットワークコントローラ5は,ネットワーク4から受信したパケットをリングバッファ6のエントリに格納する。
リングバッファ6は,ネットワークコントローラ5を制御するソフトウェアであるネットワークドライバ21がメモリ3に用意する。
また,コンピュータ10は,図3に示すように,オペレーティングシステム(OS)20,オペレーティングシステム20を構成するネットワークドライバ21,CPU使用状況監視ドライバ22,その他ドライバ23a,23b,…,およびアプリケーションプログラム25a,25b,…,などを備える。
オペレーティングシステム20は,アプリケーションプログラム25a,25b,…,やドライバ21,22,23a,23b,…,などへCPU2を割り当てるなど,システムの基本的な資源管理を行う。
ネットワークドライバ21は,ネットワークコントローラ5を制御し,オペレーティングシステム20とネットワークコントローラ5との間でパケットのやりとりを行う。
ネットワークドライバ21は,「割り込みモード」と「ポーリングモード」の2つの処理モードで動作することができる。「割り込みモード」は,ネットワークコントローラ5の割り込み通知機能を有効にして,リングバッファ6へ受信パケットが格納されるたびに発行される割り込み通知によってネットワークドライバ21がパケット処理を実行する処理モードである。「ポーリングモード」は,ネットワークコントローラ5の割り込み通知機能を抑止し,ネットワークドライバ21が所定の間隔でリングバッファ6をポーリングし,リングバッファ6に受信パケットが存在すればそのパケットのケット処理を実行する処理モードである。
CPU使用状況監視ドライバ22は,CPU2の使用状況を監視し,CPU2の使用状況を示す種々の計測情報を収集する。
アプリケーションプログラム25は,コンピュータ10のシステムとしてサービスを提供するプログラムである。
ネットワーク処理制御装置1のCPU使用情報取得部11は,CPU2のCPU使用情報を,CPU使用状況監視ドライバ22から取得する。
具体的には,以下の統計値が,CPU使用状況監視ドライバ22で監視・管理され,CPU使用情報取得部11によって取得される。
(1)user time:直近の単位時間あたりのアプリケーションプログラム25のCPU2の使用率,
(2)system time:直近の単位時間あたりのアプリケーションプログラム25以外のプログラム(オペレーティングシステム20,ドライバ21,22,23など)のCPU2の使用率,
(3)idle time: 直近の単位時間あたりのCPU2のアイドル率,
(4)実行待ち数:直近の単位時間あたりの実行待ちアプリケーションプログラム数の平均値。
判定条件格納部12は,負荷状態判定部13によって使用される,CPU2の使用状況が高負荷または低負荷であるかを判定するための判定条件を格納する。
図4は,判定条件の例を示す図である。
図4の条件1,2は,ネットワークドライバ21の処理モードとして「割り込みモード」が設定されている場合に使用される判定条件,条件3〜7は,処理モードとして「ポーリングモード」が設定されている場合に使用される判定条件である。
条件1:「割り込みモード」が設定されている場合に,CPU使用状況監視ドライバ22から取得した計測値が,「system time値が一定の閾値以上のとき,かつ,idle time値が0のとき」を満たすときは,CPU2の負荷は「高い」と判定する。条件1が満たされると,処理モードは,「割り込みモード」から「ポーリングモード」へ移行する。
条件2:「割り込みモード」が設定されている場合に,CPU使用状況監視ドライバ22から取得した計測値が,「条件1」を満たさないときは,CPU2の負荷は「低い」と判定する。この場合に,「割り込みモード」が維持される。
条件3:「ポーリングモード」が設定されている場合に,CPU使用状況監視ドライバ22から取得した計測値が,「system time値が一定の範囲の下限を下回ったとき,かつ,idle time値が0のとき」を満たすときは,CPU2の負荷は「より低い」と判定する。この場合に,ポーリングの間隔が短くなるように変更される。
条件4:「ポーリングモード」が設定されている場合に,CPU使用状況監視ドライバ22から取得した計測値が,「system time値が一定の閾値の範囲の上限を超えるとき,かつ,idle time値が0のとき」を満たすときは,CPU2の負荷は「より高い」と判定する。この場合に,ポーリングの間隔が長くなるように変更される。
条件5:「ポーリングモード」が設定されている場合に,CPU使用状況監視ドライバ22から取得した計測値が,「idle time値が0のとき,かつ,実行待ち数の増加量が一定の閾値を超えたとき」を満たすときは,CPU2の負荷は「より高い」と判定する。この場合に,ポーリングの間隔が長くなるように変更される。
条件6:「ポーリングモード」が設定されている場合に,CPU使用状況監視ドライバ22から取得した計測値が,「idle time値が0ではなくなった」を満たすときは,CPU2の負荷は「ない」と判定する。この場合に,処理モードが「ポーリングモード」から「割り込みモード」へ移行する。
条件7:「ポーリングモード」が設定されている場合に,CPU使用状況監視ドライバ22から取得した計測値が,「system time値が一定の範囲以内であるとき,かつ,idle time値が0のとき」を満たすときは,CPU2の負荷は「不変」と判定する。この場合には,「ポーリングモード」が維持され,また,ポーリングの間隔も変更されない。
負荷状態判定部13は,判定条件格納部12の判定条件を参照し,CPU使用状況監視ドライバ22から取得したCPU2の計測値を用いて,CPU2の負荷状態を判定する。
また,負荷状態判定部13は,判定条件にもとづいて,CPU2の計測値が所定の上限を上回った場合に,CPU2の負荷が「より高い」状態であると判定する。また,CPU2の計測値が所定の下限を下回った場合に,CPU2の負荷が「より低い」状態であると判定する。
処理モード設定部14は,負荷状態判定部13によって判定されたCPU2の負荷状態をもとに,ネットワークドライバ21の処理モードを設定する。処理モード設定部14は,判定条件にもとづいて,CPU2の負荷状態が「低い」と判定した場合に「割り込みモード」を設定し,負荷状態が「高い」と判定した場合に「ポーリングモード」を設定する。
したがって,CPU2の負荷が低い状態では,ネットワークドライバ21は「割り込みモード」で動作する。割り込みモード下では,ネットワークコントローラ5がパケットを受信してリングバッファ6に格納すると,ネットワークコントローラ5の割り込み通知が直ちに発行されるので,パケット受信時からネットワークドライバ21による受信パケット処理までのレイテンシを最小に抑えることができる。
また,CPU2の負荷が高い状態では,ネットワークドライバ21は「ポーリングモード」で動作する。ポーリングモード下では,ネットワークコントローラ5の割り込み通知は発行されず,ネットワークドライバ21が可変の時間間隔でリングバッファ6内の受信パケットを処理する。そのため,ポーリングの間隔を一定以上の間隔でとることになるので,その間にアプリケーションプログラム25や他のドライバ23などが動作可能となる。
また,処理モード設定部14は,CPU2の負荷が「より高い」と判定された場合に,ポーリングモードのポーリングの間隔を,現在設定されている間隔より長い間隔に変更する。また,「より低い」と判定された場合に,ポーリングの間隔を,現在設定されている間隔より短い間隔に変更する。
このように,ポーリングモード下で,CPU2の負荷の程度にもとづいてポーリングの間隔を変動させることにより,CPU2の負荷に対応させて必要最低限の間隔を保つことができる。
判定条件設定部15は,判定条件に使用される閾値などをアプリケーションプログラム25が変更できるようなインタフェースである。コンピュータ10のユーザは,判定条件格納部12に保持された判定条件に任意の閾値を設定することができる。
図5および図6は,本実施形態の処理の流れを示すフローチャートである。
ステップS1:ネットワークコントローラ5はパケットの受信を待機する。
ステップS2:ネットワークコントローラ5がネットワーク4からパケットを受信すると,リングバッファ6へ受信したパケットを格納し,CPU2へ割り込み通知を発行する。
ステップS3:ネットワークドライバ21はリングバッファ6のパケットを処理する。
ステップS4:ネットワーク処理制御装置1のCPU使用情報取得部11は,ネットワークドライバ21の割り込みモードでのパケット処理において,CPU使用状況監視ドライバ22からCPU使用情報(system time値,idle time値,アプリケーションの実行待ち数)を取得する。
ステップS5:負荷状態判定部13は,CPU2の負荷を判定する。CPU2の計測値が条件1に該当したときは,負荷が高いと判定し,ステップS6の処理へ進む。一方,CPU2の計測値が条件1に該当していないときは,CPU2の負荷が低いと判定し,ステップS1の処理へ戻る。
ステップS6:処理モード設定部14は,ポーリングモードを設定する。ネットワークドライバ21は,ポーリングモードへ移行し,ネットワークコントローラ5の割り込み通知機能を抑止し,所定間隔でポーリングを開始する。なお,ステップS5の処理で,CPU2の負荷が低いと判定されたときは,ネットワークドライバ21は,割り込みモードのまま動作する。
ステップS7:ネットワークドライバ21は,一定の時間間隔のポーリングにより,リングバッファ6内のパケットを処理する。
ステップS8:CPU使用情報取得部11は,パケット処理の後,CPU使用状況監視ドライバ22からCPU使用情報(system time値,idle time値,アプリケーションの実行待ち数)を取得する。
ステップS9:負荷状態判定部13は,CPU使用情報(CPU2の計測値)をもとに,CPU2の負荷状態を判定する。CPU2の計測値が条件6に該当する場合には,CPU2の負荷が「ない」と判定し,ステップS14の処理へ進む。また,CPU2の計測値が条件6に該当しない場合には,CPU2の負荷が「ある」と判定し,ステップS10の処理へ進む。
ステップS10:負荷状態判定部13は,CPU2の計測値が,条件4または条件5のいずれかに該当する場合には,CPU2の負荷が「より高い」と判定し,ステップS11の処理へ進む。条件4または条件5のいずれにも該当しない場合には,ステップS12の処理へ進む。
ステップS11:処理モード設定部14は,ポーリングの間隔を,現在の間隔より所定の間隔分だけ長くした間隔に変更する。ネットワークドライバ21は,変更された間隔でポーリングを行う。
ステップS12:負荷状態判定部13は,CPU2の計測値が,条件3に該当する場合には,CPU2の負荷が「より低い」と判定し,ステップS13の処理へ進む。条件3に該当しない場合には,ステップS7の処理へ戻る。
ステップS13:処理モード設定部14は,ポーリングの間隔を,現在の間隔より所定の間隔分だけ短くした間隔に変更する。ネットワークドライバ21は,変更された間隔でポーリングを行う。
ステップS14:処理モード設定部14は,割り込みモードを設定する。ネットワークドライバ21は,割り込みモードへ移行し,ネットワークコントローラ5の割り込み通知機能を有効にする。その後,ステップS1の処理へ戻る。
図7は,CPU使用情報の遷移と処理モードの変更タイミングを説明するための図である。
図7(A)は,CPU使用情報のうち,アプリケーションの実行待ち数の時系列のグラフと,処理モード,判定条件の閾値,ポーリングの間隔が変化するタイミングを示す図,図7(B)は,CPU使用情報のうち,system time値の時系列のグラフと,処理モード,判定条件の閾値,ポーリングの間隔が変化するタイミングを示す図である。
図7で,閾値th1〜th3は,以下を示す。
閾値th1:割り込みモード中はポーリングモードへ移行するsystem time値の閾値,または,ポーリングモード中はポーリングの間隔を狭める閾値
閾値th2:ポーリングの間隔を長くするsystem time値の閾値,
閾値th3:ポーリングの間隔を長くする実行待ち数の閾値。
以下,タイミングtimeA〜timeDについて説明する。ここでは,前提として,CPU使用情報のうち,idle timeは常に0であるとする。また,ネットワークドライバ21は,初期設定として,割り込みモードで動作している。
timeAにおいて,system timeが閾値th1を超える。そこで,CPU2の負荷が「高い」と判定され,割り込みモードからポーリングモードに変更される。ネットワークドライバ21はポーリングモードへ移行する。ここで,ポーリングの間隔は初期設定の間隔interval_1とする。
timeA〜timeB間で,間隔interval_1ではポーリングの間隔が短すぎることから,system time値が増加しつづける。
そして,timeBにおいて,system time値が閾値th2を超える。ここで,CPU2の負荷が「より高い」と判定され,ポーリングの間隔を,1段階長い,間隔interval_2へ変更する。
timeB〜timeC間で,ポーリングの間隔が長くなったため,system time値は減少しはじめる。しかし,アプリケーション負荷の増大により,再び,system time値が増加しはじめる。
timeCにおいて,system time値が閾値th2には達していないが,実行待ち数が閾値th3を超えた。そのため,ポーリングの間隔を,さらに1段階長い,間隔interval_3へ変更する。
timeC〜timeD間で,ポーリングの間隔が長くなったので,system time値が減少しはじめる。
すると,timeDにおいて,system time値が閾値th1を下回る。しかし,idle time値は0なので,ポーリングの間隔を,1段階短い,間隔interval_2へ戻す。
なお,この時点で,idle time値が0でなければ,ポーリングモードから割り込みモードに戻す。また,次に「ポーリングモード」が設定されるときは,ポーリングの間隔は初期設定の間隔interval_1が設定される。
以上,本発明をその実施の形態により説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。例えば,本発明の実施の形態として,ネットワーク処理制御装置1が,ネットワークドライバ21と協働するプログラムとして構成される場合を例に説明した。しかし,ネットワーク処理制御装置1は,ネットワークドライバ21内に,一つの機能部として構成されてもよい。

Claims (6)

  1. ネットワークを介してデータ送受信を行い,受信したデータをデータ格納部へ格納するネットワーク制御部と,当該データ格納部に格納されたデータを処理するネットワーク処理部とを備えるネットワーク処理制御装置において,
    当該ネットワーク処理制御装置のCPUの使用状況を示すCPU使用情報を取得するCPU使用情報取得部と,
    CPU使用情報に含まれるCPUのアプリケーションプログラム以外のプログラムのCPU使用率,CPUのアイドル率および実行待ちアプリケーションプログラム数をもとに,該CPUの使用状況が高負荷または低負荷であるかを判定する判定条件を備え,前記CPU使用情報から前記CPUの負荷状態を判定する負荷状態判定部と,
    前記判定条件の設定または変更の情報の入力を受け付け,前記判定条件を更新する判定条件設定部と,
    前記ネットワーク処理部の処理モードとして,前記負荷状態が低負荷と判定された場合に割り込みモードを設定し,前記負荷状態が高負荷と判定された場合にポーリングモードを設定する処理モード設定部とを備えて,
    前記ネットワーク処理部は,前記割り込みモードが設定されている場合に前記ネットワーク制御部が発行する割り込み通知を契機に前記データ格納部のデータ処理を行い,前記ポーリングモードが設定されている場合に前記ネットワーク制御部の割り込み通知を抑止し,所定の間隔で前記データ格納部のデータ処理を行う
    ことを特徴とするネットワーク処理制御装置。
  2. 前記CPU使用情報取得部は,前記CPU使用情報として,前記CPUを使用するアプリケーションプログラム数を取得し,
    前記負荷状態判定部は,CPUを使用するアプリケーションプログラムの数を用いて前記CPUの使用状況が高負荷または低負荷であるかを判定する判定条件を備え,前記アプリケーションプログラム数から前記CPUの負荷状態を判定する
    ことを特徴とする請求項1記載のネットワーク処理制御装置。
  3. 前記負荷状態判定部は,前記CPU使用情報の所定の計測値が,前記判定条件として予め設定された上限値以上であるかを判定し,
    前記処理モード設定部は,前記計測値が前記上限値以上の場合に,前記ポーリングの間隔を長くする変更を行う
    ことを特徴とする請求項1に記載のネットワーク処理制御装置。
  4. 前記負荷状態判定部は,前記CPU使用情報の所定の計測値が,前記判定条件として予め設定された下限値以下であるかを判定し,
    前記処理モード設定部は,前記計測値が前記下限値以下の場合に,前記ポーリングの間隔を短くする変更を行う
    ことを特徴とする請求項1に記載のネットワーク処理制御装置。
  5. ネットワークを介してデータ送受信を行い,受信したデータをデータ格納部へ格納するネットワーク制御部と,当該データ格納部に格納されたデータを処理するネットワーク処理部とを備えるコンピュータに,
    当該コンピュータのCPUの使用状況を示すCPU使用情報を取得するCPU使用情報取得処理と,
    CPU使用情報に含まれるCPUのアプリケーションプログラム以外のプログラムのCPU使用率,CPUのアイドル率および実行待ちアプリケーションプログラム数をもとに,該CPUの使用状況が高負荷または低負荷であるかを判定する判定条件を備え,前記CPU使用情報から前記CPUの負荷状態を判定する負荷状態判定処理と,
    前記判定条件の設定または変更の情報の入力を受け付け,前記判定条件を更新する判定条件設定処理と,
    前記ネットワーク処理部の処理モードとして,前記負荷状態が低負荷と判定された場合に割り込みモードを設定し,前記負荷状態が高負荷と判定された場合にポーリングモードを設定する処理モード設定処理と,
    前記ネットワーク処理部によるデータ処理において,前記割り込みモードが設定されている場合に前記ネットワーク制御部が発行する割り込み通知を契機に前記データ格納部のデータ処理を行い,または前記ポーリングモードが設定されている場合に前記ネットワーク制御部の割り込み通知を抑止し,所定の間隔で前記データ格納部のデータ処理を行うネットワーク処理とを,
    実行させるためのネットワーク処理制御プログラム。
  6. ネットワークを介してデータ送受信を行い,受信したデータをデータ格納部へ格納するネットワーク制御部と,当該データ格納部に格納されたデータを処理するネットワーク処理部とを備えるコンピュータが,ネットワーク処理を制御する方法であって,
    当該コンピュータのCPUの使用状況を示すCPU使用情報を取得するCPU使用情報取得処理過程と,
    CPU使用情報に含まれるCPUのアプリケーションプログラム以外のプログラムのCPU使用率,CPUのアイドル率および実行待ちアプリケーションプログラム数をもとに,該CPUの使用状況が高負荷または低負荷であるかを判定する判定条件を備え,前記CPU使用情報から前記CPUの負荷状態を判定する負荷状態判定過程と,
    前記判定条件の設定または変更の情報の入力を受け付け,前記判定条件を更新する判定条件設定処理過程と,
    前記ネットワーク処理部の処理モードとして,前記負荷状態が低負荷と判定された場合に割り込みモードを設定し,前記負荷状態が高負荷と判定された場合にポーリングモードを設定する処理モード設定処理過程と,
    前記ネットワーク処理部によるデータ処理において,前記割り込みモードが設定されている場合に前記ネットワーク制御部が発行する割り込み通知を契機に前記データ格納部のデータ処理を行い,または前記ポーリングモードが設定されている場合に前記ネットワーク制御部の割り込み通知を抑止し,所定の間隔で前記データ格納部のデータ処理を行うネットワーク処理過程とを,
    備えるネットワーク処理制御方法。
JP2009539914A 2007-11-09 2007-11-09 ネットワーク処理制御装置,プログラムおよび方法 Active JP4747307B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/071779 WO2009060530A1 (ja) 2007-11-09 2007-11-09 ネットワーク処理制御装置,プログラムおよび方法

Publications (2)

Publication Number Publication Date
JPWO2009060530A1 JPWO2009060530A1 (ja) 2011-03-17
JP4747307B2 true JP4747307B2 (ja) 2011-08-17

Family

ID=40625445

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009539914A Active JP4747307B2 (ja) 2007-11-09 2007-11-09 ネットワーク処理制御装置,プログラムおよび方法

Country Status (3)

Country Link
US (1) US8032679B2 (ja)
JP (1) JP4747307B2 (ja)
WO (1) WO2009060530A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317649A (zh) * 2014-09-30 2015-01-28 北京金山安全软件有限公司 终端应用程序app的处理方法、装置及终端

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011180767A (ja) * 2010-02-26 2011-09-15 Kyocera Mita Corp 半導体装置
US8780722B2 (en) * 2012-02-03 2014-07-15 Apple Inc. Scheduling packet transmission on a client device using packet classifications including high priority network control packets
US9460027B2 (en) 2015-01-26 2016-10-04 HGST Netherlands, B.V. Digital rights management system
JP6881116B2 (ja) 2017-07-12 2021-06-02 富士通株式会社 情報処理装置、情報処理方法およびプログラム
JP6955163B2 (ja) 2017-12-26 2021-10-27 富士通株式会社 情報処理装置、情報処理方法及びプログラム
CN110784430A (zh) * 2018-07-29 2020-02-11 雅座在线(北京)科技发展有限公司 一种具有环状缓冲的非阻塞网络数据处理实现方法
JP7310924B2 (ja) * 2019-12-23 2023-07-19 日本電信電話株式会社 サーバ内遅延制御装置、サーバ、サーバ内遅延制御方法およびプログラム
JP7485101B2 (ja) 2021-02-10 2024-05-16 日本電信電話株式会社 サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム
WO2022195826A1 (ja) * 2021-03-18 2022-09-22 日本電信電話株式会社 サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム
WO2023144878A1 (ja) * 2022-01-25 2023-08-03 日本電信電話株式会社 サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム
WO2023243000A1 (ja) * 2022-06-15 2023-12-21 ファナック株式会社 ロボット制御装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0749822A (ja) * 1993-08-09 1995-02-21 Fujitsu Ltd データ処理システムの負荷分散方法
JPH10171668A (ja) * 1996-12-05 1998-06-26 Fujitsu Ltd 周期プロセス負荷制御システムおよび周期プロセス記憶媒体
JPH11154955A (ja) * 1997-11-20 1999-06-08 Nec Corp ネットワーク性能情報の管理装置及び管理方法
JP2000137692A (ja) * 1998-10-30 2000-05-16 Toshiba Corp 分散ノード間負荷分散方式
JP2001216170A (ja) * 2000-01-31 2001-08-10 Mitsubishi Electric Corp 専用ポーリング処理組み込みオペレーティング方法及び専用ポーリング処理組み込みオペレーティングシステム
JP2003157177A (ja) * 2001-11-22 2003-05-30 Hitachi Ltd 仮想計算機システム及びプログラム
JP2007065978A (ja) * 2005-08-31 2007-03-15 Hitachi Ltd 計算機システム及びデータベース管理システムプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301630B1 (en) * 1998-12-10 2001-10-09 International Business Machines Corporation Interrupt response in a multiple set buffer pool bus bridge
US6256699B1 (en) * 1998-12-15 2001-07-03 Cisco Technology, Inc. Reliable interrupt reception over buffered bus
US6651131B1 (en) * 2000-09-06 2003-11-18 Sun Microsystems, Inc. High bandwidth network and storage card
US7721033B2 (en) * 2004-12-03 2010-05-18 Emulex Design & Manufacturing Corporation Interrupt notification block
US7610425B2 (en) * 2005-08-22 2009-10-27 Sun Microsystems, Inc. Approach for managing interrupt load distribution
US7363409B2 (en) * 2006-02-08 2008-04-22 Texas Instruments Incorporated Interrupt control system and method for reducing interrupt latency
US7743195B2 (en) * 2006-12-27 2010-06-22 Intel Corporation Interrupt mailbox in host memory

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0749822A (ja) * 1993-08-09 1995-02-21 Fujitsu Ltd データ処理システムの負荷分散方法
JPH10171668A (ja) * 1996-12-05 1998-06-26 Fujitsu Ltd 周期プロセス負荷制御システムおよび周期プロセス記憶媒体
JPH11154955A (ja) * 1997-11-20 1999-06-08 Nec Corp ネットワーク性能情報の管理装置及び管理方法
JP2000137692A (ja) * 1998-10-30 2000-05-16 Toshiba Corp 分散ノード間負荷分散方式
JP2001216170A (ja) * 2000-01-31 2001-08-10 Mitsubishi Electric Corp 専用ポーリング処理組み込みオペレーティング方法及び専用ポーリング処理組み込みオペレーティングシステム
JP2003157177A (ja) * 2001-11-22 2003-05-30 Hitachi Ltd 仮想計算機システム及びプログラム
JP2007065978A (ja) * 2005-08-31 2007-03-15 Hitachi Ltd 計算機システム及びデータベース管理システムプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104317649A (zh) * 2014-09-30 2015-01-28 北京金山安全软件有限公司 终端应用程序app的处理方法、装置及终端
CN104317649B (zh) * 2014-09-30 2018-03-06 北京金山安全软件有限公司 终端应用程序app的处理方法、装置及终端

Also Published As

Publication number Publication date
US20100223411A1 (en) 2010-09-02
WO2009060530A1 (ja) 2009-05-14
JPWO2009060530A1 (ja) 2011-03-17
US8032679B2 (en) 2011-10-04

Similar Documents

Publication Publication Date Title
JP4747307B2 (ja) ネットワーク処理制御装置,プログラムおよび方法
CN106557369B (zh) 一种多线程的管理方法及系统
KR101565865B1 (ko) 멀티 프로세서 코어 시스템 내의 프로세서 코어를 스케줄링 하기 위한 방법, 장치, 및 시스템
EP3534255A1 (en) I/o request scheduling method and device
JP4367856B2 (ja) プロセス制御システム及びその制御方法
US7536689B2 (en) Method and system for optimizing thread scheduling using quality objectives
US20080235695A1 (en) Resource allocation system for jobs, resource allocation method and resource allocation program for jobs
JP2006285341A (ja) データ入出力プログラム,装置,および方法
WO2011139281A1 (en) Workload performance control
JP2009541851A (ja) リソースに基づいたスケジューラ
JP5459579B2 (ja) ジョブ管理システム、その方法及びそのプログラム
US10649934B2 (en) Image processing apparatus, notification monitoring program, and notification monitoring method
JP2008204243A (ja) ジョブ実行制御方法およびシステム
JP2007328413A (ja) 負荷分散方法
JP6303486B2 (ja) 情報処理システム、監視方法、及び、プログラム
JP4363417B2 (ja) コンピュータ装置およびコンピュータ制御方法
JP4952435B2 (ja) リソース管理装置及びそれを用いた無線ネットワーク制御装置
JP4877317B2 (ja) 情報処理装置、割り込み制御方法
JPH11237993A (ja) タスクの優先度制御方法およびタスクの優先度制御装置
JP5452427B2 (ja) マルチオペレーティングシステム計算機、マルチオペレーティングシステム管理方法およびマルチオペレーティングシステム管理プログラム
JP4567586B2 (ja) 処理装置
JP5428416B2 (ja) マルチタスク処理装置及び方法、並びにプログラム
US9785586B2 (en) Electronic computer and interrupt control method
CN110955518A (zh) 一种分布式存储管理系统的压力负载调整方法
JP2007323256A (ja) 割込制御方法および情報処理装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110322

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110328

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110421

R150 Certificate of patent or registration of utility model

Ref document number: 4747307

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140527

Year of fee payment: 3