(57)【特許請求の範囲】
【請求項１】
優先度を付けた複数のグループにプロセスを分類し、前記グループ毎に輻輳を検出する輻輳検出方法であって、
前記複数のグループのそれぞれに、自グループ以上の優先度を持つグループに属するプロセスのリソース使用率の合計の上限を閾値として設定しておき、
自グループ以上の優先度のグループに属するプロセスのリソース使用率を合計した累積値を求めるステップと、
前記累積値と自グループに設定された前記閾値を比較し、前記累積値が前記閾値を超えていたときに、当該自グループを輻輳と判定するステップと、
を有することを特徴とする輻輳検出方法。
【請求項２】
優先度を付けた複数のグループにプロセスを分類し、前記グループ毎に輻輳を検出し、輻輳と判定されたグループに属するプロセスに対する輻輳制御方法であって、
前記複数のグループのそれぞれに、自グループ以上の優先度を持つグループに属するプロセスのリソース使用率の合計の上限を閾値として設定しておき、
自グループ以上の優先度のグループに属するプロセスのリソース使用率を合計した累積値を求めるステップと、
前記累積値と自グループに設定された前記閾値を比較し、前記累積値が前記閾値を超えていたときに、当該自グループを輻輳と判定するステップと、
前記判定するステップで輻輳と判定されたグループに属するプロセスに対して、プロセス毎に予め決められた方法により輻輳制御するステップと、
を有することを特徴とする輻輳制御方法。
【請求項３】
前記輻輳制御するステップは、前記判定するステップで輻輳と判定されたグループの優先度以下のグループに属するプロセスに対して輻輳制御することを特徴とする請求項２記載の輻輳制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムの輻輳を検出し制御する技術に関する。
【背景技術】
【０００２】
交換機などの通信システム・セッション制御システムでは、システムがその処理能力以上の呼を受けると呼の接続完了率が低下する輻輳状態に陥る。輻輳状態になるとサーバの処理能力低下やサーバダウンによるサービスの劣化や停止が起きるため、通信システム・セッション制御システムでは輻輳検出機能と輻輳検出時にサービスやシステムを保護することを目的とした輻輳制御機能を備えている。
【０００３】
輻輳時にはシステムのＣＰＵリソースが不足するため、各々の処理へのＣＰＵリソースの配分が重要になる。これを適切に行わなければ、処理の遅延やサーバダウンにつながる可能性がある。従来の交換機では、専用ＯＳ機能によりＣＰＵリソースをタイムスライスで静的に分割し、呼処理系プロセス用、保守系プロセス用などと適切にＣＰＵリソースを割り当てることができた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１６７７６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の輻輳制御技術は、例えばＴＲＯＮなどの専用ＯＳの機能として具備されていた。しかしながら、Ｌｉｎｕｘなどの汎用ＯＳでは具備されていない。そのため、汎用ＯＳによりシステムを構築した場合、輻輳時のＣＰＵリソース配分をアプリケーションで行わなければならない。汎用ＯＳにもプロセスに優先度があり、優先度に応じてＣＰＵリソースを分配する機能があるが、アプリケーションの各プロセスの特徴や連携を考慮したＣＰＵリソース配分をコントロールすることはできない。
【０００６】
一方、専用ＯＳでは、ＣＰＵリソースを静的に分割して各プロセスに割り当てていたため、分割された片方のＣＰＵリソースに余裕があっても別のプロセスでそのＣＰＵリソースを使用することができないという問題があった。
【０００７】
本発明は、上記に鑑みてなされたものであり、プロセスの優先度を考慮した輻輳検出、輻輳制御を行うことを目的とする。
【課題を解決するための手段】
【０００８】
第１の本発明に係る輻輳検出方法は、優先度を付けた複数のグループにプロセスを分類し、前記グループ毎に輻輳を検出する輻輳検出方法であって、前記複数のグループのそれぞれに、自グループ以上の優先度を持つグループに属するプロセスのリソース使用率の合計の上限を閾値として設定しておき、自グループ以上の優先度のグループに属するプロセスのリソース使用率を合計した累積値を求めるステップと、前記累積値と自グループに設定された前記閾値を比較し、前記累積値が前記閾値を超えていたときに、当該自グループを輻輳と判定するステップと、を有することを特徴とする。
【０００９】
第２の本発明に係る輻輳制御方法は、優先度を付けた複数のグループにプロセスを分類し、前記グループ毎に輻輳を検出し、輻輳と判定されたグループに属するプロセスに対する輻輳制御方法であって、前記複数のグループのそれぞれに、自グループ以上の優先度を持つグループに属するプロセスのリソース使用率の合計の上限を閾値として設定しておき、自グループ以上の優先度のグループに属するプロセスのリソース使用率を合計した累積値を求めるステップと、前記累積値と自グループに設定された前記閾値を比較し、前記累積値が前記閾値を超えていたときに、当該自グループを輻輳と判定するステップと、前記判定するステップで輻輳と判定されたグループに属するプロセスに対して、プロセス毎に予め決められた方法により輻輳制御するステップと、を有することを特徴とする。
【００１０】
上記輻輳制御方法において、前記輻輳制御するステップは、前記判定するステップで輻輳と判定されたグループの優先度以下のグループに属するプロセスに対して輻輳制御することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、プロセスの優先度を考慮した輻輳検出、輻輳制御を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】本実施の形態におけるセッション制御サーバの構成を示す機能ブロック図である。
【図２】輻輳を検出する動作の流れを示すフローチャートである。
【図３】輻輳の検出を具体的に説明する図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について図面を用いて説明する。
【００１４】
図１は、本実施の形態におけるセッション制御サーバの構成を示す機能ブロック図である。図１では、セッション制御サーバ１の輻輳検出、輻輳制御に関する部分のみを図示している。図１に示すように、本実施の形態におけるセッション制御サーバ１は、ＣＰＵ使用率算出部１１、輻輳判定部１２、および輻輳制御部１３を備える。セッション制御サーバ１が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムはセッション制御サーバ１が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。なお、ここではセッション制御サーバについての輻輳検出方法、輻輳制御方法を説明するが、これに限るものではなく、他のアプリケーションサーバについても同様に適用可能である。
【００１５】
セッション制御サーバ１では、プロセス（またはスレッド）をＯＳが管理するプロセス優先度ではなく、サービス観点での優先度で複数グループに分類しておき、各グループに対して、自グループ以上の優先度を持つグループに属するプロセスのＣＰＵ使用率の合計の上限を閾値として設定する。プロセスとグループの対応関係、各グループの閾値は、セッション制御サーバ１が備える記憶装置に記憶される。
【００１６】
ＣＰＵ使用率算出部１１は、同じグループに属するプロセスのＣＰＵ使用率を合計し、グループ毎のＣＰＵ使用率を算出する。
【００１７】
輻輳判定部１２は、グループ毎に、そのグループ以上の優先度のグループのＣＰＵ使用率を合計した累積値とＣＰＵ使用率の上限を示す閾値とを比較してそのグループの輻輳を判定する。具体的には、各グループについて、自グループ以上の優先度のグループに属するプロセスのＣＰＵ使用率を合計した累積値を求め、求めた累積値とグループ毎に設定された閾値とを比較し、累積値が閾値を超えていたときに、そのグループを輻輳と判定する。
【００１８】
輻輳制御部１３は、輻輳と判定されたグループに属するプロセスに対してプロセス毎に予め決められた輻輳制御を行う。輻輳制御対象のプロセスは、輻輳と判定されたグループに属する全てのプロセスである。複数のグループが輻輳と判定された場合、輻輳制御は輻輳と判定されたグループそれぞれに属する全てのプロセスに対して行われる。輻輳制御方法は、プロセス毎に設定、実装しておく。例えば、バックアッププロセスは強制的に一定時間スリープさせる、コマンドプロセスは強制終了して新規コマンド投入を制限する等がある。表１に、プロセス別の制御方法の例を示す。なお、表１に示すプロセス別輻輳制御方法は一例であり、輻輳制御方法を限定するものではない。
【表１】
0005300938.tif 000002
【００１９】
次に、セッション制御サーバ１が輻輳を検出する処理について説明する。
【００２０】
図２は、セッション制御サーバ１が輻輳を検出する処理の流れを示すフローチャートである。
【００２１】
まず、ＣＰＵ使用率算出部１１がグループ毎に属するプロセスのＣＰＵ使用率を合計し、各グループのＣＰＵ使用率を求める（ステップＳ１１）。
【００２２】
続いて、輻輳判定部１２が各グループについて、自グループ以上の優先度のグループのＣＰＵ使用率を合計し、グループ毎の累積値を求める（ステップＳ１２）。
【００２３】
そして、輻輳判定部１２が各グループについて、ステップＳ１２で求めた累積値と予め設定された閾値とを比較し（ステップＳ１３）、累積値が閾値を超えたグループを輻輳と判定する（ステップＳ１４）。その後、輻輳制御部１３が、輻輳と判定されたグループに属するプロセスに対して、プロセス毎に予め決められた方法により輻輳制御する。
【００２４】
次に、具体例を用いて輻輳の検出について説明する。
【００２５】
図３は、輻輳の検出を具体的に説明する図である。図３の例では、各プロセスを優先度が高い順に、ＯＳ・ミドルプロセス、系間同期プロセスが属する「最高」、呼処理系プロセスが属する「高」、保守コマンドプロセスが属する「中」、定期バックアッププロセスが属する「低」の４つのグループに分け、それぞれのグループのＣＰＵ使用率の上限を示す閾値を３０％，７０％，８０％，８５％と設定した。
【００２６】
グループ毎のプロセスのＣＰＵ使用率を合計した値が、「最高」は１５％、「高」は４０％、「中」は２６％、「低」は３％であったとすると、各グループについての自グループ以上の優先度のグループのＣＰＵ使用率の累積値は、図３に示すように、「最高」は１５％、「高」は５５％、「中」は８１％、「低」は８４％となる。各グループについて、累積値と閾値を比較すると、「中」は累積値が閾値よりも高く、輻輳と判定される。その結果、「中」に属する保守コマンドプロセスに対して輻輳制御が行われる。
【００２７】
なお、図３に示す例では、「低」は累積値が閾値よりも低く輻輳と判定されないが、輻輳と判定されたグループよりも優先度が低いグループに属するプロセスも輻輳制御対象とし、「低」に属する定期バックアッププロセスを輻輳制御してもよい。
【００２８】
以上説明したように、本実施の形態によれば、優先度を付けた複数のグループにプロセスを分類し、各グループに対して、自グループ以上の優先度を持つグループに属するプロセスのＣＰＵ使用率の合計の上限を閾値として設定しておき、グループ毎にそのグループに属するプロセスのＣＰＵ使用率の合計を求め、各グループについて、自グループ以上の優先度のグループに属するプロセスのＣＰＵ使用率を合計した累積値を求め、求めた累積値とグループ毎に設定された閾値とを比較し、累積値が閾値を超えていたときに、そのグループを輻輳と判定することにより、各グループの優先度に基づき一定のＣＰＵリソースを配分しつつ、使われていないＣＰＵリソースを考慮した輻輳検出を行うことができる。
【００２９】
本実施の形態によれば、輻輳と判定されたグループに属するプロセスそれぞれについて、予め設定された方法により輻輳制御を行うことで、きめ細やかで無駄の少ない輻輳制御が可能となる。
【符号の説明】
【００３０】
１…セッション制御サーバ１
１１…ＣＰＵ使用率算出部
１２…輻輳判定部
１３…輻輳制御部
【図１】
0005300938.tif 000003
【図２】
0005300938.tif 000004
【図３】
0005300938.tif 000005