JP6428012B2 - 分散処理プログラム、分散処理管理装置及び分散処理方法 - Google Patents

分散処理プログラム、分散処理管理装置及び分散処理方法 Download PDF

Info

Publication number
JP6428012B2
JP6428012B2 JP2014146170A JP2014146170A JP6428012B2 JP 6428012 B2 JP6428012 B2 JP 6428012B2 JP 2014146170 A JP2014146170 A JP 2014146170A JP 2014146170 A JP2014146170 A JP 2014146170A JP 6428012 B2 JP6428012 B2 JP 6428012B2
Authority
JP
Japan
Prior art keywords
server
movement
pattern
load
server device
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.)
Expired - Fee Related
Application number
JP2014146170A
Other languages
English (en)
Other versions
JP2016024500A (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
Priority to JP2014146170A priority Critical patent/JP6428012B2/ja
Priority to US14/735,218 priority patent/US20160021177A1/en
Publication of JP2016024500A publication Critical patent/JP2016024500A/ja
Application granted granted Critical
Publication of JP6428012B2 publication Critical patent/JP6428012B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold

Description

本発明は、分散処理に関する。
リアルタイムに流れてくる大量データから、様々な外部の事象(イベント)毎に、所定のパターンを検知して出力するリアルタイム検知技術がある。このようなリアルタイム検知技術は、例えば、金融、医療、セキュリティなどの分野で利用される情報処理システムで用いられる。
このような大量のイベントデータを格納・処理する方法の1つとして、分散Key-Value Store(以下、KVS)技術がある(例えば、非特許文献1)。
Giuseppe DeCandia、外8名"Dynamo:Amazon's Highly Available Key-value Store"ACM SIGOPS Operating Systems Review - SOSP '07 , Volume 41 Issue 6, December 2007 Pages 205-220
検知対象のパターンは複数あり、複数パターンの検知を高速に行うために検知処理を複数のサーバに分散して行う技術がある。このような分散検知処理として、例えば、入力されたイベントデータ(入力イベントデータ)のキーに応じて、イベントデータをサーバに振り分けたり、イベントデータのパターン毎にイベントデータを振り分けることが考えられる。
しかしながら、上述した分散検知処理では、ある入力イベントデータを大量に受信した場合やパターンの動的変化が発生した場合に、いずれかのサーバやいずれかのサーバに対する通信に負荷が偏ってしまい、パターン検知処理の負荷分散が効率よくできていない。
本発明は、一側面として、入力データのパターン検知分散処理において、分散する負荷の平準化精度を向上させる技術を提供する。
本発明の一側面にかかる分散処理プログラムは、コンピュータに、次の処理を実行させる。すなわち、コンピュータは、入力されたデータをデータに付与される識別情報により振り分ける転送装置によって振り分けられたデータについてのパターンの検知処理を識別情報毎に行う複数のサーバ装置のそれぞれから、検知処理に関する負荷値を識別情報単位で取得する。コンピュータは、複数のサーバ装置のうち第1サーバ装置より取得した負荷値が所定の許容範囲を超えた場合、次を行う。つまり、コンピュータは、第1サーバ装置から複数のサーバ装置のうち第2サーバ装置へ、識別情報と識別情報に対応する一パターンとの組み合わせを、第1サーバ装置と第2サーバ装置との負荷値がそれぞれ許容範囲内であるか否かに応じて、組単位で移動させる。
本発明によれば、一側面として、入力データのパターン検知分散処理において、分散する負荷の平準化精度を向上させることができる。
リアルタイム検知システムの一例を示す図である。 入力イベント分散処理システムの一例を示す図である。 パターン分散処理システムの一例を示す図である。 本実施形態における分散処理管理装置を示す図である。 本実施形態における負荷移動制御処理を説明するための図である。 本実施形態におけるイベント検知システムの一例を示す図である。 本実施形態におけるイベント検知システムで用いられるルーティングテーブル、負荷テーブル、及び全体負荷テーブルの一例を示す図である。 本実施形態における監視対象が、対応する条件を充足するか否かに応じて、方式1〜4を実行するフローを示す図である。 本実施形態における方式1を説明するための図である。 本実施形態における方式2を説明するための図である。 本実施形態における方式3を説明するための図である。 本実施形態における管理サーバの移動管理部による方式1を用いた負荷移動処理のフローを示す図である。 本実施形態における移動後条件判定処理のフローを示す図である。 本実施形態における管理サーバの移動管理部による方式2を用いた負荷移動処理のフローを示す図である。 本実施形態における管理サーバの移動管理部による方式3を用いた負荷移動処理のフローを示す図である。 本実施形態における管理サーバの移動管理部による方式4を用いた負荷移動処理のフローを示す図である。 本実施形態におけるプログラムを実行するコンピュータのハードウェア環境の構成ブロック図の一例である。
パターン数は、入力イベントデータの量やパターンの抽出処理の内容に応じて、増減する。例えば、ビッグデータの場合、入力イベントデータ量やパターン数も大規模であることから単一サーバでは限界があるため、複数のサーバを用いて分散処理が行われることが多い。一方で、コスト面から負荷に応じた台数のサーバを使用することも重要である。
したがって、入力イベントデータや、パターンの増減に合わせて動的に負荷分散を可能とする、低レイテンシや高スループットを維持する分散処理機構が要求される。
図1は、リアルタイム検知システムの一例を示す。リアルタイム検知システムでは、学習サーバ1は、学習処理2により通信ネットワーク上を流れるイベントデータのパターンを検知し、その検知したパターンを抽出する。図1では、説明の便宜上、イベントデータは、ある特定のイベントのイベントデータであるとする。その学習処理の結果、学習サーバ1は、抽出したパターンA,B,C,・・・を検知サーバ3へ送る。ここで、データのパターンとは、例えば、パケットデータのビット列のパターン、パケットのサイズのパターン、時系列で観察した際のデータの電圧の波形パターン、サーバに対するアクセス挙動のパターン等の様々なパターンを含む。
検知サーバ3には、転送サーバ5を介して、イベント毎に発生し、通信ネットワーク上をリアルタイムで流れるイベントデータが入力される。ここで、入力されるイベントデータには、例えば、イベントを特定するイベント種別と、イベント種別で示されるイベント毎に付与される識別値とより形成される一意の識別情報が付与されている。
イベント種別とは、イベントデータの種類のことであり、例えば温度センサデータ、分電盤の電力センサデータ、端末の通信データを示す。イベント種別が異なると、イベントデータの属性も異なる。イベントデータが温度センサデータである場合は、例えば、その属性は、(機器ID、温度)であり、イベントデータが通信データである場合は、例えば、その属性は、端末ID、接続先IPアドレス、通信量である。
また、識別値とは、イベント種別で示されるイベントのうちの特定の値であって、イベントデータの属性のうち、どの属性を用いて集計等の処理を行うかによって決定されるいずれか一つの属性の値である。例えば、イベントデータが属性(機器ID、温度)を有する温度センサデータであって、機器ID毎に1時間分の温度平均値を集計する場合、識別値は、機器IDとなる。
検知サーバ3は、検知処理4により、その入力されたイベントデータと、学習サーバ1より提供された全てのパターンとをマッチングする。
しかしながら、全ての入力イベントデータに対し、全てのパターンと検知処理(マッチング)を行うと、ネットワーク、中央処理演算装置(CPU)、メモリ等のネックを引き起こし、レイテンシを損なうおそれがある。したがって、全ての入力イベントデータに対し、全てのパターンと検知処理(マッチング)を行う場合、検知サーバ単体では、好ましくない。そこで、図2に示すように、複数の検知サーバでパターンマッチング処理を行うことが考えられる。
図2は、入力イベント分散処理システムの一例を示す。図2では、説明の便宜上、イベントデータは、ある特定のイベントのイベントデータであり、イベント種別は考慮しない。イベントデータに付与される識別値を分散キー値と定義する。入力イベント分散処理システムでは、各検知サーバ3には、分散キー値に応じたパターンが格納されている。転送サーバ5は、通信ネットワーク上を流れるイベントデータを受信すると、イベントデータに付与されたイベント種別毎の分散キー値に応じて、そのイベントデータをいずれかの検知サーバ3に振り分ける。
各検知サーバ3は、自身が担当するイベントの分散キー値に応じたデータと、予め保持するパターンとのパターンマッチングを行う。これにより、入力イベントデータ量の増加がしても、検知サーバを増やして、パターンマッチング処理の分散並列処理が可能になる。
しかしながら、あるイベントの分散キー値に対するパターン数が増加すると、パターンマッチング処理量が増加するので、レイテンシが増加する。このように、分散キー値を用いた分散並列処理では、検知サーバ3にかかる負荷に偏りが生じ、負荷の平準化の妨げになり、場合によっては、破綻する検知サーバもある。そこで、図3に示すように、各検知サーバが保持するパターン数を均衡にすることが考えられる。
図3は、パターン分散処理システムの一例を示す。図3では、説明の便宜上、イベントデータは、ある特定のイベントのイベントデータであり、イベント種別は考慮しない。パターン分散処理システムでは、各検知サーバ3が保持するパターン数は、均等化されている。このように、パターン毎で分散させることにより、図2のパターン数の偏りには対処可能である。
パターン分散処理システムでは、各検知サーバ3は、自身が保持するパターンに対応するイベントの分散キー値に対応するイベントデータのマッチング処理を担当することになる。そのため、検知サーバ3によっては、その担当する分散キー値が複数になる場合がある。また、同じ分散キー値を担当する検知サーバ3が複数になることから、転送サーバ5は、入力されたイベントデータをマルチキャストにて全ての検知サーバ3に送信する。
そのため、特定のパターンに対する分散キー値数の偏りが発生するおそれもあり、さらにマルチキャストによる通信トラフィックも増加する。このように、パターン分散処理システムでは、ネットワークネックとなり、スケーラビリティを損なうことが考えられる。
そこで、本実施形態では、入力イベントデータ及びパターンの動的な増減に対しても、負荷平準化で、スケーラビリティを維持した分散を行うことについて説明する。
図4は、本実施形態における分散処理管理装置を示す。分散処理管理装置11は、取得部12、移動制御部13を含む。分散処理管理装置11の一例として、管理サーバ36が挙げられる。
取得部12は、複数のサーバ装置15のそれぞれから、検知処理に関する負荷値を識別情報単位で取得する。複数のサーバ装置15は、転送装置14によって振り分けられたデータについてのパターンの検知処理を識別情報毎に行う。転送装置14は、入力されたデータをデータに付与される識別情報により振り分ける。複数のサーバ装置15の一例として、検知サーバ41が挙げられる。転送装置14の一例として、転送サーバ33が挙げられる。取得部12の一例として、移動管理部37が挙げられる。識別情報は、一意の単一のデータ項目であっても、本実施形態のイベント種別と分散キー値との組み合わせのように、複数のデータ項目を複合して一意にしたものであってもよい。
移動管理部37は、複数のサーバ装置15のうち第1サーバ装置15aより取得した負荷値が所定の許容範囲を超えた場合、次の処理を行う。すなわち、移動管理部37は、第1サーバ装置15aから複数のサーバ装置15のうち第2サーバ装置15bへ、識別情報と識別情報に対応する一パターンとの組み合わせを、組単位で移動させる。その識別情報と識別情報に対応する一パターンとの組み合わせの移動は、第1サーバ装置15aと第2サーバ装置15bとの負荷値がそれぞれ許容範囲内であるか否かに応じて、行われる。移動制御部13の一例として、移動管理部37が挙げられる。
このように構成することにより、入力データのパターン検知分散処理において、分散する負荷の平準化精度を向上させることができる。
移動制御部13は、第1サーバ装置15aより取得した第1サーバ装置15aの検知負荷の負荷値が第1許容範囲(後述する第1条件に対応する)を超えた場合に、次を行う。移動制御部13は、第1サーバ装置15aから第2サーバ装置15bへ、一または複数組の組み合わせを移動させて第1サーバ装置15aと第2サーバ装置15bとの検知負荷の負荷値がそれぞれ第1許容範囲内に収まるか否かを判定する。第1サーバ装置15aと第2サーバ装置15bとの検知負荷の負荷値がそれぞれ第1許容範囲内に収まる場合、移動制御部13は、第2サーバ装置15bへ一または複数組の組み合わせを移動する旨を第1サーバ装置に指示する。
このように構成することにより、識別情報とパターンとの組み合わせを移動単位とすることができるので、移動単位の粒度を細かくすることができる。その結果、より柔軟に負荷(各サーバの検知処理コスト)の分散の平準化の調整を行うことができるので、平準化の精度を向上させることができる。また、第1サーバ装置15aより取得した負荷値が許容範囲を超えた場合に、負荷の平準化の調整が実行されるので、動的に負荷分散を行うことができる。
移動制御部13は、さらに、第一条件として、第1サーバ装置15aより取得した第1サーバ装置15aの通信負荷の負荷値が第2許容範囲(後述する第二条件に対応する)を超えた場合、次を行う。移動制御部13は、第1サーバ装置15aから第2サーバ装置15bへ、第1サーバ装置15aが処理する識別情報に対応する全パターンを移動させて第1サーバ装置15aと第2サーバ装置15bとの通信負荷の負荷値がそれぞれ第2許容範囲内に収まるか判定する。第1サーバ装置15aと第2サーバ装置15bとの通信負荷の負荷値がそれぞれ第2許容範囲内に収まる場合、移動制御部13は、第2サーバ装置15bへ識別情報と識別情報に対応する全パターンを移動する旨を第1サーバ装置15aに指示する。
このように構成することにより、負荷(各サーバの通信処理コスト)の分散の平準化の調整を行うことができる。
移動制御部13は、さらに、複数のサーバ装置15のそれぞれより取得したそれぞれのサーバ装置15の負荷値の合計が第3許容範囲(後述する第三条件に対応する)を超えた場合、次を行う。第1サーバ装置15aは、検知処理に係る負荷が最も小さい検知処理を行うと仮定する。移動制御部13は、第1サーバ装置15aの負荷が最も小さい検知処理で用いる検知対象のパターンを第2サーバ装置15bへ移動させて第1サーバ装置15aと第2サーバ装置15bとの検知負荷の負荷値がそれぞれ第1許容範囲内に収まるか否かを判定する。移動制御部13は、第1サーバ装置15aと第2サーバ装置15bとの検知負荷の負荷値がそれぞれ第1許容範囲内に収まる場合、第2サーバ装置15bへ一または複数組の組み合わせを移動する旨を第1サーバ装置15aに指示する。
このように構成することにより、全体のネットワーク負荷を低減させることができる。
移動制御部13は、移動対象の組に含まれるパターンのうち、第2サーバ装置15bが有しているパターンについて、パターンの実データを移動させずにパターンの識別情報を移動させる。一方、移動制御部13は、移動対象の組に含まれるパターンのうち、第2サーバ装置が有していないパターンについて、パターンの実データ及びパターンの識別情報を移動させる。
このように構成することにより、移動対象の組に含まれるパターンのうち、第2サーバ装置15bが有しているパターンについて、パターンの実データを移動先サーバに送らなくてよいので、通信コストを低減させることができる。
移動制御部13は、さらに、一または複数組の組み合わせを第2サーバ装置15bへ移動させて第1サーバ装置15aと第2サーバ装置15bとの負荷値が許容範囲を超える場合、サーバ装置15の追加または削減を通知する。
このように構成することにより、既存のサーバでの負荷の許容範囲を超えて平準化を図れなくなった場合、サーバ数を動的に増減させて、スケーラビリティを維持した負荷分散を行うことができる。
図5は、本実施形態における負荷移動制御処理を説明するための図である。図5では、説明の便宜上、イベントデータは、ある特定のイベントのイベントデータであり、イベント種別は考慮しない。
転送サーバ24は、リアルタイムで受信したイベントデータにイベント毎に付与された分散キー値に基づいて、あるイベントの分散キー値に対応する検知サーバ21へユニキャストで、そのイベントを送信する。
各検知サーバ21a,21bには、担当するあるイベントの分散キー値と、そのイベントの分散キー値に対応する検知すべきパターン集合22(22a,22b,22c)とが格納されている。あるイベントの同じ分散キー値であっても、パターン集合の内容は、検知サーバ21(21a,21b)毎に異なる。例えば、検知サーバ21aは、あるイベントの分散キー値=1が付与されたイベントデータに対して、パターン(A,B,C,D,E,F,G)22aを用いて、パターンの検知を行う。
また、例えば、ある検知サーバにおいて、あるイベントについて、異なる分散キー値に対応するパターン集合内に、双方同じパターンを保持する場合は、パターンの実データは一つ(共有)でもいい。例えば、検知サーバ21aにおいて、パターン集合22aとパターン集合22bとでは、パターンA,B,C,D,E,Fが共通しているので、検知サーバ21aはこれらのパターンデータをそれぞれ1つづつ保持しておけばよい。
本実施形態におけるシステムにおいて、検知サーバ21aに負荷が偏った場合、その負荷を軽減するために、検知サーバ21aで処理しているパターンマッチング処理の一部、すなわち負荷を他の検知サーバに移すことが考えられる。
しかしながら、パターン集合単位で他の検知サーバにパターンマッチング処理を移行すると、移行先の検知サーバでの処理許容量を超えてしまい、その移行先の検知サーバに負荷が偏ることになることが想定される。
そこで、検知サーバ21aからパターン集合の一部を切り出し、その切り出したパターン集合の一部と、そのパターンに対応するイベントの分散キー値との組み合わせを他の検知サーバ21bに移動させることが考えられる。図5の場合、切り出されたイベントのパターン集合の一部23(パターンB,H)と、そのイベントの分散キー値=4とが、検知サーバ21aから検知サーバ21bへ移行される。これにより、検知サーバ21aだけでなく、検知サーバ21bも、分散キー値=4が付与されたあるイベントについて、パターンマッチング処理を行うことができる。
この場合、転送サーバ24は、リアルタイムで受信したあるイベントのイベントデータに付与された識別値(分散キー値)が“4”の場合、全検知サーバ21へマルチキャストでそのイベントを送信する。あるイベントの分散キー値=4を担当する検知サーバ21a,21bは、転送サーバ24からマルチキャストで送信された、分散キー値=4が付与されたあるイベントのイベントデータを受信すると、そのイベントの分散キー値に対応するパターン集合を用いてパターンマッチング処理を行う。
なお、あるイベントについて、同一の分散キー値を担当する検知サーバが複数になると、上述の通り、マルチキャストでイベントが送信されるので、ネットワークのトラフィックが増加する。そのため、パターン集合の一部または全部を移行する前に、トラフィック増加の影響を考慮したほうがよい。
このように、本実施形態では、入力イベントデータのイベント種別と、分散キー値とを識別情報とし、その識別情報とその識別情報に対応するパターンを1つの組とし、この組を移動単位として、どの組をどこに移動すれば最適な分散処理が実現できるかを制御する。これにより、入力イベントデータのイベント種別と識別値とパターンとの組み合わせを移動処理単位とすることによって、より柔軟な(効果的・効率的な平準化を実現する)動的負荷分散を行い、低レイテンシ及び高スループットを維持することが可能となる。すなわち、各検知サーバの負荷を効果的に平準化することができる。また、入力イベントデータのイベント種別と識別値とパターンとの組み合わせを移動させる場合であって、移動先に既に同一のパターンデータがある場合には、そのパターンデータを送る必要がない。そのため、平準化コストを低減させることができ、効率的な平均化を実現することができる。
以下に、本実施形態の詳細について説明する。
図6は、本実施形態におけるイベント検知システムの一例を示す。イベント検知システム(以下では、「システム」と表記する場合もある)30は、学習サーバ31、転送サーバ33、管理サーバ36、複数の検知サーバ41(41a,41b,・・・)を含む。学習サーバ31、転送サーバ33、管理サーバ36、複数の検知サーバ41(41a,41b,・・・・)は、インターネット、LAN(Local Area Network)等の通信ネットワーク46で接続されている。学習サーバ31、転送サーバ33、管理サーバ36、複数の検知サーバ41(41a,41b,・・・・)は、それぞれ、プロセッサ、メモリ、及び記憶装置、通信インターフェース等を含む。
学習サーバ31は、抽出部32を含む。抽出部32は、学習サーバ31のプロセッサにより実現される。抽出部32は、通信ネットワーク46を介して受信したイベントデータまたは既に定義済みの情報から、検知すべきパターンを抽出し、抽出したパターンと、抽出したパターンのイベント種別及び分散キー値を管理サーバ36へ通知する。また、抽出部32は、検知から外すパターンも管理サーバ36に通知する。
管理サーバ36は、移動管理部37、全体負荷テーブル38、詳細負荷テーブル39,閾値情報40を含む。全体負荷テーブル38、詳細負荷テーブル39、閾値情報40は、管理サーバ36のメモリまたは記憶装置に格納されている。全体負荷テーブル38は、各検知サーバ41(41a,41b,・・・・)から送信された検知サーバ41単位の負荷情報(sum(Tproc), sum(Tcomm))を格納する。
Tprocは、各検知サーバ41(41a,41b,・・・・)から通知される単位時間当たりの所定のイベントの分散キー値に関する検知処理コストを示す。sum(Tproc)は、全検知サーバ41から送信されたTprocの合計を示す。
Tcommは、各検知サーバ41(41a,41b,・・・・)から通知される単位時間当たりの所定のイベントの分散キー値に関するイベント入力通信コストを示す。sum(Tcomm)は、全検知サーバ41から送信されたTcommの合計を示す。
全体負荷テーブル38は、パターンの割り当て及び移動判定に使用される。負荷情報(sum(Tproc), sum(Tcomm))の詳細については後述する。
詳細負荷テーブル39は、各検知サーバ41から送信されたパターンテーブル44の情報を格納する。閾値情報40は、後述するように、sum(Tproc)の下限閾値及び上限閾値、sum(Tcomm)の下限閾値及び上限閾値、total(sum(Tcomm)の上限閾値を保持する。
移動管理部37は、管理サーバ36のプロセッサにより実現される。移動管理部37は、全体負荷テーブル38と詳細負荷テーブル39を参照し、いずれかの検知サーバまたはイベント検知システムの状態が後述する条件を満たすか否かを判定する。
いずれかの検知サーバまたはイベント検知システムの状態が後述する条件を満たさない場合、移動管理部37は、イベント種別と分散キー値とパターンとのどの組み合わせを、どのサーバに割り当てて、移動させるとその条件を満たすかを見積もる。そして、移動管理部37は、その見積もり情報に基づいて、イベント種別と分散キー値とパターンとの組み合わせを移動させる。
学習サーバ31の抽出部32によって抽出されたイベント種別と分散キー値とパターンとの新規の組み合わせが学習サーバ31から通知されると、移動管理部37は、全体負荷テーブル38を参照して、負荷の低い検知サーバを担当検知サーバとして決定する。移動管理部37は、担当検知サーバと、イベント種別、分散キー値を転送サーバ33に通知する。
また、新規な負荷の割り当てを行う際は、移動管理部37は、担当検知サーバ41にイベント種別、分散キー値、及びパターンを含むテーブル更新指示を送信する。
また、イベント種別と分散キー値との組み合わせに対応するパターン集合の一部を分割して、パターン集合の一部とイベント種別と分散キー値の組み合わせを他の検知サーバへ移動させる場合、移動管理部37は、移動元の検知サーバに移動指示を通知する。移動指示は、イベント種別、分散キー値、及びパターン名、移動先のサーバのアドレス情報を含む。
また、移動管理部37は、検知サーバ41からの通知に基づいて、全体負荷テーブル38及び詳細負荷テーブル39を更新する。
転送サーバ33は、転送部34、ルーティングテーブル35を含む。ルーティングテーブル35は、転送サーバ33のメモリまたは記憶装置に格納されている。ルーティングテーブル35は、イベント種別及び分散キー値毎に、どの検知サーバがそのイベントの分散キー値に対応するイベントのパターンマッチング処理を担当しているかの情報を保持する。
転送部34は、転送サーバ33のプロセッサにより実現される。転送部34は、イベントデータの入力を受け付け、イベント種別及び分散キー値に応じて、ルーティングテーブル35に格納された検知サーバ41へ転送(転送先が1つの場合にはユニキャストで送信、転送先が複数の場合にはマルチキャストで送信)する。転送部34は、ルーティングテーブル35の更新依頼を管理サーバ36から受け付ける。
検知サーバ41は、検知部42、仲介部43、パターンテーブル44、負荷テーブル45を含む。パターンテーブル44、負荷テーブル45は、検知サーバ41のメモリまたは記憶装置に格納されている。
負荷テーブル45は、イベント種別と分散キー値との組み合わせを一意の情報として、検知するパターンを識別するパターン名、Tproc、Tcommの情報を保持する。
パターンテーブル44は、パターンの実データを保持する。パターンテーブル44は、負荷テーブル45のパターン名をキーにアクセスされる。なお、検知手法によってパターンの実データのデータ構造は異なる。
検知部42は、転送サーバ33から送信された入力イベントデータを受信すると、入力イベントデータからパターンを抽出し、抽出したパターンと、パターンテーブル44に登録されたパターンとの比較を行う。
仲介部43は、管理サーバ36からテーブル更新指示または移動指示を受信すると、負荷テーブル45またはパターンテーブル44の更新を行う。さらに、移動指示の場合、仲介部43は、移動指示に従って、イベント種別と、分散キー値と、分散キー値に対応するパターンの組み合わせを、組単位で他の検知サーバへ移動させる。
また、仲介部43は、管理サーバ36における移動判定のために、負荷テーブル情報(sum(Tcomm)、sum(Tproc))を指定間隔で管理サーバ36へ通知する。また、仲介部43は、管理サーバ36からの要求に基づいて、詳細負荷情報(イベント種別、分散キー値、パターン名、Tproc、Tcommを含む)を管理サーバ36へ通知する。
図7は、本実施形態におけるイベント検知システムで用いられるルーティングテーブル、負荷テーブル、及び全体負荷テーブルの一例を示す。
図7(A)に示すルーティングテーブル35は、転送サーバ33が受信した入力イベントデータを、その入力イベントデータに付与されたイベント種別及び分散キー値の組み合わせを担当する転送先の検知サーバに送信するために用いられる。
ルーティングテーブル35は、「イベント種別」、「分散キー値」、「検知サーバ」のデータ項目を含む。項目「イベント種別」は、イベントの種類を示す。項目「分散キー値」は、そのイベントに割り与えられた分散キー値を示す。
項目「検知サーバ」には、そのイベントの転送先となる検知サーバのIP(Intetnet Protocol)アドレス等が格納される。項目「検知サーバ」には、リストとして複数の検知サーバのアドレスを格納することができる。イベント種別及び分散キー値に対応する送信先として、項目「検知サーバ」に複数の検知サーバが登録されている場合、転送部34は、マルチキャスト送信を行う。一方、イベント種別及び分散キー値に対応する送信先として、項目「検知サーバ」に1つの検知サーバが登録されている場合、転送部34は、ユニキャスト送信を行う。
図7(B)に示す負荷テーブル45は、各検知サーバのイベント種別と分散キー値の組み合わせに対応するパターンリスト毎の負荷情報を管理するために用いられる。負荷テーブル45は、「イベント種別」、「分散キー値」、「パターンリスト」、「Tproc」、「Tcomm」のデータ項目を含む。
項目「イベント種別」は、イベントの種類を示す。項目「分散キー値」は、そのイベントに割り与えられた分散キー値を示す。
項目「パターンリスト」は、パターンを識別する1以上のパターン名が格納される。項目「パターンリスト」は、イベント種別と分散キー値の組み合わせに対応する1以上のパターンが含まれるパターン集合のリストである。パターン名に対応する実データは、パターンテーブル44に格納されている。
項目「Tproc」、項目「Tcomm」は、移動判定用のメトリクスとして用いられるパラメータを格納する。
「Tcomm」は、単位時間当たりの所定のイベントの分散キー値毎のイベント入力通信コストを示す。Tcommは、イベントの分散キー値毎に異なるが、該当イベントの分散キー値を担当する検知サーバ群へマルチキャストするため同一のイベントの分散キー値に対しては、全検知サーバで一定である。ただし、担当しないイベントの分散キー値に対しては、そのサーバ上ではTcomm=0となる。なお、Tcommを検知サーバ毎に計算してもいいが、一定なので、一箇所(入力アダプタなど)で管理する方がより望ましい。Tcommは、入力頻度に比例する。例えば、ある分散キー値=aの通信コストは、Tcomm(a) = k1 * n(a)
(k1:係数(1入力あたりの通信コスト。直列化など通信要因コスト、データサイズに依存する)、n:入力頻度(所定のイベントの分散キー値に対する入力イベント数))
で表される。
「Tproc」は、単位時間当たりの所定イベントの分散キー値毎の検知処理コストを示す。Tprocは、所定イベントの同一分散キー値に対しても、検知サーバ毎に異なる。Tprocは、Tcommと異なり、分散キー値に対する検知パターン数が検知サーバ毎に異なるため、検知サーバ毎に計算される。Tprocは、入力頻度、パターン数に比例する。例えば、あるイベントの分散キー値=aの検知処理コストは、
Tproc(a) = k2 * n(a) * np(a)
(k2:係数(1入力あたりの検知処理コスト。データ種別・サイズ・処理内容などに依存する)、n:入力頻度(所定のイベントの分散キー値に対する入力イベント数)、np:パターン数)
で表される。
検知サーバ41の仲介部43は、負荷テーブル45の「Tproc」及び「Tcomm」をそれぞれ集計(sum(Tcomm)、sum(Tproc))し、その集計したsum(Tcomm)、sum(Tproc)を負荷情報として管理サーバ36へ送信する。
全体負荷テーブル38は、各検知サーバ41から送信された負荷情報を管理するために用いられる。全体負荷テーブル38は、「検知サーバ」、「sum(Tproc)」、「sum(Tcomm)」のデータ項目を含む。項目「検知サーバ」は、検知サーバを識別する情報が格納される。項目「sum(Tproc)」には、検知サーバ41から送信されたsum(Tproc)が格納される。項目「sum(Tcomm)」には、検知サーバ41から送信されたsum(Tcomm)が格納される。ここで、全サーバのsum(Tcomm)の総計トラフィックをtotal(sum(Tcomm)で表す。
次に、移動判定について説明する。sum(Tproc)、sum(Tcomm)は、各検知サーバの負荷の平準化のための閾値であり、それぞれ上限・下限閾値が設定される。上限閾値は、その検知サーバにおいて、負荷が高すぎる、すなわちそれ以上の処理は許容できないと判断される値であり、リソース使用率の6〜8割当たりが好ましい。下限閾値は、その検知サーバにおいて、負荷が低すぎる、すなわち余剰リソースが大きいまたは使用効率が悪い状態であると判断される値であり、下回っていたら、他の検知サーバが上限閾値に達していなくてもなるべく処理を受ける。下限閾値は、リソース使用率の1〜3割当たりが好ましい。
total(sum(Tcomm))は、全体トラフィックを減らすべきと判断される場合に用いられる閾値であり、上限閾値が設定される。
管理サーバ36は以下の3条件を満たすように、イベント検知システム全体の負荷を制御する。
第一条件:各検知サーバの検知処理コスト(sum(Tproc))が下限閾値〜上限閾値であること
第二条件:各検知サーバの通信コスト(sum(Tcomm))が下限閾値〜上限閾値であること
第三条件:全サーバのsum(Tcomm)の合計(total(sum(Tcomm))が上限閾値以下であること
上記3つの条件のいずれかに合致しない場合、管理サーバ36は、図8で説明するように、合致しない条件に対応する方式1〜4のいずれかを用いて処理の移動を行うように制御する。その場合、それぞれ移動元及び移動先サーバ、移動するイベントのイベント種別、分散キー値及びパターン名の組み合わせが選択される。
図8は、本実施形態における監視対象が、対応する条件を充足するか否かに応じて、方式1〜4を実行するフローを示す。移動管理部37は、閾値情報40に登録されたsum(Tproc))についての下限閾値〜上限閾値と、sum(Tcommについての下限閾値〜上限閾値と、total(sum(Tcomm))についての上限閾値とを取得する。
管理サーバ36は、各検知サーバ41から所定間隔で送信された負荷情報(sum(Tproc)、sum(Tcomm))を受信して、全体負荷テーブル38に格納する。そして、管理サーバ36の移動管理部37は、全体負荷テーブル38を所定間隔で参照し、各検知サーバ41のsum(Tproc)とsum(Tcomm)、及び全サーバのsum(Tcomm)の合計total(sum(Tcomm)を監視する(S1,S4,S7)。
監視において、移動管理部37は、sum(Tproc))についての下限閾値〜上限閾値と、各検知サーバ41のsum(Tproc)とを比較する(S2)。また、移動管理部37は、sum(Tcommについての下限閾値〜上限閾値と、各検知サーバ41のsum(Tcomm)とを比較する(S5)。また、移動管理部37は、total(sum(Tcomm))についての上限閾値と、全サーバのsum(Tcomm)の合計total(sum(Tcomm)とを比較する(S8)。
監視の結果、各検知サーバの検知処理コスト(sum(Tproc))が下限閾値〜上限閾値の範囲を超えたと判定した場合、すなわち、第一条件を満たさなくなった場合(S2で「No」)、移動管理部37は、方式1を実行する(S3)(図12)。
監視の結果、各検知サーバの通信コスト(sum(Tcomm))が下限閾値〜上限閾値の範囲を超えたと判定した場合、すなわち、第二条件を満たさなくなった場合(S5で「No」)、移動管理部37は、方式2を実行する(S6)(図14)。
監視の結果、全サーバのsum(Tcomm)の合計(total(sum(Tcomm))が上限閾値を超えたと判定した場合、すなわち、第三条件を満たさなくなった場合(S8で「No」)、移動管理部37は、方式3を実行する(S9)(図15)。
方式1〜3のいずれを実行してもそれぞれが対応する第一〜第三条件を満たさない場合、移動管理部37は、方式4を実行する(S10)(図16)。
図9は、本実施形態における方式1を説明するための図である。方式1は、第一条件を満たさない場合に適用される。
sum(Tproc)が上限閾値を上回ったサーバがある場合、管理サーバ36は、上回ったサーバを移動元サーバ、最もsum(Tproc)の低いサーバを移動先サーバとして選択する。
sum(Tproc)が下限閾値を下回ったサーバがある場合、管理サーバ36は、下回ったサーバを移動先サーバ、最もsum(Tproc)の高いサーバを移動元サーバとして選択する。
管理サーバ36は、移動元サーバの中で、Tprocの高いイベントの分散キー値を順番に選択する。ただし、管理サーバ36は、選択したイベントの分散キー値とパターンとの組み合わせを実際に移動させる前に、移動後の移動元及び移動先サーバのsum(Tproc)を見積もる。そして、第一条件及び第二条件を満たさない場合、管理サーバ36は、イベントの分散キー値に対応するパターンリストから、一部のパターンを移動させるパターン候補として分割する。
移動させるパターンの候補は、移動先の検知サーバが有するパターンと同一のパターンを優先する。これにより、同一のパターンの実データを移動させずに、移動先の既存のパターンを共有することができるので、パターン移動コストを削減することができる。また、分割した場合も同様に、移動前に、移動後の移動元及び移動先サーバのsum(Tproc)を見積もる。その見積もりの結果、第一条件を満たせない場合は、管理サーバ36は、方式4を行う。
例えば、図9の場合、管理サーバ36は、sum(Tproc)が上限閾値を超えている検知サーバ2を検知すると、検知サーバ2より通知された詳細負荷情報から、最もTprocの高いイベントの分散キー値(”EventA”, “0001”)の負荷を選択する。
しかしながら、最もTprocの高いイベントの分散キー値(”EventA”, “0001”)の負荷を検知サーバ1へ移動させたとしても、検知サーバ2のsum(Tproc)は、まだ上限閾値を超えているので、管理サーバ36は、次にTprocの高いイベントの分散キー値(”EventA”, “0003”)の負荷を選択する。
しかし、この選択した負荷ごと移動すると、検知サーバ1のTprocが上限閾値を超えてしまうため、管理サーバ36は、この選択した負荷の中でさらに負荷(パターンリスト)を分割する。パターンリストの分割に際して、管理サーバ36は、移動先の検知サーバが有するパターンと同一のパターン”p002”が優先して選択する。管理サーバ36は、イベントの分散キー値(”EventA”, “0003”)と、パターン名”p002”との組み合わせを検知サーバ1に移動させる。
図10は、本実施形態における方式2を説明するための図である。方式2は、第ニ条件を満たさない場合に適用される。図10(A)は、方式2の適用前の検知サーバ1、2の状態の一例を示す。
sum(Tcomm)が上限閾値を上回った検知サーバがある場合、管理サーバ36は、上回った検知サーバを移動元サーバ、最もsum(Tproc)の低い検知サーバを移動先サーバとして選択する。
sum(comm)が下限閾値を下回った検知サーバがある場合、管理サーバ36は、下回ったサーバを移動先サーバ、最もsum(Tcomm)の高い検知サーバを移動元サーバとして選択する。
管理サーバ36は、移動元サーバの中で、Tcommの高いイベントの分散キー値を順番に選択する。しかし、方式1のように、分割して移動しても、分割したイベントの分散キー値のイベントデータはマルチキャストされるため、Tcommが減らない。そのため、方式2では、図10(B)に示すように、Tcommを減らすため、管理サーバ36は、分割キー値=3に対応するパターン全てを移動させる。その結果、移動元の検知サーバのTprocは減少する。
さらに、移動元の検知サーバだけなく移動先の検知サーバも同一の分散キー値を保持する場合について考える。図10(C)に示すように、移動先の検知サーバ2は、元々その分散キー値=4をもつ所定のイベントデータを受信しているため、移動先サーバのTcommを増加させることなく、移動先サーバ1から移動先サーバ2へ所定のイベントの分散キー値=4に対応するパターンを移動させることができる。
移動させるパターンは、方式1で説明したのと同様に、移動先の検知サーバが有するパターンと同一のパターンを優先する。これにより、同一のパターンを移動させずに、移動先の既存のパターンを共有することができるので、パターン移動コストを削減することができる。
これらの考慮した上で、方式1のようにTcommの高い組み合わせから移動させる。そのとき、管理サーバ36は、方式1と同様に、移動前に、イベント種別と分散キー値とパターンの組み合わせを選択し、移動後の移動元及び移動先サーバのsum(Tcomm)を見積もる。その見積もりの結果、第ニ条件を満たせない場合は、管理サーバ36は、方式4を行う。
図11は、本実施形態における方式3を説明するための図である。方式3は、total(sum(Tcomm))を下げるための方式であり、第三条件を満たさない場合に、適用される。
第一条件を満たさない状態が継続すると、パターン集合の分割が広範囲に進んでいくので、マルチキャストによるイベントの送信が増える。その結果、システム全体としてのトラフィック(total(sum(Tcomm)))が増える、という状況になる。その状況下では、負荷が上がった時、どのイベント種別と分散キー値とパターンの組み合わせをどのサーバへ移動しても第二条件を満たせない可能性が高い。なお、方式2でも、全体のネットワーク負荷total(sum(Tcomm))を増やさないように考慮されている。
方式3では、管理サーバ36は、Tprocが小さいイベント種別と分散キー値とパターンとの組み合わせを、同一サーバ上に集約する。サーバを追加する方法もあるが、まずはリソース効率から再配置を試みるのが好ましい。また、Tprocが小さいイベントの分散キー値とパターンとの組み合わせによる負荷は移動させやすい。また、方式1、方式2と同様に、移動後に第一条件及び第二条件を満たすように負荷を選択する。
図11では、(i(i-1, i-2)最もTprocの低い検知サーバが移動元サーバとして選択され、そのTprocと、イベント種別と、分散キー値との組み合わせが(順に)選択される。(ii)次に、移動元サーバとして選択された検知サーバを除く、sum(Tproc)の最も低い検知サーバが移動先サーバとして選択され、イベント種別と、分散キー値と、Tprocとの組み合わせが(順に)選択される。(iii)移動元サーバにおいて、選択されたベント種別と、分散キー値と、Tprocとの組み合わせで最もTprocの低い検知サーバが(順に)移動されられる。上記(i)〜(iii)は、第三条件を満たすまで入れ子でループする。その結果、図11では、全体のネットワーク負荷total(sum(Tcomm))が20減少している。
次に方式4について説明する。方式1、2、または3を行っても、第一、第二、または第三条件を満足できない場合、検知サーバを追加または削除することにより、検知サーバまたはシステム全体の負荷を調整する。これを方式4とする。すなわち、第一、第二、または第三条件において上限閾値を上回ってしまう場合、検知サーバが追加される。また、第一、第二、または第三条件においての下限閾値を下回ってしまう場合、システムから検知サーバが 削除される。
追加した検知サーバへのイベント種別と分散キー値とパターンとの組み合わせの移動、及び削除対象の検知サーバからのイベント種別と分散キー値とパターンとの組み合わせの移動は、方式1、2,3と同様の手順で行われる。
図12は、本実施形態における管理サーバの移動管理部による方式1を用いた負荷移動処理のフローを示す。図12のフローは、図8のS3の処理の詳細である。
移動管理部37は、全体負荷テーブル38を参照し、sum(Tproc)の上限閾値を上回った検知サーバ、または最もsum(Tproc)の高い検知サーバを移動元検知サーバ(src)として選択する(S21)。移動管理部37は、選択した移動元検知サーバ(src)に対して、負荷テーブル45の内容を送るように要求し、その応答にて得られた詳細負荷情報を詳細負荷テーブル39に格納する。
移動管理部37は、詳細負荷テーブル39を参照し、移動元検知サーバ(src)のイベントの分散キー値の中で最もTprocが高い分散キー値(x)を選択する(S22)。
移動管理部37は、全体負荷テーブル38を参照し、最もsum(Tproc)の低い検知サーバを移動先サーバ候補(dst)として選択する(S13)。移動管理部37は、選択した移動先サーバ候補(dst)に対して、負荷テーブル45の内容を送るように要求し、その応答にて得られた詳細負荷情報を詳細負荷テーブル39に格納する。
移動管理部37は、移動元検知サーバ(src)から移動先サーバ候補(dst)へ、イベントの分散キー値(x)に対応するパターンマッチング処理(負荷)を移動させたと仮定した場合に第1条件を満たすかを判定する移動後条件判定処理を実行する(S14)。
S14の移動後条件判定処理への入力パラメータとして、Tproc(=係数k2×入力頻度n×イベントの分散キー値(x)に対応するパターン数)、移動元検知サーバ(src)、移動先サーバ候補(dst)、イベント種別、分散キー値(x)が入力される。S14の処理の詳細は、図13で説明する。
S14の移動後条件判定処理の返り値が「真」の場合(第1条件を満たすと判定された場合)(S15で「Yes」)、移動管理部37は、次の処理を行う。すなわち、移動管理部37は、移動元検知サーバ(src)が担当するイベントの分散キー値(x)に対応する全パターンの処理を移動先サーバ候補(dst)に移動するように、移動元検知サーバ(src)に移動指示を行う(S16)。
このとき、移動管理部37は、詳細負荷テーブル39に格納された移動先検知サーバ(dst)の詳細負荷情報のパターンリストを参照して、移動対象となるイベントの分散キー値(x)に対応する各パターン名がそのパターンリストに含まれるかを判定する。
移動対象となるイベントの分散キー値(x)に対応する全パターン名が移動先検知サーバ(dst)のパターンリストに含まれている場合、移動管理部37は、次を行う。すなわち。移動管理部37は、移動指示にそのパターン名を送信する旨を含め、そのパターン名に対応する実データを送信する旨を含めない。
一方、移動対象となるイベントの分散キー値(x)に対応するパターン名のうち移動先検知サーバ(dst)のパターンリストに含まれていないパターン名がある場合、移動管理部37は、次の処理を行う。すなわち、移動管理部37は、移動指示にそのパターン名と、そのパターン名に対応する実データを送信する指示を含める。
移動元検知サーバ(src)の仲介部43は、管理サーバ36から移動指示を受信すると、その移動指示に基づいて、移動対象となるイベントの分散キー値(x)に対応する全パターン名を移動先検知サーバ(dst)へ送信する。その移動指示に移動対象となるパターン名に対応する実データも移動させるように指示がある場合には、仲介部43は、パターンの実データも送信する。
イベント種別と分散キー値(x)とパターンとの組み合わせの移動後、移動元検知サーバ(src)、移動先検知サーバ(dst)はそれぞれ、負荷テーブル45を更新する。その結果、移動対象の負荷が移動元検知サーバ(src)から移動先検知サーバ(dst)に移動している。したがって、移動させたイベント種別と分散キー値とパターンとの組み合わせによる処理は、移動元検知サーバ(src)では実行されず、移動先検知サーバ(dst)で実行されることになる。また、移動元検知サーバ(src)、移動先検知サーバ(dst)はそれぞれ、更新した負荷テーブル45に基づいて、負荷情報(sum(Tcomm)、sum(Tproc))を管理サーバ36に通知する。
移動管理部37は、移動元検知サーバ(src)及び移動先検知サーバ(dst)から受信した負荷情報(sum(Tcomm)、sum(Tproc))に基づいて、全体負荷テーブル38を更新する。
移動管理部37は、移動元検知サーバ(src)、移動先検知サーバ(dst)共に、第一条件及び第二条件を満たすかを判定する(S17)。すなわち、移動管理部37は、全体負荷テーブル38を参照し、移動元検知サーバ(src)、移動先検知サーバ(dst)共に、(sum(Tproc))が下限閾値〜上限閾値で、かつsum(Tcomm)が下限閾値〜上限閾値であるかを判定する。
移動元検知サーバ(src)、移動先検知サーバ(dst)共に、第一条件及び第二条件を満たしていない場合(S17で「No」)、S12へ戻る。移動元検知サーバ(src)、移動先検知サーバ(dst)共に、第一条件及び第二条件を満たす場合(S17で「Yes」)、本フローは終了する。
S14の移動後条件判定処理の返り値が「偽」の場合(第1条件を満たさないと判定された場合)(S15で「No」)、移動管理部37は、詳細負荷テーブル39に格納した移動元検知サーバ(src)の詳細負荷情報を参照し、次の処理を行う。
すなわち、移動管理部37は、移動元検知サーバ(src)のイベントの分散キー値(x)に対応するパターンリスト内の全パターン名と、移動先検知サーバ(dst)の全パターンリスト内の全パターン名の中で、同一のパターン名があるかを判定する(S18)。
移動元検知サーバ(src)のイベントの分散キー値(x)に対応する全パターン名と、移動先検知サーバ(dst)の全パターンリスト内の全パターン名の中で、同一のパターン名がある場合(S18で「Yes」)、移動管理部37は、次の処理を行う。すなわち、移動管理部37は、移動元検知サーバ(src)のイベントの分散キー値(x)に対応するパターンリスト内の全パターン名から、同一のパターン名(y)を一つ選択し、パターン名(y)とイベント種別と分散キー値(x)との組み合わせをzとする(S19)。
移動元検知サーバ(src)が担当するイベントの分散キー値(x)に対する全パターン名と、移動先検知サーバ(dst)が担当する全パターン名の中で、同一のパターン名がない場合(S8で「No」)、移動管理部37は、次の処理を行う。すなわち、移動管理部37は、移動元検知サーバ(src)が担当するイベントの分散キー値(x)に対する全パターン名から、ランダムにパターン名(y)を一つ選択し、パターン名(y)とイベント種別と分散キー値(x)との組み合わせをzとする(S20)。
移動管理部37は、S19またはS20の処理後、移動後条件判定処理(Tproc,src,dst,z)を実行する(S21)。入力パラメータとして、Tproc(=係数k2×入力頻度n×選択したパターン数)、移動元検知サーバ(src)、移動先サーバ候補(dst)、パターン名(y)とイベント種別と分散キー値(x)との組み合わせzが入力される。S21の処理の詳細は、図13で説明する。
S21の移動後条件判定処理の返り値が「真」の場合(第1条件を満たすと判定された場合)(S22で「Yes」)、移動管理部37は、次の処理を行う。すなわち、移動管理部37は、選択したパターン(y)とイベント種別と分散キー値(x)との組み合わせzについての処理(負荷)を移動先サーバ候補(dst)に移動するように、移動元検知サーバ(src)に移動指示を行う(S23)。
このとき、S19で選択されたパターン名が移動先検知サーバ(dst)に既に存在する場合、移動管理部37は、移動指示にそのパターン名に対応する実データを送信する指示を含めない。一方、S10で選択されたパターンが移動先検知サーバ(dst)に存在しない場合、移動管理部37は、移動指示にそのパターン名に対応する実データを送信する指示を含める。
移動元検知サーバ(src)の仲介部43は、管理サーバ36から移動指示を受信すると、その移動指示に基づいて、移動対象となるイベントの分散キー値(x)に対するパターン名を移動先検知サーバ(dst)へ送信する。その移動指示に移動対象となるパターン名に対応する実データも移動させるように指示がある場合には、仲介部43は、パターンの実データも送信する。
イベント種別と分散キー値(x)とパターンとの組み合わせの移動後、移動元検知サーバ(src)、移動先検知サーバ(dst)はそれぞれ、負荷テーブル45を更新する。その結果、移動対象の負荷が移動元検知サーバ(src)から移動先検知サーバ(dst)に移動している。したがって、移動させたイベント種別と分散キー値とパターンとの組み合わせによる処理は、移動元検知サーバ(src)では実行されず、移動先検知サーバ(dst)で実行されることになる。また、移動元検知サーバ(src)、移動先検知サーバ(dst)はそれぞれ、更新した負荷テーブル45に基づいて、負荷情報(sum(Tcomm)、sum(Tproc))を管理サーバ36に通知する。
移動管理部37は、移動元検知サーバ(src)及び移動先検知サーバ(dst)から受信した負荷情報(sum(Tcomm)、sum(Tproc))に基づいて、全体負荷テーブル38を更新する。S23の処理後、S17の処理へ進む。
S22の移動後条件判定処理の返り値が「偽」の場合(第1条件を満たさないと判定された場合)(S22で「No」)、移動管理部37は、方式4の処理へ進む(S24)。
図13は、本実施形態における移動後条件判定処理のフローを示す。移動後条件判定処理は、移動元検知サーバ(src)から移動先サーバ候補(dst)へ、選択したイベントの分散キー値(x)に対応するパターンマッチング処理(負荷)を移動させたと仮定した場合に、負荷値が第i条件(i=1,2)を満たすかを判定する処理である。ここで、負荷値とは、第一条件を満たすか否かを判定する場合にはTprocの値であり、第二条件を満たすか否かを判定する場合にはTcommの値である。
入力パラメータとして、TprocまたはTcommと、移動元検知サーバ(src)と、移動先サーバ候補(dst)と、イベント種別と、分散キー値(x)または組み合わせ(z)とが入力される。
移動管理部37は、移動元検知サーバ(src)から移動先サーバ候補(dst)へ負荷を移動したと仮定した場合、移動元検知サーバ(src)で負荷値が下限閾値を下回らない、かつdstで負荷値が上限閾値を上回らないかを判定する(S31)。ここで、入力パラメータとして、xが指定されている場合、負荷はイベントの分散キー値(x)に対応する全てのパターン”となる。一方、zが指定されている場合、負荷はイベントの分散キー値(x)に対応するパターンのうちの一つのパターン(y)”となる。
移動元検知サーバ(src)で負荷値が下限閾値を下回らない、かつdstで負荷値が上限閾値を上回らないと判定した場合(第i条件を満たす、S31で「Yes」)、移動管理部37は、返り値として、「真」を呼び出し元の処理へ返す(S32)。一方、移動元検知サーバ(src)で負荷値が下限閾値を下回る、またdstで負荷値が上限閾値を上回ると判定した場合(第i条件を満たさない、S31で「No」)、移動管理部37は、返り値として、「偽」を呼び出し元の処理へ返す(S33)。
図14は、本実施形態における管理サーバの移動管理部による方式2を用いた負荷移動処理のフローを示す。図14のフローは、図8のS6の処理の詳細である。
移動管理部37は、全体負荷テーブル38を参照し、sum(Tcomm)の上限閾値を上回った検知サーバ、または最もsum(Tcomm)の高い検知サーバを移動元検知サーバ(src)として選択する(S41)。移動管理部37は、選択した移動元検知サーバ(src)に対して、負荷テーブル45の内容を送るように要求し、その応答にて得られた詳細負荷情報を詳細負荷テーブル39に格納する。
移動管理部37は、詳細負荷テーブル39を参照し、移動元検知サーバ(src)のイベントの分散キー値の中で最もTcommが高い分散キー値(x)を選択する(S42)。
移動管理部37は、全体負荷テーブル38を参照し、最もsum(Tcomm)の低い検知サーバを移動先サーバ候補(dst)として選択する(S43)。移動管理部37は、選択した移動先サーバ候補(dst)に対して、負荷テーブル45の内容を送るように要求し、その応答にて得られた詳細負荷情報を詳細負荷テーブル39に格納する。
移動管理部37は、移動元検知サーバ(src)から移動先サーバ候補(dst)へ、イベントの分散キー値(x)に対応するパターンマッチング処理(負荷)を移動させたと仮定した場合に第二条件を満たすかを判定する移動後条件判定処理を実行する(S44)。
S44の移動後条件判定処理への入力パラメータとして、Tcomm(=係数k1×入力頻度n)、移動元検知サーバ(src)、移動先サーバ候補(dst)、イベント種別、分散キー値(x)が入力される。S44の処理の詳細は、図13で説明した通りである。
S44の移動後条件判定処理の返り値が「真」の場合(第二条件を満たすと判定された場合)(S45で「Yes」)、移動管理部37は、次の処理を行う。すなわち、移動管理部37は、移動元検知サーバ(src)が担当するイベントの分散キー値(x)に対応する全パターンの処理を移動先サーバ候補(dst)に移動するように、移動元検知サーバ(src)に移動指示を行う(S46)。
このとき、移動管理部37は、詳細負荷テーブル39に格納された移動先検知サーバ(dst)の詳細負荷情報のパターンリストを参照して、移動対象となるイベントの分散キー値(x)に対応する各パターン名がそのパターンリストに含まれるかを判定する。
移動対象となるイベントの分散キー値(x)に対応する全パターン名が移動先検知サーバ(dst)のパターンリストに含まれている場合、移動管理部37は、移動指示にそのパターン名に対応する実データを送信する指示を含めない。
一方、移動対象となるイベントの分散キー値(x)に対応するパターン名のうち移動先検知サーバ(dst)のパターンリストに含まれていないパターン名がある場合、移動管理部37は、移動指示にそのパターン名に対応する実データを送信する指示を含める。
移動元検知サーバ(src)の仲介部43は、管理サーバ36から移動指示を受信すると、その移動指示に基づいて、移動対象となるイベントの分散キー値(x)に対応する全パターン名を移動先検知サーバ(dst)へ送信する。その移動指示に移動対象となるパターン名に対応する実データも移動させるように指示がある場合には、仲介部43は、パターンの実データも送信する。
イベントの分散キー値(x)とパターンとの組み合わせの移動後、移動元検知サーバ(src)、移動先検知サーバ(dst)はそれぞれ、負荷テーブル45を更新する。その結果、移動対象の負荷が移動元検知サーバ(src)から移動先検知サーバ(dst)に移動している。したがって、移動させたイベント種別と分散キー値とパターンとの組み合わせによる処理は、移動元検知サーバ(src)では実行されず、移動先検知サーバ(dst)で実行されることになる。また、移動元検知サーバ(src)、移動先検知サーバ(dst)はそれぞれ、更新した負荷テーブル45に基づいて、負荷情報(sum(Tcomm)、sum(Tproc))を管理サーバ36に通知する。
移動管理部37は、移動元検知サーバ(src)及び移動先検知サーバ(dst)から受信した負荷情報(sum(Tcomm)、sum(Tproc))に基づいて、全体負荷テーブル38を更新する。
移動管理部37は、移動元検知サーバ(src)、移動先検知サーバ(dst)共に、第一条件及び第二条件を満たすかを判定する(S47)。すなわち、移動管理部37は、全体負荷テーブル38を参照し、移動元検知サーバ(src)、移動先検知サーバ(dst)共に、(sum(Tproc))が下限閾値〜上限閾値で、かつsum(Tcomm)が下限閾値〜上限閾値であるかを判定する。
移動元検知サーバ(src)、移動先検知サーバ(dst)共に、第一条件及び第二条件を満たしていない場合(S47で「No」)、S32へ戻る。移動元検知サーバ(src)、移動先検知サーバ(dst)共に、第一条件及び第二条件を満たす場合(S47で「Yes」)、本フローは終了する。
移動後条件判定処理の返り値が「偽」の場合(第二条件を満たさないと判定された場合)(S45で「No」)、移動管理部37は、方式4の処理へ進む(S48)。
図15は、本実施形態における管理サーバの移動管理部による方式3を用いた負荷移動処理のフローを示す。図15のフローは、図8のS9の処理の詳細である。
図15では、Tproc及びTcommを総称して負荷値という。図15では、説明の都合上、負荷値がTprocの場合について説明するが、負荷値としてTcommを用いても良い。
移動管理部37は、全検知サーバに対して、負荷テーブル45の内容を送るように要求し、その応答にて得られた詳細負荷情報を詳細負荷テーブル39に格納する。移動管理部37は、詳細負荷テーブル39を参照し、全検知サーバの中で、最もTprocの低いイベントの分散キー値(x)を持つ検知サーバを移動元検知サーバ(src)として選択する(S51)。
移動管理部37は、全体負荷テーブル38と詳細負荷テーブル39を参照し、イベントの分散キー値(x)を所持する検知サーバの中で、移動元検知サーバ(src)を除く最もsum(Tproc)の低い検知サーバを移動先サーバ(dst)として選択する(S52)。
移動管理部37は、移動元検知サーバ(src)から移動先サーバ候補(dst)へ、イベントの分散キー値(x)に対応するパターンマッチング処理(負荷)を移動させたと仮定した場合に第i条件を満たすかを判定する移動後条件判定処理を実行する(S53)。ここで、負荷値がTprocの場合i=1であり、負荷値がTcommの場合i=2である。
負荷値がTprocの場合、S53の移動後条件判定処理への入力パラメータとして、Tproc(=係数k2×入力頻度n×イベントの分散キー値(x)に対応するパターン数)、移動元検知サーバ(src)、移動先サーバ候補(dst)、イベント種別、分散キー値(x)が入力される。負荷値がTcommの場合、S53の移動後条件判定処理への入力パラメータとして、Tcomm(=係数k1×入力頻度n)、移動元検知サーバ(src)、移動先サーバ候補(dst)、イベント種別、分散キー値(x)が入力される。S53の処理の詳細は、図13で説明した通りである。
S53の移動後条件判定処理の返り値が「真」の場合(第i条件を満たすと判定された場合)(S54で「Yes」)、移動管理部37は、次の処理を行う。すなわち、移動管理部37は、移動元検知サーバ(src)が担当するイベントの分散キー値(x)に対応する全パターンの処理を移動先サーバ候補(dst)に移動するように、移動元検知サーバ(src)に移動指示を行う(S55)。
このとき、移動管理部37は、詳細負荷テーブル39に格納された移動先検知サーバ(dst)の詳細負荷情報のパターンリストを参照して、移動対象となるイベントの分散キー値(x)に対応する各パターン名がそのパターンリストに含まれるかを判定する。
移動対象となるイベントの分散キー値(x)に対応する全パターン名が移動先検知サーバ(dst)のパターンリストに含まれている場合、移動管理部37は、移動指示にそのパターン名を送信する旨を含め、そのパターン名に対応する実データを送信する旨を含めない。
一方、移動対象となるイベントの分散キー値(x)に対応するパターン名のうち移動先検知サーバ(dst)のパターンリストに含まれていないパターン名がある場合、移動管理部37は、次の処理を行う。すなわち、移動管理部37は、移動指示にそのパターン名と、そのパターン名に対応する実データを送信する旨を含める。
移動元検知サーバ(src)の仲介部43は、管理サーバ36から移動指示を受信すると、その移動指示に基づいて、移動対象となるイベントの分散キー値(x)に対応する全パターン名を移動先検知サーバ(dst)へ送信する。その移動指示に移動対象となるパターン名に対応する実データも移動させるように指示がある場合には、仲介部43は、パターンの実データも送信する。
イベント種別と分散キー値(x)とパターンとの組み合わせの移動後、移動元検知サーバ(src)、移動先検知サーバ(dst)はそれぞれ、負荷テーブル45を更新する。その結果、移動対象の負荷が移動元検知サーバ(src)から移動先検知サーバ(dst)に移動している。したがって、移動させたイベント種別と分散キー値とパターンとの組み合わせによる処理は、移動元検知サーバ(src)では実行されず、移動先検知サーバ(dst)で実行されることになる。また、移動元検知サーバ(src)、移動先検知サーバ(dst)はそれぞれ、更新した負荷テーブル45に基づいて、負荷情報(sum(Tcomm)、sum(Tproc))を管理サーバ36に通知する。
移動管理部37は、移動元検知サーバ(src)及び移動先検知サーバ(dst)から受信した負荷情報(sum(Tcomm)、sum(Tproc))に基づいて、全体負荷テーブル38を更新する。
移動管理部37は、システムが第三条件を満たすかを判定する(S56)。すなわち、移動管理部37は、全体負荷テーブル38を参照し、sum(Tcomm)の全サーバの合計(total(sum(Tcomm))が上限閾値以下であるかを判定する。
sum(Tcomm)の全サーバの合計(total(sum(Tcomm))が上限閾値を上回る場合(第三条件を満たさない場合)(S56で「No」)、S51へ戻る。sum(Tcomm)の全サーバの合計(total(sum(Tcomm))が上限閾値以下である場合(第三条件を満たす場合)(S56で「Yes」)、本フローは終了する。
S53の移動後条件判定処理の返り値が「偽」の場合(第i条件を満たさないと判定された場合)(S54で「No」)、移動管理部37は、方式4の処理へ進む(S57)。
図16は、本実施形態における管理サーバの移動管理部による方式4を用いた負荷移動処理のフローを示す。図16のフローは、図8のS10の処理の詳細である。
移動管理部37は、全検知サーバ(src)に対して、負荷テーブル45の内容を送るように要求し、その応答にて得られた詳細負荷情報を詳細負荷テーブル39に格納する。移動管理部37は、いずれかの検知サーバが第一条件または第二条件における下限閾値を下回った状態か否かを判定する(S61)。いずれかの検知サーバが第一条件または第二条件における下限閾値を下回った状態でないと判定した場合(S61で「No」)、移動管理部37は、検知サーバを1台追加するように、システム管理者に電子メール等で通知する(S72)
いずれかの検知サーバが第一条件または第二条件における下限閾値を下回った状態であると判定した場合(S61で「Yes」)、移動管理部37は、全体負荷テーブル38を参照し、下限閾値を下回った検知サーバを移動元検知サーバ(src)として選択する(S62)。
移動管理部37は、詳細負荷テーブル39を参照し、移動元検知サーバ(src)を除く最もTprocの低い検知サーバを移動先検知サーバ(dst)として選択する(S63)。
移動管理部37は、移動元検知サーバ(src)が担当するイベントの分散キー値(x)を一つ選択する(S64)。
移動管理部37は、移動元検知サーバ(src)から移動先サーバ候補(dst)へ、イベントの分散キー値(x)に対応するパターンマッチング処理(負荷)を移動させたと仮定した場合に第1条件を満たすかを判定する移動後条件判定処理を実行する(S65)。
S65の移動後条件判定処理への入力パラメータとして、Tcomm(=係数k1×入力頻度n)、移動元検知サーバ(src)、移動先サーバ候補(dst)、イベント種別、分散キー値(x)が入力される。S65の処理の詳細は、図13で説明した通りである。
S65の移動後条件判定処理の返り値が「真」の場合(第1条件を満たすと判定された場合)(S66で「Yes」)、移動管理部37は、次の処理を行う。すなわち、移動管理部37は、移動元検知サーバ(src)が担当するイベントの分散キー値(x)に対応する全パターンの処理を移動先サーバ候補(dst)に移動するように、移動元検知サーバ(src)に移動指示を行う(S67)。
このとき、移動管理部37は、詳細負荷テーブル39に格納された移動先検知サーバ(dst)の詳細負荷情報39のパターンリストを参照して、移動対象となるイベントの分散キー値(x)に対応する各パターン名がそのパターンリストに含まれるかを判定する。
移動対象となるイベントの分散キー値(x)に対応する全パターン名が移動先検知サーバ(dst)のパターンリストに含まれている場合、移動管理部37は、次を行う。すなわち。移動管理部37は、移動指示にそのパターン名を送信する旨を含め、そのパターン名に対応する実データを送信する指示を含めない。
一方、移動対象となるイベントの分散キー値(x)に対応するパターン名のうち移動先検知サーバ(dst)のパターンリストに含まれていないパターン名がある場合、移動管理部37は、次の処理を行う。すなわち、移動管理部37は、移動指示にそのパターン名と、そのパターン名に対応する実データを送信する指示を含める。
移動元検知サーバ(src)の仲介部43は、管理サーバ36から移動指示を受信すると、その移動指示に基づいて、移動対象となるイベントの分散キー値(x)に対応する全パターン名を移動先検知サーバ(dst)へ送信する。その移動指示に移動対象となるパターン名に対応する実データも移動させるように指示がある場合には、仲介部43は、パターンの実データも送信する。
イベント種別と分散キー値(x)とパターンとの組み合わせの移動後、移動元検知サーバ(src)、移動先検知サーバ(dst)はそれぞれ、負荷テーブル45を更新する。その結果、移動対象の負荷が移動元検知サーバ(src)から移動先検知サーバ(dst)に移動している。したがって、移動させたイベント種別と分散キー値とパターンとの組み合わせによる処理は、移動元検知サーバ(src)では実行されず、移動先検知サーバ(dst)で実行されることになる。また、移動元検知サーバ(src)、移動先検知サーバ(dst)はそれぞれ、更新した負荷テーブル45に基づいて、負荷情報(sum(Tcomm)、sum(Tproc))を管理サーバ36に通知する。
移動管理部37は、移動元検知サーバ(src)及び移動先検知サーバ(dst)から受信した負荷情報(sum(Tcomm)、sum(Tproc))に基づいて、全体負荷テーブル38を更新する。
S65の移動後条件判定処理の返り値が「偽」の場合(第1条件を満たさないと判定された場合)(S66で「No」)、移動管理部37は、次の処理を行う。すなわち、移動管理部37は、移動元検知サーバ(src)が担当するイベント種別の全パターンから、ランダムにパターン(y)を一つ選択し、パターン(y)とイベント種別と分散キー値(x)との組み合わせをzとする(S69)。
移動管理部37は、選択したパターン(y)とイベント種別と分散キー値(x)との組み合わせzについての処理(負荷)を移動先サーバ候補(dst)に移動するように、移動元検知サーバ(src)に移動指示を行う(S70)。
このとき、S69において、移動先検知サーバ(dst)に、選択されたパターン名が既に存在する場合、移動管理部37は、移動指示にそのパターン名に対応する実データを送信する指示を含めない。一方、S50において、選択されたパターンが移動先検知サーバ(dst)に、存在しない場合、移動管理部37は、移動指示にそのパターン名に対応する実データを送信する指示を含める。
移動元検知サーバ(src)の仲介部43は、管理サーバ36から移動指示を受信すると、その移動指示に基づいて、移動対象となるイベントの分散キー値(x)に対するパターン名を移動先検知サーバ(dst)へ送信する。その移動指示に移動対象となるパターン名に対応する実データも移動させるように指示がある場合には、仲介部43は、パターンの実データも送信する。
イベント種別と分散キー値(x)とパターンとの組み合わせの移動後、移動元検知サーバ(src)、移動先検知サーバ(dst)はそれぞれ、負荷テーブル45を更新する。その結果、移動対象の負荷が移動元検知サーバ(src)から移動先検知サーバ(dst)に移動している。したがって、移動させたイベント種別と分散キー値とパターンとの組み合わせによる処理は、移動元検知サーバ(src)では実行されず、移動先検知サーバ(dst)で実行されることになる。また、移動元検知サーバ(src)、移動先検知サーバ(dst)はそれぞれ、更新した負荷テーブル45に基づいて、負荷情報(sum(Tcomm)、sum(Tproc))を管理サーバ36に通知する。
移動管理部37は、移動元検知サーバ(src)及び移動先検知サーバ(dst)から受信した負荷情報(sum(Tcomm)、sum(Tproc))に基づいて、全体負荷テーブル38を更新する。
S67またはS70の処理後、移動管理部37は、全体負荷テーブル38または詳細負荷テーブル39を参照し、移動元検知サーバ(src)が処理を持っているかを判定する(S68)
移動元検知サーバ(src)が処理を持っている場合(S68で「Yes」)、S63へ戻る。移動元検知サーバ(src)が処理を持っていない場合(S68で「No」)、移動管理部37は、移動元検知サーバ(src)をシステムから削除するように、システム管理者に電子メール等で通知する(S71)。
図17は、本実施形態におけるプログラムを実行するコンピュータのハードウェア環境の構成ブロック図の一例である。コンピュータ50は、学習サーバ31、転送サーバ33、管理サーバ36、または検知サーバ41として機能する。コンピュータ50は、CPU52、ROM53、RAM56、通信I/F54、記憶装置57、出力I/F51、入力I/F55、読み取り装置58、バス89、出力機器61、入力機器62によって構成されている。
ここで、CPUは、中央演算装置を示す。ROMは、リードオンリメモリを示す。RAMは、ランダムアクセスメモリを示す。I/Fは、インターフェースを示す。バス59には、CPU52、ROM53、RAM56、通信I/F54、記憶装置57、出力I/F51、入力I/F55、及び読み取り装置58が接続されている。読み取り装置58は、可搬型記録媒体を読み出す装置である。出力機器61は、出力I/F51に接続されている。入力機器62は、入力I/F55に接続にされている。
記憶装置57としては、ハードディスク、フラッシュメモリ、磁気ディスクなど様々な形式の記憶装置を使用することができる。記憶装置57またはROM53には、CPU52を抽出部32、転送部34、移動管理部37、または、検知部42及び仲介部43として機能させるプログラムが格納されている。また、記憶装置57またはROM53には、コンピュータ50が転送サーバ33の場合にはルーティングテーブル35が格納されている。記憶装置57またはROM53には、コンピュータ50が管理サーバ36の場合には全体負荷テーブル38、詳細負荷テーブル39、閾値情報テーブル40が格納されている。記憶装置57またはROM53には、コンピュータ50が検知サーバ41の場合にはパターンテーブル44、負荷テーブル45が格納されている。RAM56には、情報が一時的に記憶される。
CPU52は、本実施形態に係るプログラムを読み出し、当該プログラムを実行する。
上記実施形態で説明した処理を実現するプログラムは、プログラム提供者側から通信ネットワーク60、および通信I/F54を介して、例えば記憶装置57に格納されてもよい。また、上記実施形態で説明した処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置58にセットされて、CPU52によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスク、ICカード、USBメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読み取り装置58によって読み取られる。
また、入力機器62には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレットなどを用いることが可能である。また、出力機器61には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク60は、インターネット、LAN、WAN、専用線、有線、無線等の通信網であってよい。
上記実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータに、
入力されたデータを該データに付与された識別情報により振り分ける転送装置によって振り分けられた該データについてのパターンの検知処理を該識別情報毎に行う複数のサーバ装置のそれぞれから、該検知処理に関する負荷値を該識別情報単位で取得し、
前記複数のサーバ装置のうち第1サーバ装置より取得した前記負荷値が所定の許容範囲を超えた場合、該第1サーバ装置から前記複数のサーバ装置のうち第2サーバ装置へ、前記識別情報と該識別情報に対応する一パターンとの組み合わせを、該第1サーバ装置と該第2サーバ装置との該負荷値がそれぞれ該許容範囲内であるか否かに応じて、組単位で移動させる
処理を実行させることを特徴とする分散処理プログラム。
(付記2)
前記移動させる場合において、前記第1サーバ装置より取得した該第1サーバ装置の検知負荷の負荷値が第1許容範囲を超えた場合であって、該第1サーバ装置から前記第2サーバ装置へ、一または複数組の前記組み合わせを移動させて該第1サーバ装置と該第2サーバ装置との該検知負荷の負荷値がそれぞれ該第1許容範囲内に収まる場合、該第2サーバ装置へ該一または複数組の組み合わせを移動する旨を該第1サーバ装置に指示する
ことを特徴とする付記1に記載の分散処理プログラム。
(付記3)
前記移動させる場合において、さらに、前記第1サーバ装置より取得した該第1サーバ装置の通信負荷の負荷値が第2許容範囲を超えた場合であって、該第1サーバ装置から前記第2サーバ装置へ、該第1サーバ装置が処理する前記識別情報に対応する全パターンを移動させて該第1サーバ装置と該第2サーバ装置との該通信負荷の負荷値がそれぞれ該第2許容範囲内に収まる場合、該第2サーバ装置へ該識別情報と該識別情報に対応する全パターンを移動する旨を該第1サーバ装置に指示する
ことを特徴とする付記1または2に記載の分散処理プログラム。
(付記4)
前記移動させる場合において、さらに、前記複数のサーバ装置のそれぞれより取得したそれぞれのサーバ装置の負荷値の合計が第3許容範囲を超えた場合であって、前記検知処理に係る負荷が最も小さい該検知処理を行う前記第1サーバ装置の該負荷が最も小さい該検知処理で用いる検知対象の前記パターンを前記第2サーバ装置へ移動させて該第1サーバ装置と該第2サーバ装置との該検知負荷の負荷値がそれぞれ第1許容範囲内に収まる場合、該第2サーバ装置へ該一または複数組の組み合わせを移動する旨を該第1サーバ装置に指示する
ことを特徴とする付記1〜3のうちいずれか1項に記載の分散処理プログラム。
(付記5)
前記移動させる場合において、移動対象の組に含まれるパターンのうち、前記第2サーバ装置が有しているパターンについて、該パターンの実データを移動させずに該パターンの識別情報を移動させ、移動対象の組に含まれるパターンのうち、前記第2サーバ装置が有していないパターンについて、該パターンの実データ及び該パターンの識別情報を移動させる
ことを特徴とする付記1〜4のうちいずれか1項に記載の分散処理プログラム。
(付記6)
前記移動させる場合において、さらに、前記一または複数組の組み合わせを前記第2サーバ装置へ移動させて前記第1サーバ装置と前記第2サーバ装置との前記負荷値が前記許容範囲を超える場合、前記サーバ装置の追加または削減を通知する
ことを特徴とする付記2〜4のうちいずれか1項に記載の分散処理プログラム。
(付記7)
入力されたデータを該データに付与された識別情報により振り分ける転送装置によって振り分けられた該データについてのパターンの検知処理を該識別情報毎に行う複数のサーバ装置のそれぞれから、該検知処理に関する負荷値を該識別情報単位で取得する取得部と、
前記複数のサーバ装置のうち第1サーバ装置より取得した前記負荷値が所定の許容範囲を超えた場合、該第1サーバ装置から前記複数のサーバ装置のうち第2サーバ装置へ、前記識別情報と該識別情報に対応する一パターンとの組み合わせを、該第1サーバ装置と該第2サーバ装置との該負荷値がそれぞれ該許容範囲内であるか否かに応じて、組単位で移動させる移動制御部と、
を備えることを特徴とする分散処理管理装置。
(付記8)
前記移動制御部は、前記第1サーバ装置より取得した該第1サーバ装置の検知負荷の負荷値が第1許容範囲を超えた場合であって、該第1サーバ装置から前記第2サーバ装置へ、一または複数組の前記組み合わせを移動させて該第1サーバ装置と該第2サーバ装置との該検知負荷の負荷値がそれぞれ該第1許容範囲内に収まる場合、該第2サーバ装置へ該一または複数組の組み合わせを移動する旨を該第1サーバ装置に指示する
ことを特徴とする付記7に記載の分散処理管理装置。
(付記9)
前記移動制御部は、さらに、前記第1サーバ装置より取得した該第1サーバ装置の通信負荷の負荷値が第2許容範囲を超えた場合であって、該第1サーバ装置から前記第2サーバ装置へ、該第1サーバ装置が処理する前記識別情報に対応する全パターンを移動させて該第1サーバ装置と該第2サーバ装置との該通信負荷の負荷値がそれぞれ該第2許容範囲内に収まる場合、該第2サーバ装置へ該識別情報と該識別情報に対応する全パターンを移動する旨を該第1サーバ装置に指示する
ことを特徴とする付記7または8に記載の分散処理管理装置。
(付記10)
前記移動制御部は、さらに、前記複数のサーバ装置のそれぞれより取得したそれぞれのサーバ装置の負荷値の合計が第3許容範囲を超えた場合であって、前記検知処理に係る負荷が最も小さい該検知処理を行う前記第1サーバ装置の該負荷が最も小さい該検知処理で用いる検知対象の前記パターンを前記第2サーバ装置へ移動させて該第1サーバ装置と該第2サーバ装置との該検知負荷の負荷値がそれぞれ第1許容範囲内に収まる場合、該第2サーバ装置へ該一または複数組の組み合わせを移動する旨を該第1サーバ装置に指示する、
ことを特徴とする付記7〜9のうちいずれか1項に記載の分散処理管理装置。
(付記11)
前記移動制御部は、移動対象の組に含まれるパターンのうち、前記第2サーバ装置が有しているパターンについて、該パターンの実データを移動させずに該パターンの識別情報を移動させ、移動対象の組に含まれるパターンのうち、前記第2サーバ装置が有していないパターンについて、該パターンの実データ及び該パターンの識別情報を移動させる
ことを特徴とする付記7〜10のうちいずれか1項に記載の分散処理管理装置。
(付記12)
前記移動制御部は、さらに、前記一または複数組の組み合わせを前記第2サーバ装置へ移動させて前記第1サーバ装置と前記第2サーバ装置との前記負荷値が前記許容範囲を超える場合、前記サーバ装置の追加または削減を通知する
ことを特徴とする付記7〜10のうちいずれか1項に記載の分散処理管理装置。
(付記13)
コンピュータが、
入力されたデータを該データに付与された識別情報により振り分ける転送装置によって振り分けられた該データについてのパターンの検知処理を該識別情報毎に行う複数のサーバ装置のそれぞれから、該検知処理に関する負荷値を該識別情報単位で取得し、
前記複数のサーバ装置のうち第1サーバ装置より取得した前記負荷値が所定の許容範囲を超えた場合、該第1サーバ装置から前記複数のサーバ装置のうち第2サーバ装置へ、前記識別情報と該識別情報に対応する一パターンとの組み合わせを、該第1サーバ装置と該第2サーバ装置との該負荷値がそれぞれ該許容範囲内であるか否かに応じて、組単位で移動させる
処理を実行することを特徴とする分散処理方法。
(付記14)
前記移動させる場合において、前記第1サーバ装置より取得した該第1サーバ装置の検知負荷の負荷値が第1許容範囲を超えた場合であって、該第1サーバ装置から前記第2サーバ装置へ、一または複数組の前記組み合わせを移動させて該第1サーバ装置と該第2サーバ装置との該検知負荷の負荷値がそれぞれ該第1許容範囲内に収まる場合、前記コンピュータは、該第2サーバ装置へ該一または複数組の組み合わせを移動する旨を該第1サーバ装置に指示する
ことを特徴とする付記13に記載の分散処理方法。
(付記15)
前記移動させる場合において、さらに、前記第1サーバ装置より取得した該第1サーバ装置の通信負荷の負荷値が第2許容範囲を超えた場合であって、該第1サーバ装置から前記第2サーバ装置へ、該第1サーバ装置が処理する前記識別情報に対応する全パターンを移動させて該第1サーバ装置と該第2サーバ装置との該通信負荷の負荷値がそれぞれ該第2許容範囲内に収まる場合、該第2サーバ装置へ該識別情報と該識別情報に対応する全パターンを移動する旨を該第1サーバ装置に指示する
ことを特徴とする付記13または14に記載の分散処理方法。
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
11 分散処理管理装置
12 取得部
13 移動制御部
31 学習サーバ
32 抽出部
33 転送サーバ
34 転送部
35 ルーティングテーブル
36 管理サーバ
37 移動管理部
38 全体負荷テーブル
39 詳細負荷テーブル
40 閾値情報テーブル
41(41a,41b,・・・) 複数の検知サーバ
42 検知部
43 仲介部
44 パターンテーブル
45 負荷テーブル

Claims (5)

  1. コンピュータに、
    入力されたデータを該データに付与された識別情報により振り分ける転送装置によって振り分けられた該データについて、該識別情報に対応付けられたパターン集合に含まれるパターンの検知処理を該識別情報毎に行う複数のサーバ装置のそれぞれから、該検知処理に関する負荷値を該識別情報単位で取得し、
    前記複数のサーバ装置のうち第1サーバ装置より取得した前記負荷値が所定の許容範囲を超えた場合、該第1サーバ装置から前記複数のサーバ装置のうち第2サーバ装置へ、前記識別情報と単一の該識別情報に対応付けられた前記パターン集合から切り出した一部のパターンとの組み合わせを、該第1サーバ装置と該第2サーバ装置との該負荷値がそれぞれ該許容範囲内であるか否かに応じて、前記み合わせ単位で移動させる
    処理を実行させることを特徴とする分散処理プログラム。
  2. 前記移動させる場合において、前記第1サーバ装置より取得した該第1サーバ装置の前記検知処理に関する負荷値のうちの検知負荷の負荷値が第1許容範囲を超えた場合であって、該第1サーバ装置から前記第2サーバ装置へ、前記組み合わせ単位を移動させて該第1サーバ装置と該第2サーバ装置との該検知負荷の負荷値がそれぞれ該第1許容範囲内に収まる場合、該第2サーバ装置へ該組み合わせ単位を移動する旨を該第1サーバ装置に指示する
    ことを特徴とする請求項1に記載の分散処理プログラム。
  3. 前記移動を行っても前記第1サーバ装置と前記第2サーバ装置の少なくとも1つで、
    前記検知処理に関する負荷値のうちの検知負荷の負荷値が前記第1許容範囲を超えた場合か、
    前記検知処理に関する負荷値のうちの通信負荷の負荷値が第2許容範囲を超えた場合か、または、
    前記複数のサーバ装置のそれぞれより取得したそれぞれのサーバ装置の通信負荷の合計が第3許容範囲を超えた場合、
    前記サーバ装置の追加を通知する
    ことを特徴とする請求項2に記載の分散処理プログラム。
  4. 入力されたデータを該データに付与された識別情報により振り分ける転送装置によって振り分けられた該データについて、該識別情報に対応付けられたパターン集合に含まれるパターンの検知処理を該識別情報毎に行う複数のサーバ装置のそれぞれから、該検知処理に関する負荷値を該識別情報単位で取得する取得部と、
    前記複数のサーバ装置のうち第1サーバ装置より取得した前記負荷値が所定の許容範囲を超えた場合、該第1サーバ装置から前記複数のサーバ装置のうち第2サーバ装置へ、前記識別情報と単一の該識別情報に対応付けられた前記パターン集合から切り出した一部のパターンとの組み合わせを、該第1サーバ装置と該第2サーバ装置との該負荷値がそれぞれ該許容範囲内であるか否かに応じて、前記み合わせ単位で移動させる移動制御部と、
    を備えることを特徴とする分散処理管理装置。
  5. コンピュータが、
    入力されたデータを該データに付与された識別情報により振り分ける転送装置によって振り分けられた該データについて、該識別情報に対応付けられたパターン集合に含まれるパターンの検知処理を該識別情報毎に行う複数のサーバ装置のそれぞれから、該検知処理に関する負荷値を該識別情報単位で取得し、
    前記複数のサーバ装置のうち第1サーバ装置より取得した前記負荷値が所定の許容範囲を超えた場合、該第1サーバ装置から前記複数のサーバ装置のうち第2サーバ装置へ、前記識別情報と単一の該識別情報に対応付けられた前記パターン集合から切り出した一部のパターンとの組み合わせを、該第1サーバ装置と該第2サーバ装置との該負荷値がそれぞれ該許容範囲内であるか否かに応じて、前記み合わせ単位で移動させる
    処理を実行することを特徴とする分散処理方法。
JP2014146170A 2014-07-16 2014-07-16 分散処理プログラム、分散処理管理装置及び分散処理方法 Expired - Fee Related JP6428012B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014146170A JP6428012B2 (ja) 2014-07-16 2014-07-16 分散処理プログラム、分散処理管理装置及び分散処理方法
US14/735,218 US20160021177A1 (en) 2014-07-16 2015-06-10 Recording medium storing distribution processing program, distribution processing management apparatus and distribution processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014146170A JP6428012B2 (ja) 2014-07-16 2014-07-16 分散処理プログラム、分散処理管理装置及び分散処理方法

Publications (2)

Publication Number Publication Date
JP2016024500A JP2016024500A (ja) 2016-02-08
JP6428012B2 true JP6428012B2 (ja) 2018-11-28

Family

ID=55075586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014146170A Expired - Fee Related JP6428012B2 (ja) 2014-07-16 2014-07-16 分散処理プログラム、分散処理管理装置及び分散処理方法

Country Status (2)

Country Link
US (1) US20160021177A1 (ja)
JP (1) JP6428012B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190129763A1 (en) * 2016-03-28 2019-05-02 Hitachi, Ltd. Processing system and processing method
US10936374B2 (en) 2018-05-17 2021-03-02 International Business Machines Corporation Optimizing dynamic resource allocations for memory-dependent workloads in disaggregated data centers
US10893096B2 (en) 2018-05-17 2021-01-12 International Business Machines Corporation Optimizing dynamical resource allocations using a data heat map in disaggregated data centers
US10841367B2 (en) 2018-05-17 2020-11-17 International Business Machines Corporation Optimizing dynamical resource allocations for cache-dependent workloads in disaggregated data centers
US11221886B2 (en) 2018-05-17 2022-01-11 International Business Machines Corporation Optimizing dynamical resource allocations for cache-friendly workloads in disaggregated data centers
US10977085B2 (en) 2018-05-17 2021-04-13 International Business Machines Corporation Optimizing dynamical resource allocations in disaggregated data centers
US10601903B2 (en) 2018-05-17 2020-03-24 International Business Machines Corporation Optimizing dynamical resource allocations based on locality of resources in disaggregated data centers
US11330042B2 (en) 2018-05-17 2022-05-10 International Business Machines Corporation Optimizing dynamic resource allocations for storage-dependent workloads in disaggregated data centers
CN110635902B (zh) * 2019-09-12 2020-10-30 太原理工大学 一种基于色散键控同步的混沌密钥分发系统及方法
US11895181B2 (en) * 2020-12-04 2024-02-06 Schneider Electric It Corporation Power optimization of microserver loads

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005004676A (ja) * 2003-06-16 2005-01-06 Fujitsu Ltd 適応型分散処理システム
US7536388B2 (en) * 2004-03-31 2009-05-19 Searete, Llc Data storage for distributed sensor networks
JP4596943B2 (ja) * 2005-03-24 2010-12-15 株式会社日立製作所 センサネットワークシステム、データの転送方法及びプログラム
US20070150600A1 (en) * 2005-12-22 2007-06-28 International Business Machines Corporation Method and apparatus for collecting data for characterizing HTTP session workloads
JP4839152B2 (ja) * 2006-08-04 2011-12-21 株式会社日立製作所 センサネットワークシステム及びセンサネットワークのデータ処理方法
US8095935B2 (en) * 2008-06-26 2012-01-10 Microsoft Corporation Adapting message delivery assignments with hashing and mapping techniques
JP5271038B2 (ja) * 2008-10-30 2013-08-21 大成建設株式会社 防虫用フィルタシステム
US7965636B2 (en) * 2008-12-05 2011-06-21 Hewlett-Packard Development Company, L.P. Loadbalancing network traffic across multiple remote inspection devices
US9331932B2 (en) * 2009-03-19 2016-05-03 Nec Corporation Network system
US20100246592A1 (en) * 2009-03-31 2010-09-30 Inventec Corporation Load balancing method for network intrusion detection
JP5520759B2 (ja) * 2010-09-21 2014-06-11 本田技研工業株式会社 燃料タンクの固定構造
JP5664098B2 (ja) * 2010-10-05 2015-02-04 富士通株式会社 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
US8776207B2 (en) * 2011-02-16 2014-07-08 Fortinet, Inc. Load balancing in a network with session information
JP5862245B2 (ja) * 2011-11-30 2016-02-16 富士通株式会社 配置装置、配置プログラムおよび配置方法
US8909769B2 (en) * 2012-02-29 2014-12-09 International Business Machines Corporation Determining optimal component location in a networked computing environment
US8891364B2 (en) * 2012-06-15 2014-11-18 Citrix Systems, Inc. Systems and methods for distributing traffic across cluster nodes
US8707326B2 (en) * 2012-07-17 2014-04-22 Concurix Corporation Pattern matching process scheduler in message passing environment
US9323767B2 (en) * 2012-10-01 2016-04-26 Longsand Limited Performance and scalability in an intelligent data operating layer system
US9654353B2 (en) * 2012-12-13 2017-05-16 Level 3 Communications, Llc Framework supporting content delivery with rendezvous services network
US9858322B2 (en) * 2013-11-11 2018-01-02 Amazon Technologies, Inc. Data stream ingestion and persistence techniques
US10635644B2 (en) * 2013-11-11 2020-04-28 Amazon Technologies, Inc. Partition-based data stream processing framework
US9794135B2 (en) * 2013-11-11 2017-10-17 Amazon Technologies, Inc. Managed service for acquisition, storage and consumption of large-scale data streams
US9639589B1 (en) * 2013-12-20 2017-05-02 Amazon Technologies, Inc. Chained replication techniques for large-scale data streams

Also Published As

Publication number Publication date
JP2016024500A (ja) 2016-02-08
US20160021177A1 (en) 2016-01-21

Similar Documents

Publication Publication Date Title
JP6428012B2 (ja) 分散処理プログラム、分散処理管理装置及び分散処理方法
AU2017251757B2 (en) Customer-directed networking limits in distributed systems
US9674042B2 (en) Centralized resource usage visualization service for large-scale network topologies
US20190319881A1 (en) Traffic management based on past traffic arrival patterns
US7962635B2 (en) Systems and methods for single session management in load balanced application server clusters
EP2710470B1 (en) Extensible centralized dynamic resource distribution in a clustered data grid
CN105159775A (zh) 基于负载均衡器的云计算数据中心的管理系统和管理方法
US10001945B2 (en) Method of storing data and data storage managing server
KR20170029263A (ko) 부하 분산 장치 및 방법
JP5600573B2 (ja) 負荷分散装置及びプログラム
JP2014228972A (ja) 情報処理装置、情報処理システム、情報処理方法、および学習プログラム
JP7006607B2 (ja) 分散処理システム、分散処理方法、及び記録媒体
CN108809848A (zh) 负载均衡方法、装置、电子设备及存储介质
Goldsztajn et al. Controlling the number of active instances in a cloud environment
CN102480502A (zh) 一种i/o负载均衡方法及i/o服务器
Majumder et al. Genetic algorithm-based two-tiered load balancing scheme for cloud data centers
CN109413117B (zh) 分布式数据计算方法、装置、服务器及计算机存储介质
CN106878356B (zh) 一种调度方法及计算节点
JP6963465B2 (ja) 計算機システム及びデータ処理の制御方法
JP2016153929A (ja) 分散システム、負荷分散方法及びプログラム
CN112199188A (zh) 非暂态计算机可读记录介质、信息处理的方法和设备
US20210185119A1 (en) A Decentralized Load-Balancing Method for Resource/Traffic Distribution
KR101180997B1 (ko) 사이버 물리 시스템에서 부하균형을 고려한 동적 제어 관리 시스템 및 제어 방법
JP6597324B2 (ja) オートスケール方法、オートスケールプログラム、情報処理装置及び情処理システム
JP2017146848A (ja) リバランス装置、リバランス方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180402

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181015

R150 Certificate of patent or registration of utility model

Ref document number: 6428012

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees