(57)【要約】【課題】  トランザクション処理の優先度に基づいて負荷分散を決定させ、優先度が低いトランザクションが数多く実行していることによりCPU利用率が上がっている場合には転送対象とし、転送先で優先度の高いトランザクションを実行させる。これにより、CPU利用率が高いシステムでも常に優先度の高いトランザクションが最適に処理できる方式を実現させる。【解決手段】  負荷分散方式は、分散トランザクションシステムにおいて、サーバ毎のＣＰＵ使用率を集積し、ＣＰＵ使用率の閾値を設定して過負荷状態を管理する手段と、トランザクションに実行優先度を設定して優先的に負荷分散及び、負荷分散先で優先的に実行する手段を取る。【選択図】  図２
2006113827.tif 000002
【特許請求の範囲】
【請求項１】
分散トランザクションシステムにおいて、サーバ毎のＣＰＵ使用率を集積し、ＣＰＵ使用率の閾値を設定して過負荷状態を管理する手段と、トランザクションに実行優先度を設定して優先的に負荷分散及び、負荷分散先で優先的に実行する手段を特徴とする負荷分散方式。
【請求項２】
前記ＣＰＵ使用率の閾値を設定して過負荷状態を管理する手段とは、サーバ毎にトランザクションを実行するために使用できるＣＰＵの範囲を設定し、各サーバに設定したＣＰＵを使用できる範囲に基づいて過負荷状態を管理することを特徴とする請求項１記載の負荷分散方式。
【請求項３】
トランザクションに実行優先度を設定して優先的に負荷分散及び、負荷分散先で優先的に実行する手段とは、トランザクション毎にＣＰＵを使用する優先度を付与し、分散先のサーバのＣＰＵ使用率を優先度に基づいて余裕を判断し、負荷分散先では優先度に従って、トランザクションにＣＰＵを割り当てて実行することを特徴とする請求項１記載の負荷分散方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散トランザクションシステムにおける負荷分散処理方法に関する。
【背景技術】
【０００２】
従来の分散トランザクションシステムは、一定時間間隔で取得した複数のサーバそれぞれの現在のＣＰＵ使用率に基づいて、複数のサーバへの振り分けを決定していた。
【０００３】
【特許文献１】特開２００３−２９６２８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載の技術は、負荷分散するサーバ毎にトランザクションを実行するために使用できるＣＰＵ使用率の範囲の設定がない。このため、分散したサーバのＣＰＵ使用率が１００％になりトランザクションが実行できない状況が発生する場合ある。また、異なる性能のサーバで構成される分散トランザクションシステムではＣＰＵ使用率のみで負荷分散先を決定するため、性能に応じた負荷分散ができない場合と、負荷分散する全サーバのＣＰＵ使用率が１００％になると負荷分散できない場合もある。
【０００５】
本発明の目的は、負荷分散するサーバ毎にＣＰＵ使用率の閾値を設定し、サーバ毎に使用可能なＣＰＵ使用率を閾値を基に算出し、効率的な負荷分散を実現する。
【０００６】
また分散先のシステムのＣＰＵ使用率が１００％になる場合でも、トランザクション毎に付与するＣＰＵ優先度に基づいて分散先のサーバ決定し、実行させる方式を提供することにある。
【課題を解決するための手段】
【０００７】
サーバ毎にＣＰＵ使用率の閾値を設定し過負荷状態を管理し、またトランザクションに優先度を付与し、サーバ毎のＣＰＵ使用率をトランザクション優先度別に管理する。
【発明の効果】
【０００８】
以上、説明したように、本発明によれば、負荷分散するサーバ毎にトランザクションを実行するために使用できるＣＰＵ使用率の範囲を設定し、負荷分散するサーバのＣＰＵ使用率を管理できるようになり、ＣＰＵ使用率が１００％に近くなることにより、トランザクションが実行できない状況を回避できる。
【０００９】
また異なる性能のサーバで構成される分散トランザクションシステムにおいて、サーバ毎のＣＰＵ性能に応じた使用率を設定することによりＣＰＵ性能別の負荷分散を実現する。またトランザクション毎にＣＰＵを使用する優先度を付与し、分散先のサーバのＣＰＵ使用率を優先度に基づいて決定することにより、負荷分散する全サーバのＣＰＵ使用率が１００％になってもトランザクション毎に設定した優先度により負荷分散をすることができる。
【００１０】
本発明の第１の負荷分散方式はＣＰＵ使用率の閾値を設定して過負荷状態を管理する手段を備えたことを特徴とする。
【００１１】
本発明の第２の負荷分散方式はトランザクションに実行優先度を設定して優先的に負荷分散及び、負荷分散先で優先的に実行する手段を備えたことを特徴とする。
【発明を実施するための最良の形態】
【００１２】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００１３】
図１は、本発明の実施の形態を示すブロック図である。
【００１４】
図１を参照すると、本発明の実施の形態は、端末４１〜端末４Ｎからなる端末群４から投入されたトランザクションを処理するサーバ１と、前記サーバ１と接続し、トランザクションを負荷分散するために接続するサーバ２及びサーバ３で構成されている。負荷分散してトランザクション処理を行うサーバ２及びサーバ３は同一構成であり、サーバ２はトランザクション実行制御手段２１とアプリケーションプログラム２２とＣＰＵ使用率測定手段２３から構成されており、サーバ３はトランザクション実行制御手段３１とアプリケーションプログラム３２とＣＰＵ使用率測定手段３３から構成されている。
【００１５】
サーバ１は前記サーバ２及びサーバ３のＣＰＵ使用率を収集するＣＰＵ使用率測定／収集手段１１と端末群４から投入されたトランザクションをＣＰＵ使用率に基づき振分け又は実行するトランザクション振分け／実行制御手段１２とアプリケーションプログラム１３から構成されている。
【００１６】
図２はＣＰＵ負荷分散の処理の流れを示した図である。端末群４からトランザクションが投入されると（ステップ２０１）、自システム（サーバ１）が過負荷状態か否か判定する（ステップ２０２）。自システム（サーバ１）が過負荷状態でなければ、当該トランザクションを自システム（サーバ１）で処理する（ステップ２０７）。自システム（サーバ１）が過負荷状態の場合は、他サーバ（トランザクションを負荷分散するために接続するサーバ２及びサーバ３）のＣＰＵ使用率を取得し、余裕値が最も大きいサーバを選択する。自システム（サーバ１）の余裕値が最も大きい場合は自システム（サーバ１）で当該トランザクションを処理する（ステップ２０７）。他サーバ（トランザクションを負荷分散するために接続するサーバ２及びサーバ３）の余裕値が最も大きい場合は他サーバ（トランザクションを負荷分散するために接続するサーバ２及びサーバ３）に当該トランザクションを転送し、他サーバ（トランザクションを負荷分散するために接続するサーバ２及びサーバ３）で当該トランザクション処理する（ステップ２０６）。各サーバに余裕値がない場合は各サーバのＣＰＵ使用率を優先度毎に分類し、当該トランザクションの優先度よりも低い優先度のトランザクションを実行することによって余裕値が無くなっているサーバを選択する。自システム（サーバ１）が当該トランザクションの優先度よりも低い優先度のトランザクションを実行することによって余裕値が無くなっている場合には自システム（サーバ１）で当該トランザクションを処理する（ステップ２０７）。他サーバ（トランザクションを負荷分散するために接続するサーバ２及びサーバ３）が当該トランザクションの優先度よりも低い優先度のトランザクションを実行することによって余裕値が無くなっている場合には他サーバ（トランザクションを負荷分散するために接続するサーバ２及びサーバ３）で当該トランザクションを処理する（ステップ２０６）。また各サーバ共に当該トランザクションの優先度よりも低い優先度のトランザクションを実行することによって余裕値が無くなっていない場合には自システム（サーバ１）で当該トランザクションを処理する（ステップ２０７）。
【００１７】
図３は負荷分散を決定するためのＣＰＵ余裕値を求める際の図であり、実際にＣＰＵを使用している割合１３１と、サーバ毎に設定されたＣＰＵ使用率の閾値上限を１３２、ＣＰＵ使用率の閾値下限を１３３で表し、ＣＰＵ使用率の閾値上限１３２から実際にＣＰＵを使用している割合１３１の差分がサーバのＣＰＵ余裕値１３４となる。
【００１８】
図４はＣＰＵ使用率の内訳の一例を示す図であり、ＣＰＵ使用率は優先度の高いトランザクションが占める割合１３１１と、優先度の低いトランザクションが占める割合１３１２で示す。
【００１９】
図５は各サーバが実際に使用中のＣＰＵ使用率の一例を示す図であり、サーバ１のＣＰＵ使用率８５％、サーバ２のＣＰＵ使用率５０％、サーバ３のＣＰＵ使用率５５％を示す。
【００２０】
図６はサーバ毎のＣＰＵ使用率の閾値上限１３２と閾値下限１３３の一例を示す図であり、それぞれのサーバで決めたＣＰＵ使用率の閾値上限１３２１及び、ＣＰＵ使用率の閾値下限１３３１で構成し、サーバ１のＣＰＵ使用率の閾値上限は８０％、閾値下限は７５％、サーバ２のＣＰＵ使用率の閾値上限は６０％、閾値下限は５５％、サーバ３のＣＰＵ使用率の閾値上限は７０％、閾値下限は６５％を示す。
【００２１】
図７は図６で示すＣＰＵ使用率における優先度毎の内訳の一例を示す図であり、サーバ１のＣＰＵ使用率における優先度の高いトランザクションが占める割合は５０％、低いトランザクションが占める割合は５０％、サーバ２のＣＰＵ使用率における優先度の高いトランザクションが占める割合は３０％、低いトランザクションが占める割合は７０％、サーバ３のＣＰＵ使用率における優先度の高いトランザクションが占める割合は８０％、低いトランザクションが占める割合は２０％を示す。
【００２２】
次に本実施の形態の動作について、図１を参照して詳細に説明する。
【００２３】
端末群４から複数のトランザクションが投入された場合の動作について説明する。なお、説明上、本発明のオンライントランザクション処理システムにおいて、トランザクション処理メッセージの待ちによってＣＰＵは一切使用しないものとする。
【００２４】
まず、端末群４から複数のトランザクションを受け取ると、サーバ１のＣＰＵ使用率収集／測定手段１１はサーバ１のＣＰＵ使用率の測定を行い、サーバ１のＣＰＵに設定された使用率の閾値下限と実際のＣＰＵ使用率の差を求め、サーバ１のＣＰＵ使用率が過負荷状態か否か判断し、サーバ１のＣＰＵ使用率が閾値下限を越えていない場合にはサーバ１は過負荷状態でないと判断し、サーバ１で当該トランザクションに対するアプリケーションプログラム１３の処理をトランザクション振分け／実行制御手段１２が行う。
【００２５】
一方、サーバ１のＣＰＵ使用率が閾値下限を越えている場合には、サーバ１が過負荷状態と判断し、サーバ１のＣＰＵ使用率収集／測定手段１１はトランザクションを負荷分散するために接続するサーバ２及びサーバ３のＣＰＵ使用率測定手段２３又はＣＰＵ使用率測定手段３３からサーバ２又はサーバ３のＣＰＵ使用率の取得を行い、ＣＰＵ毎に設定された閾値下限と実際のＣＰＵ使用率の差を求め、ＣＰＵ使用率が閾値下限を越えていないサーバでかつ、最も差が大きいＣＰＵが余裕のあるサーバとみなし、トランザクションを処理するサーバと選択し、当該トランザクションを選択したサーバへ転送し、転送先のサーバ２又はサーバ３のトランザクション実行制御手段２１又はトランザクション実行制御手段３１で、アプリケーションプログラム２２又はアプリケーションプログラム３２を実行させる。
【００２６】
また、全てのサーバが過負荷状態の場合は、ＣＰＵ毎に設定された閾値上限と実際のＣＰＵ使用率の差を求め、ＣＰＵ使用率が閾値上限を越えていないサーバでかつ、最も差が大きいＣＰＵが余裕のあるサーバとみなし、トランザクションを処理するサーバと選択し、当該トランザクションを選択したサーバへ転送し、転送先のサーバ２又はサーバ３のトランザクション実行制御手段２１又はトランザクション実行制御手段３１で、アプリケーションプログラム２２又はアプリケーションプログラム３２を実行させる。
【００２７】
また、全てのサーバが閾値上限を超える過負荷状態の場合は、各サーバのＣＰＵ使用率を優先度による分類を行い、処理するトランザクションよりも優先度の低いトランザクションが使用しているＣＰＵ使用率の割合を求めた結果、最も優先度の低いトランザクションがＣＰＵを使用している割合の大きいサーバを優先度別のＣＰＵ使用率に余裕のあるサーバとみなし、トランザクションを処理するサーバを決定する。優先度別のＣＰＵ使用率に余裕のあるサーバがサーバ１の場合、当該トランザクションに対するアプリケーションプログラム１３の処理をトランザクション振分け／実行制御手段１２が行う。優先度別のＣＰＵ使用率に余裕のあるサーバがサーバ２又はサーバ３の場合、サーバ１はトランザクション振分け／実行制御手段１２により、ＣＰＵ使用率に余裕のあるサーバにトランザクションを転送し、トランザクションに対するアプリケーションプログラム２２又はアプリケーションプログラム３２をトランザクション実行制御手段２１又はトランザクション実行制御手段３１が処理を行う。
【００２８】
以上の動作により、ＣＰＵ使用率を考慮したトランザクション実行の平準化を図ることができる。
【００２９】
次に本発明の一実施例の動作について、次の三例であった場合について図４〜図７を用いて説明する。
【００３０】
第一の例として図５に示すようにサーバ１のＣＰＵ使用率は「８５％」、サーバ２のＣＰＵ使用率は「５０％」、サーバ３のＣＰＵ使用率は「５５％」の場合について説明する。
まず、端末群４から複数のトランザクションを受け取ると、サーバ１のＣＰＵ使用率収集／測定手段１１はサーバ１のＣＰＵ使用率の測定を行い、ＣＰＵ使用率「８５％」を取得する。図６に示すようにサーバ１のＣＰＵ使用率の閾値下限は「７５％」であるため、サーバ１は過負荷状態であると判断し、サーバ１のＣＰＵ使用率収集／測定手段１１は接続するサーバ２又はサーバ３のＣＰＵ使用率測定手段２３又はＣＰＵ使用率測定手段３３からＣＰＵ使用率の取得を行い、サーバ２のＣＰＵ使用率「５０％」、サーバ３「５５％」を取得する。サーバ２のＣＰＵ使用率の閾値下限は「４５％」、サーバ３のＣＰＵ使用率の閾値下限は「４０％」であり、全てのサーバが過負荷状態であると判断する。
【００３１】
次にＣＰＵ余裕値を求める計算式（サーバ１余裕値＝サーバ１ＣＰＵ使用率の閾値上限−サーバ１ＣＰＵ使用率）＝（８０−８５）＝（−５）、サーバ２のＣＰＵ余裕値を計算式（サーバ２余裕値＝サーバ２ＣＰＵ使用率の閾値上限−サーバ２ＣＰＵ使用率）＝（６０−５０）＝（１０）、サーバ３のＣＰＵ余裕値を計算式（サーバ３余裕値＝サーバ３ＣＰＵ使用率の閾値上限−サーバ３ＣＰＵ使用率）＝（７０−５５）＝（１５）をそれぞれ算出し、ＣＰＵに最も余裕のあるサーバはサーバ３が選択される。
【００３２】
サーバ１はトランザクション振分け／実行制御手段１２により、ＣＰＵ使用率に余裕のあるサーバ３にトランザクションを転送し、転送されたサーバは転送されたトランザクションに対するアプリケーションプログラム３２をトランザクション実行制御手段３１が処理を行う。
【００３３】
第二の例はサーバ１のＣＰＵ使用率は「６０％」、サーバ２のＣＰＵ使用率は「５０％」、サーバ３のＣＰＵ使用率は「５５％」の場合について説明する。
【００３４】
まず、端末群４から複数のトランザクションを受け取ると、サーバ１のＣＰＵ使用率収集／測定手段１１はサーバ１のＣＰＵ使用率の測定を行い、ＣＰＵ使用率「６０％」を取得する。図６に示すようにサーバ１のＣＰＵの閾値下限は「７５％」であるため、過負荷状態ではないと判断し、サーバ１で当該トランザクションに対するアプリケーションプログラム１３の処理をトランザクション振分け／実行制御手段１２が行う。
【００３５】
第三の例はサーバ１のＣＰＵ使用率は「８５％」、サーバ２のＣＰＵ使用率は「６５％」、サーバ３のＣＰＵ使用率は「７５％」の場合について説明する。
【００３６】
まず、端末群４から複数のトランザクションを受け取ると、サーバ１のＣＰＵ使用率収集／測定手段１１はサーバ１のＣＰＵ使用率の測定を行い、ＣＰＵ使用率「８５％」を取得する。図６に示すようにサーバ１のＣＰＵ使用率の閾値下限は「７５％」であるため、サーバ１は過負荷状態であると判断し、サーバ１のＣＰＵ使用率収集／測定手段１１は接続するサーバ２又はサーバ３のＣＰＵ使用率測定手段２３又はＣＰＵ使用率測定手段３３からＣＰＵ使用率の取得を行い、サーバ２のＣＰＵ使用率「６５％」、サーバ３「７５％」を取得する。サーバ２のＣＰＵ使用率の閾値下限は「４５％」、サーバ３のＣＰＵ使用率の閾値下限は「４０％」であり、全てのサーバが過負荷状態であると判断する。
【００３７】
次にＣＰＵ余裕値を求める計算式（サーバ１余裕値＝サーバ１ＣＰＵ使用率の閾値上限−サーバ１ＣＰＵ使用率）＝（８０−８５）＝（−５）、サーバ２のＣＰＵ余裕値を計算式（サーバ２余裕値＝サーバ２ＣＰＵ使用率の閾値上限−サーバ２ＣＰＵ使用率）＝（６０−６５）＝（−５）、サーバ３のＣＰＵ余裕値を計算式（サーバ３余裕値＝サーバ３ＣＰＵ使用率の閾値上限−サーバ３ＣＰＵ使用率）＝（７０−７５）＝（−５）をそれぞれ算出し、全てのサーバに余裕がないと判断する。
【００３８】
次にそれぞれのＣＰＵ使用率の内訳を算出し、当該トランザクションよりも低い優先度のジョブが占める割合を算出する。サーバ１の過負荷状態の余裕値を求める計算式（サーバ１ＣＰＵ使用率×サーバ１の低い優先度のジョブが占める割合）＝（８５×５０％）＝（４２.５）、サーバ２の過負荷状態の余裕値を求める計算式（サーバ２ＣＰＵ使用率×サーバ２の低い優先度のジョブが占める割合）＝（６５×７０％）＝（４５．５）、サーバ３の過負荷状態の余裕値を求める計算式（サーバ３ＣＰＵ使用率×サーバ３の低い優先度のジョブが占める割合）＝（７５×２０％）＝（１５）となり、過負荷状態におけるＣＰＵに最も余裕のあるサーバはサーバ２が選択される。
【００３９】
サーバ１はトランザクション振分け／実行制御手段１２により、過負荷状態におけるＣＰＵ使用率に余裕のあるサーバ２にトランザクションを転送し、転送されたサーバは転送されたトランザクションに対するアプリケーションプログラム２２をトランザクション実行制御手段２１が処理を行う。
【図面の簡単な説明】
【００４０】
【図１】本発明の実施の形態の構成を示すブロック図である。
【図２】本発明の処理例を示す流れ図である。
【図３】ＣＰＵ余裕値を示す図である。
【図４】ＣＰＵ使用率の分類を示す図である。
【図５】本発明の実施の形態の具体例である。
【図６】本発明の実施の形態の具体例である。
【図７】本発明の実施の形態の具体例である。
【符号の説明】
【００４１】
１…サーバ１、１１…ＣＰＵ使用率測定／収集手段、１２…トランザクション振分け／実行制御手段、１３…アプリケーションプログラム、１３１…ＣＰＵ使用率、１３１１…高優先度、１３１１１…サーバ１のＣＰＵ使用率の例、１３１１２…サーバ２のＣＰＵ使用率の例、１３１１３…サーバ３のＣＰＵ使用率の例、１３１１４…サーバ１、サーバ２、サーバ３の高優先度の占める割合の例、１３１１５…サーバ１、サーバ２、サーバ３の低優先度の占める割合の例、１３１２…低優先度、１３２…閾値上限、１３２１…サーバ１、サーバ２、サーバ３の閾値上限の例、１３２２…サーバ１、サーバ２、サーバ３の閾値下限の例、１３３…閾値下限、１３４…ＣＰＵ余裕率、２…サーバ２、２１…トランザクション実行制御手段、２２…アプリケーションプログラム、２３…ＣＰＵ使用率測定手段、３…サーバ３、３１…トランザクション実行制御手段、３２…アプリケーションプログラム、３３…ＣＰＵ使用率測定手段、４…端末群、４１…端末、４２…端末、４Ｎ…端末。
【図１】
2006113827.tif 000003
【図２】
2006113827.tif 000004
【図３】
2006113827.tif 000005
【図４】
2006113827.tif 000006
【図５】
2006113827.tif 000007
【図６】
2006113827.tif 000008
【図７】
2006113827.tif 000009