JP6172649B2 - 情報処理装置、プログラム、及び、情報処理方法 - Google Patents

情報処理装置、プログラム、及び、情報処理方法 Download PDF

Info

Publication number
JP6172649B2
JP6172649B2 JP2012276610A JP2012276610A JP6172649B2 JP 6172649 B2 JP6172649 B2 JP 6172649B2 JP 2012276610 A JP2012276610 A JP 2012276610A JP 2012276610 A JP2012276610 A JP 2012276610A JP 6172649 B2 JP6172649 B2 JP 6172649B2
Authority
JP
Japan
Prior art keywords
command
server process
commands
processed
unit
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
JP2012276610A
Other languages
English (en)
Other versions
JP2014120097A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2012276610A priority Critical patent/JP6172649B2/ja
Priority to US14/089,032 priority patent/US9456029B2/en
Priority to CN201310617056.7A priority patent/CN103885820B/zh
Publication of JP2014120097A publication Critical patent/JP2014120097A/ja
Priority to US15/232,087 priority patent/US10348815B2/en
Application granted granted Critical
Publication of JP6172649B2 publication Critical patent/JP6172649B2/ja
Priority to US16/394,291 priority patent/US10826980B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、情報処理装置、プログラム、及び、情報処理方法に関する。
サーバプロセスのハードウエア資源の使用率を考慮して、コマンド処理の負荷分散をする方法が知られている(例えば、特許文献1参照)。
[特許文献1] 特開2009−237748号公報
しかし、1つのサーバプロセスが類似するコマンドの組を連続して処理すると、ソフトウエアにおける仮想的なリソースに対するアクセスが競合してコンテンションが発生する可能性がある。
本発明の第1の態様においては、受信したコマンドを複数のサーバプロセス間で負荷分散する情報処理装置であって、処理済みのコマンドの内容と当該コマンドの処理のレスポンス時間とを含む履歴を履歴データベースに記録する履歴記録部と、履歴データベースに記録された履歴に基づいて、処理すべきコマンドの組を一のサーバプロセスに割り当てた場合に、基準以上の負荷がかかるか否かを予測する予測部と、コマンドの組の処理に基準以上の負荷がかかると予測したことに応じて、処理すべきコマンドの組に含まれる少なくとも1つのコマンドを、他のサーバプロセスに割り当てる割当部と、を備える情報処理装置、及び、当該情報処理装置で用いられるプログラム及び情報処理方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
本実施形態の情報処理装置10の構成を示す。 本実施形態の情報処理装置10の情報処理の第1のフローを示す。 複数のコマンドA〜Fの処理時間の例を示す。 図2のフローに係る情報処理の概要を示す。 本実施形態の情報処理装置10の情報処理の第2のフローを示す。 本実施形態の情報処理装置10の情報処理の第3のフローを示す。 図6のフローに係る情報処理の概要を示す。 コンピュータ1900のハードウエア構成の一例を示す。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態の情報処理装置10の構成を複数のクライアント20、30及び40と共に示す。情報処理装置10は、複数のクライアント20等(20、30及び40)から受信したコマンドを複数のサーバプロセス間で負荷分散する。ここで、情報処理装置10は、各サーバプロセスで実行したコマンドの組合せに応じて負荷を履歴から予測し、コマンドの組合せに依存してサーバプロセスに発生する、主にソフトウエア上のコンテンションを低減する。
クライアント20等は、GUI又はCUI上でユーザによる操作を入力させ、操作に応じたコマンド(又はコマンドの組)を情報処理装置10へ送信する。クライアント20等は、コンピュータ端末又は携帯情報端末等であってよく、サーバプロセスと対応するクライアントプロセスを実行することにより、クライアント−サーバプログラムを実行してもよい。
情報処理装置10は、クライアント20等からコマンドを受け取る。情報処理装置10は、例えば、クライアント20等からコマンドを受信してコマンドに応じた処理をするサーバコンピュータであってよく、複数のサーバコンピュータを用いて構成された情報システムであってよい。
情報処理装置10は、フロントエンド処理部110、負荷分散部102、バックエンド処理部120、履歴記録部130、予測部132、及び、割当部134を備える。
負荷分散部102は、複数のクライアント20等をフロントエンド処理部110が実行する複数のフロントエンドサーバプロセス112等(112、114及び116)に対して負荷分散する。例えば、負荷分散部102は、サーバプロセスが割り当てられていないクライアント20からログイン要求を受信し、ログイン処理を実行する。
その後、負荷分散部102は、クライアント20を、後述するフロントエンド処理部110が実行する複数のフロントエンドサーバプロセス112等のうちいずれか一のフロントエンドサーバプロセスに割り当てる。負荷分散部102は、割り当てたフロントエンドサーバプロセスの情報をフロントエンド処理部110に供給する。
フロントエンド処理部110は、それぞれが少なくとも1つのクライアント20等からのコマンドを受け付ける複数のフロントエンドサーバプロセス112等を実行する。例えば、フロントエンド処理部110は、複数のクライアント20等からコマンド又はコマンドの組を受け取り、情報処理装置10が有する1又は複数のCPU等により、複数のクライアント20等からのコマンドの処理を並列または並行して実行する。
フロントエンド処理部110は、複数のフロントエンドサーバプロセス112等のそれぞれの処理において、それぞれのフロントエンドサーバプロセス112等に割り当てられたクライアントからのコマンドを処理する。図1においては、フロントエンド処理部110は、フロントエンドサーバプロセス112に割り当てられた3つのクライアント30から受信した少なくとも1つのコマンド又は少なくとも1つのコマンドの組(「受信コマンド」とする)を処理し、フロントエンドサーバプロセス116に割り当てられた2つのクライアント40からの受信コマンドを処理している。
フロントエンド処理部110は、フロントエンドサーバプロセス112等によるコマンドの処理の結果を、それぞれのフロントエンドサーバプロセス112等に割り当てられたクライアント30等に送信する。また、フロントエンド処理部110は、フロントエンドサーバプロセス112等に割り当てられたコマンドを他のフロントエンドサーバプロセス112等に転送することもできる。
また、フロントエンド処理部110は、フロントエンドサーバプロセス112等に割り当てられた受信コマンドの少なくとも1つのコマンドを、バックエンド処理部120のバックエンドサーバプロセス122に転送し、バックエンドサーバプロセス122から当該コマンドの処理の結果を受け取ってもよい。また、フロントエンド処理部110は、処理済みのコマンドの内容、当該コマンドの実行時刻、及び当該コマンドの処理のレスポンス時間を含む履歴を履歴記録部130に提供する。
バックエンド処理部120は、バックエンドサーバプロセス122を実行する。バックエンド処理部120は、バックエンドサーバプロセス122において、一のフロントエンドサーバプロセス112等から少なくとも1つのコマンドの処理要求の転送を受けて、当該コマンドを実行し、実行したコマンドの処理結果を、要求元のフロントエンドサーバプロセス112等に返信する。また、バックエンド処理部120は、処理済みのコマンドの内容、当該コマンドの実行時刻、及び当該コマンドの処理のレスポンス時間を履歴記録部130に提供する。
履歴記録部130は、フロントエンド処理部110及びバックエンド処理部120から、処理済みのコマンドの内容、当該コマンドの実行時刻、及び、当該コマンドの処理のレスポンス時間とを含む履歴を受け取り、当該履歴を履歴データベースに記録する。履歴記録部130は、履歴において、コマンドの内容、実行時刻、及びレスポンス時間とを対応付けて記録する。
予測部132は、処理すべきコマンドの組を一のフロントエンドサーバプロセス112等に割り当てた場合に、基準以上の負荷がかかるか否かを、履歴記録部130の履歴データベースに記録された履歴に基づいて予測する。例えば、予測部132は、処理すべきコマンドの組を一のフロントエンドサーバプロセス112等に割り当てた場合に、基準以上のレスポンス時間となるか否かを予測することにより負荷を予測してよい。
さらに、予測部132は、例えば、一のフロントエンドサーバプロセス112等にコマンドの組を割り当てると基準以上の負荷がかかるような場合において、処理すべきコマンドの組に含まれる少なくとも1つのコマンドを、一のフロントエンドサーバプロセス112等とは異なる他のフロントエンドサーバプロセス114等に割り当てた場合に当該他のフロントエンドサーバプロセス114等の負荷が基準以上となるか否かを予測してよい。予測部132は、予測した結果を割当部134に供給する。
割当部134は、予測部132が処理すべきコマンドの組を一のフロントエンドサーバプロセス112等に割り当てた場合にコマンドの組の処理に基準以上の負荷がかかると予測したことに応じて、一のフロントエンドサーバプロセス112等が処理すべきコマンドの組に含まれる少なくとも1つのコマンドを、他のサーバプロセス等に割り当てる。
例えば、割当部134は、一のフロントエンドサーバプロセス112等が処理すべきコマンドの組に含まれる少なくとも1つのコマンドを、一のフロントエンドサーバプロセス112等とは異なる他のフロントエンドサーバプロセス114等、又は、バックエンドサーバプロセス122等に割り当ててよい。
このように情報処理装置10は、クライアントから受信コマンドを受け取った結果、一のフロントエンドサーバプロセス112等が処理すべきコマンドの組のレスポンス時間が基準以上となると予測した場合に、少なくとも1つのコマンドの処理を他のサーバプロセスに割り当てる。これにより、情報処理装置10によれば、一のフロントエンドサーバプロセス112等において負荷が大きくなると予測されるコマンドの組を処理させることを防ぎ、主にコマンドの組合せ等に応じてコンテンションが発生することを低減することができる。
例えば、従来のクライアントサーバプログラムでは、サーバコンピュータが、一のサーバプロセスで実行されるスレッドで特定の組合せのコマンドを処理すると、リクエストを処理するキュー又はストレージを管理するコントロールブロック等の仮想的なリソースにアクセスが集中し、コンテンションが発生してレスポンスが悪化することがあった。
一例として、サーバコンピュータがストレージに対するGetとFreeを実行するコマンドを1秒間に数千回等多くの回数処理する場合、ストレージ(ハードウエア資源)自体の使用率は低くても、ストレージを管理するコントロールブロックへのアクセスが集中するためにコンテンションが生じて、コマンドのレスポンス時間が長くなることがあった。本実施形態の情報処理装置10は、ハードウエア資源の使用率に応じた負荷分散とは別に特定のコマンドの組合せにより生じる負荷にも対応可能とし、このようなコンテンションの発生を予防する。
図2は、本実施形態の情報処理装置10の情報処理の第1のフローを示す。第1のフローは、クライアントからのコマンドを一のフロントエンドサーバプロセス112等に割り当てた場合にレスポンス時間が基準以上になると判断した場合に、少なくとも1つのコマンドの処理を他のフロントエンドサーバプロセス114等に処理させる場合のフローを示す。情報処理装置10は、S102からS122までの処理を実行することにより、受信したコマンドを複数のフロントエンドサーバプロセス112等間で負荷分散する。
まず、S102において、負荷分散部102は、情報処理装置10上において、デーモンプロセスを実行することにより、サーバプロセスが割り当てられていないクライアント20からログイン要求を受信し、クライアント20のログイン処理を実行する。
次に、S104において、負荷分散部102は、クライアント20をフロントエンド処理部110が実行する複数のフロントエンドサーバプロセス112等のうちいずれか一のフロントエンドサーバプロセス112に割り当てる。負荷分散部102は、割り当てたフロントエンドサーバプロセス112の情報をフロントエンド処理部110に供給する。
次に、S105において、フロントエンド処理部110が、クライアント20からコマンドを受信する。例えば、フロントエンド処理部110は、クライアント20におけるユーザの操作に対応した受信コマンドを受信する。
一例として、フロントエンド処理部110は、クライアント20から、情報処理装置10が有するファイル(dataset)をオープンするためのコマンドの組として、コマンドAからコマンドEから構成されるコマンドの組を受信する。
コマンドA:C_GET_MEMBER_ATTRIBUTE: parameter=dataset name with member name
コマンドB: C_LIST_DATASET: parameter=dataset name
コマンドC:C_QUERY_DATASETS: parameter=hlq
コマンドD:C_LOCK_AND_DOWNLOAD_MEMBER: parameter=dataset name with member name
コマンドE:C_GET_MEMBER_ATTRIBUTE: parameter=dataset name with member name
また、別の一例として、フロントエンド処理部110は、クライアント20から、最初がTAKATSUで始まるファイル(dataset)をフィルタで指定し、当該ファイル(dataset)の中の文字列testを探すためのコマンドの組として、コマンドFからコマンドHの組を受信する。
コマンドF:C_SEARCH: parameter=filter (e.g. TAKATSU.*), search string=test*
コマンドG:C_GET_MEMBER_ATTRIBUTE: parameter=dataset name with member name
コマンドH:C_LIST_DATASET: parameter=dataset name
フロントエンド処理部110は、コマンドの種類及びパラメータを含むコマンドを受信してよい。例えば、コマンドAにおいて、C_GET_MEMBER_ATTRIBUTEはコマンドの種類を示し、dataset name with member nameはパラメータを示す。フロントエンド処理部110は、受信した1以上のコマンドを予測部132に供給する。
次にS106において、予測部132は、処理すべきコマンドの組を一のフロントエンドサーバプロセス112(例えば、クライアントが割り当てられたフロントエンドサーバプロセス)に割り当てた場合に、一のフロントエンドサーバプロセス112に基準以上のレスポンス時間となるか否かを、履歴記録部130の履歴データベースに記録された履歴に基づいて予測する。
ここで、予測部132は、(1)S105で新たに受信した受信コマンド、又は、(2)一のフロントエンドサーバプロセス112が既に処理中のコマンドの組に、受信コマンドを加えて生成されるコマンドの組を処理すべきコマンドの組として負荷を予測してよい。
例えば、予測部132は、処理すべきコマンドの組に含まれる各コマンドと同一又は類似するコマンド(「類似コマンド」とする)を履歴データベースから検索する。予測部132は、処理すべきコマンドの組の少なくとも一部のコマンドに対応する類似コマンドのみを含む類似コマンドの組が同じ期間内に実行された履歴がある場合には、その場合における各類似コマンドのレスポンス時間等の負荷と、類似コマンドの組のうち類似コマンドの一部を類似コマンド以外で置き換えた他の組合せを実行した場合における、各類似コマンドの負荷とを比較する。
より具体的には、処理すべきコマンドの組に対応する類似コマンドの組を実行した場合のレスポンス時間(複数の場合には平均レスポンス時間又は最大/最小レスポンス時間、「類似コマンドパターンレスポンス時間」とする)が、他の組合せで実行した場合のレスポンス時間(「他コマンドパターンレスポンス時間」とする)と比較し、基準以上となるか否かを予測する。
例えば、予測部132は、類似コマンドパターンレスポンス時間が他コマンドパターンレスポンス時間に一定の係数をかけた時間以上であるか否かを判断することにより、処理すべきコマンドの組を一のフロントエンドサーバプロセス112に割り当てた場合に、予め定められた基準以上のレスポンス時間となるか否かを判断する。予測部132は、予測した結果を割当部134に供給する。
また、予測部132は、履歴記憶部130の履歴データベースに基づいて、同じ期間内に実行するとレスポンス時間が基準以上となるような、特定の2つのコマンド/コマンドの組の組合せを予め検出しておいてよい。コマンド/コマンドの組の組合せは、履歴データベースに記録される、処理されたコマンドの組の全体又は一部であってよい。予測部132は、処理すべきコマンドの組が、検出した2つのコマンド/コマンドの組の組合せを含むときは、レスポンス時間が基準以上となると予測してよい。
次に、S108において、割当部134は、S106の処理において予測部132が処理すべきコマンドの組を一のフロントエンドサーバプロセス112等に割り当てた場合に基準以上のレスポンス時間がかかると予測した場合に、コマンドを他のサーバプロセスに割り当てるために処理をS114に進め、そうでない場合にはコマンドを元のサーバプロセスで完了させるために処理をS110に進める。
S110において、フロントエンド処理部110は、S104の処理で割り当てられた一のフロントエンドサーバプロセス112を実行して、クライアント20からの受信コマンドを処理する。
次に、S112において、フロントエンド処理部110は、コマンドを処理した一のフロントエンドサーバプロセス112により、処理結果をクライアント20に送信する。
S114において、割当部134は、処理すべきコマンドの組に含まれる少なくとも1つのコマンド(「割当コマンド」とする)を他のフロントエンドサーバプロセス114等に割り当てる。例えば、割当部134は、処理すべきコマンドの組のうち、新たに受信した受信コマンドを、他のフロントエンドサーバプロセス114等に割り当てる。また、例えば、割当部134は、一のフロントエンドサーバプロセス112が処理中のコマンドの組を受信コマンドの前にさらに加えたコマンドの組を、他のフロントエンドサーバプロセス114等に割り当ててもよい。
例えば、割当部134は、S104の処理で割り当てられた一のフロントエンドサーバプロセス112から他のフロントエンドサーバプロセス114等に割当コマンドを転送させることにより、他のフロントエンドサーバプロセス114等に割当コマンドを割り当てる。
次に、S116において、フロントエンド処理部110は、S114の処理で割り当てられた他のフロントエンドサーバプロセス114等を実行して、クライアント20からの割当コマンドを処理する。
これにより、情報処理装置10は、一のフロントエンドサーバプロセス112等に割り当てられたクライアント20等からのコマンドのレスポンス時間を考慮して、当該割当コマンドを他のフロントエンドサーバプロセス114等で処理することができる。
次に、S118において、フロントエンド処理部110は、割当コマンドを処理した他のフロントエンドサーバプロセス114等により、処理結果をクライアント20に送信する。
S120において、フロントエンド処理部110は、処理済みのコマンドの種類及びパラメータ等のコマンドの内容、当該コマンドの実行時刻、及び、当該コマンドの処理のレスポンス時間を履歴記録部130に記録する。
次に、S122において、フロントエンド処理部110はクライアント20がログアウトしたか否かを判断する。クライアント20がログアウトしたと判断した場合、フロントエンド処理部110は処理を終了し、そうでない場合は処理をS105に戻す。
このように、情報処理装置10は、S102からS122までの処理を実行することにより、履歴記録部130の履歴に基づき、予測部132が一のフロントエンドサーバプロセス112によるクライアント20等からのコマンドのレスポンス時間を予測し、レスポンス時間が基準以上であれば割当部134がコマンドの処理を他のサーバプロセスに割り当てる。
これにより、情報処理装置10によれば、一のフロントエンドサーバプロセス112がレスポンス時間が長いコマンドの組を処理することがない。例えば、情報処理装置10によれば、一のフロントエンドサーバプロセス112等で実行されるスレッドから、リクエストを処理するキュー又はストレージを管理するコントロールブロック等の仮想的なリソースに同時にアクセスする場合等に生じるコンテンションの発生を低減することができる。
なお、第1のフローのS114において、割当部134は、割当コマンドに代えて、一のフロントエンドサーバプロセス112に割り当てられたクライアント20自体を他のフロントエンドサーバプロセス114等に割り当ててよい。この場合、情報処理装置10は、S114の処理において割当コマンドが割り当てられた他のフロントエンドサーバプロセス114等を、新しい一のフロントエンドサーバプロセスとして、以降の処理を実行してよい。
図3は、一のフロントエンドサーバプロセスによる複数のコマンドA〜Fの処理時間の例を示す。例えば、コマンドA〜Cが一のフロントエンドサーバプロセスが処理中のコマンドの組であり、コマンドFが一のフロントエンドサーバプロセスが新しく受信した受信コマンドである場合、コマンドA〜C及びFが処理すべきコマンドの組となる。図2のS106において、予測部132は、履歴記録部130の履歴データベースから、処理すべきコマンドの組の各コマンドA〜C及びFのそれぞれに対応する類似コマンドを履歴データベースから検索する。
予測部132は、履歴データベースから、各コマンドA〜C及びFの類似コマンドA'〜C'及びF'の少なくとも1つを含む類似コマンドの組が同じ期間内に実行された履歴を探す。予測部132は、処理すべきコマンドの組の少なくとも一部のコマンドに対応する類似コマンドのみを含む類似コマンドの組(例えば、コマンドA'、B'、C'及びF'の組、又は、コマンドB'、C'及びF'の組)が同じ期間内に実行された履歴がある場合には、その場合における各類似コマンドの類似コマンドパターンレスポンス時間と、類似コマンドの組のうち類似コマンドの一部を類似コマンド以外で置き換えた他の組合せ(例えば、コマンドA'、B'、C'及びXの組、又は、コマンドD'、E'及びF'の組)を実行した場合における、各類似コマンドの他コマンドパターンレスポンス時間とを比較する。
図3は、履歴データベースにおいて、コマンドFがコマンドA〜Cとともに処理された場合に比較的長いレスポンス時間が記録されたことを示し、コマンドFがコマンドD及びEとともに処理された場合に比較的短いレスポンス時間が記録されたことを示す。
この場合、コマンドA〜Cとともに処理されたコマンドFの類似コマンドパターンレスポンス時間は、コマンドD及びEとともに処理されたコマンドFの他コマンドパターンレスポンス時間よりも長くなる。この結果、例えば、S106における他コマンドパターンレスポンス時間にかけられる一定の係数が1.0である場合、予測部132は、処理すべきコマンドの組を一のフロントエンドサーバプロセス112等に割り当てた場合に基準以上のレスポンス時間となると予測することとなる。
ここで、予測部132は、一のコマンドに含まれるコマンドの種類及び/又はパラメータが類似する他のコマンドを、一のコマンドに類似するコマンドとしてよい。また、予測部132は、コマンドの種類が同一である又は特定の共通のキーワードを含む場合に、複数のコマンドの種類が類似するとしてよい。また、予測部132は、コマンドの対象となるファイルの名称及びファイルが存在するフォルダ名が同一である、又は、特定の共通のキーワードを含む場合に、複数のコマンドのパラメータが類似するとしてよい。
また、予測部132は、ファイル又はデータベースのサイズを複数のサイズにカテゴリー分けし、コマンドの対象となるファイル又はデータベースのサイズが同一のカテゴリーに分類される場合に、複数のコマンドのパラメータが類似するとしてよい。予測部132は、クライアント20のユーザと対応するユーザID等を除いて、コマンドの種類及びパラメータの類似を判断してよい。
図4に、図2のフローに係る情報処理の概要を示す。負荷分散部102は、デーモンプロセスにより、クライアント20のログイン処理を実行し、クライアント20を複数のフロントエンドサーバプロセス112、114及び116のうち1つのフロントエンドサーバプロセス112に割り当てる。
一例として、負荷分散部102が、各フロントエンドサーバプロセス112等のCPUに対する負荷、メモリ使用率、及び/又は、コマンド処理中のクライアントの数に基づいて、複数のフロントエンドサーバプロセス112等から1つのフロントエンドサーバプロセス112を選択し、クライアント20に割り当てる。
クライアント20が割り当てられたフロントエンドサーバプロセス112は、クライアント20からコマンド/コマンドの組を受信コマンドとして受信し、受信コマンドを含む処理すべきコマンドの組の処理のレスポンス時間が基準以上であることに応じて、処理すべきコマンドの組に含まれる割当コマンドをクライアント20に他のフロントエンドサーバプロセス114に転送する。他のフロントエンドサーバプロセス114は、クライアント20からの割当コマンドを処理し、処理結果をクライアント20に送信する。
図5は、本実施形態の情報処理装置10の情報処理の第2のフローを示す。ここで、第2のフローは、クライアントからの受信コマンドを一のフロントエンドサーバプロセスに割り当てた場合にレスポンス時間が基準以上になり、かつ他のフロントエンドサーバプロセスに割り当てた場合にレスポンス時間が基準未満となると判断した場合に、処理すべきコマンドの組に含まれるコマンドの処理を他のフロントエンドサーバプロセスに処理させる場合のフローを示す。第2のフローにおいて、情報処理装置10はS202からS226までの処理を実行することにより、受信したコマンドを複数のサーバプロセス間で負荷分散する。
第2のフローにおいて、情報処理装置10は、S202からS208までの処理を、図2に示すS102からS108までの処理に準じて実行してよい。
S210において、予測部132は、処理すべきコマンドの組を割り当てた場合に、基準以上のレスポンス時間がかからない、一のフロントエンドサーバプロセス112の他のフロントエンドサーバプロセス114等が存在するか否かを、履歴記録部130の履歴データベースに記録された履歴に基づいて予測する。
例えば、予測部132は、他のフロントエンドサーバプロセス114等が処理中のコマンドの組に、S205で一のフロントエンドサーバプロセス112が受信した受信コマンドを加えて生成されるコマンドの組を処理すべきコマンドの組として、当該他のフロントエンドサーバプロセス114等に割り当てた場合に、当該他のフロントエンドサーバプロセス114等に基準以上のレスポンス時間がかかるか否かを予測する。
予測部132は、S106の処理と同様に、履歴記録部130の履歴データベースに記録された履歴に基づいて当該予測を行う。予測部132は、当該予測を複数の他のフロントエンドサーバプロセス114等ごとに行う。予測部132は、基準以上の負荷がかからない他のフロントエンドサーバプロセス114等が存在するか否かの予測結果を割当部134に供給する。
次に、S212で、割当部134は、予測部132の予測結果が「基準以上の負荷がかからない他のフロントエンドサーバプロセス114等が存在する」である場合に処理をS218に進め、そうでない場合に処理をS214に進める。
第2のフローにおいて、情報処理装置10は、S214からS226までの処理を、図2に示すS110からS122までの処理に準じて実行してよい。
このように、情報処理装置10は、S202からS226までの処理を実行することにより、処理すべきコマンドの組に含まれる少なくとも1つのコマンドを他のフロントエンドサーバプロセス114等に割り当てても当該他のフロントエンドサーバプロセス114等の負荷が基準以上とならないと予測部132が予測したことを条件として、割当部134が当該少なくとも1つのコマンドを当該他のフロントエンドサーバプロセス114等に割り当てる。
これにより、情報処理装置10は、割当元の一のフロントエンドサーバプロセス112だけでなく割当先の他のフロントエンドサーバプロセス114等のコマンドのレスポンス時間の予測に基づいて、クライアントを他のフロントエンドサーバプロセス114等に割り当てる。このため、情報処理装置10によれば、割当先のサーバプロセスにおいてコマンドのレスポンス時間をより確実に低減することができる。
図6に、本実施形態の情報処理装置10の情報処理の第3のフローを示す。ここで、第3のフローは、クライアントから受信コマンドを一のフロントエンドサーバプロセスに割り当てた場合にレスポンス時間が基準以上になると判断した場合に、処理すべきコマンドの組に含まれるコマンドの処理をバックエンドサーバプロセスに処理させる場合のフローを示す。第3のフローにおいて、情報処理装置10はS302からS326までの処理を実行することにより、受信したコマンドを複数のサーバプロセス間で負荷分散する。
第3のフローにおいて、情報処理装置10は、S302からS305までの処理を、図2に示すS102からS105までの処理に準じて実行してよい。
S306において、予測部132は、新たに受信した受信コマンドを一のフロントエンドサーバプロセス112に割り当てた場合に、当該受信コマンド自体の処理により一のフロントエンドサーバプロセス112に基準以上の負荷がかかるか否かを予測する。
一例として、予測部132は、処理すべきコマンドの組の代わりに受信コマンドを用いて、S106と同様に受信コマンドに対応する類似コマンドパターンレスポンス時間を算出し、当該類似コマンドパターンレスポンス時間が予め定められた基準以上となるか否かを予測する。
予測部132は、当該基準として、予め定められた一定の時間を用いてもよく、コマンドの組の種類ごとに異なる時間を用いてもよい。例えば、予測部132は、含まれるコマンド数が多いコマンドの組に対して長い時間を基準として用い、含まれるコマンド数が少ないコマンドの組に対して短い時間を基準として用いてよい。予測部132は、予測した結果を割当部134に供給する。
次に、S308において、割当部134は、予測部132の予測結果が基準以上のレスポンス時間となる場合に処理をS314に進め、そうでない場合に処理をS310に進める。
第3のフローにおいて、情報処理装置10は、S310の処理を、図2に示すS106の処理に準じて実行してよい。
S312において、割当部134は、予測部132の予測結果が基準以上のレスポンス時間となる場合に処理をS314に進め、そうでない場合に処理をS320に進める。
S314において、割当部134は、クライアント20から受信した受信コマンドの処理を、バックエンド処理部120が実行するバックエンドサーバプロセスに割り当てる。
例えば、割当部134は、フロントエンド処理部110に、S304の処理で割り当てられた一のフロントエンドサーバプロセス112からバックエンドサーバプロセス122に受信コマンドを転送させることにより、バックエンドサーバプロセス122にコマンドの組を割り当てる。
次に、S316において、バックエンド処理部120は、S314の処理で割り当てられたバックエンドサーバプロセス122を実行して、受信コマンドを処理する。
次に、S318において、バックエンド処理部120は、バックエンドサーバプロセス122による受信コマンドの処理結果を、S304で割り当てられた一のフロントエンドサーバプロセス112に送信する。
第3のフローにおいて、情報処理装置10は、S320の処理を、図2に示すS110の処理に準じて実行してよい。
S322において、フロントエンド処理部110は、一のフロントエンドサーバプロセス112により、S316における処理結果又はS320における処理結果をクライアント20に送信する。
第3のフローにおいて、情報処理装置10は、S324及びS326の処理を、図2に示すS120及びS122の処理に準じて実行してよい。
このように、情報処理装置10は、S302からS326までの処理を実行することにより、割当部134は、新たに受信した受信コマンドを一のフロントエンドサーバプロセス112に割り当てた場合に、基準以上のレスポンス時間がかかると予測したことに応じて、当該コマンドの組の処理を、バックエンド処理部120が実行するバックエンドサーバプロセス122に割り当てる。
これにより、情報処理装置10は、新しく受信した受信コマンド自体の処理負荷と、処理中のコマンドに受信コマンドを組み合わせた処理すべきコマンドの組の処理負荷の両方の予測に基づいて、クライアントをバックエンドサーバプロセス122に割り当てる。このため、情報処理装置10によれば、割当先のサーバプロセスにおいてコマンドの処理負荷をより確実に低減することができる。
図7に、図6のフローに係る情報処理の概要を示す。図示するように、負荷分散部102は、デーモンプロセスにより、クライアント20を複数のフロントエンドサーバプロセス112、114及び116のうち1つのフロントエンドサーバプロセス112に割り当てる。
クライアント20が割り当てられたフロントエンドサーバプロセス112は、クライアント20からコマンド/コマンドの組を受信コマンドとして受信し、受信コマンドの処理のレスポンス時間が基準以上であることに応じて、受信コマンドをバックエンドサーバプロセス122に転送する。バックエンドサーバプロセス122は、受信コマンドを処理し、処理結果をフロントエンドサーバプロセス112に送信する。フロントエンドサーバプロセス112は、受け取った処理結果をクライアント20に送信する。
なお、本実施形態において、履歴記録部130は、処理済みのコマンドの内容と当該コマンドの処理のレスポンス時間だけでなく、コマンド処理時のCPU利用率、及び/又は、ディスク負荷等のハードウェアリソースの負荷を合わせて記録してよい。この場合、予測部132は、レスポンス時間だけでなくハードウェアリソースの負荷に基づいて、一のフロントエンドサーバプロセス112に基準以上の負荷がかかるか否かを判断してよい。
図8は、情報処理装置10等として機能するコンピュータ1900のハードウエア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。CPU2000は、1つだけでなく複数設けられてもよい。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信インターフェイスは、通信を行うハードウエアとして機能する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウエアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
コンピュータ1900にインストールされ、コンピュータ1900を情報処理装置10として機能させるプログラムは、フロントエンド処理モジュール、負荷分散モジュール、バックエンド処理モジュール、履歴記録モジュール、予測モジュール、割当モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、フロントエンド処理部110、負荷分散部102、バックエンド処理部120、履歴記録部130、予測部132、割当部134としてそれぞれ機能させてよい。
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウエアと上述した各種のハードウエア資源とが協働した具体的手段であるフロントエンド処理部110、負荷分散部102、バックエンド処理部120、履歴記録部130、予測部132、割当部134として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の情報処理装置10が構築される。
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD−ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
10 情報処理装置、20 クライアント、30 クライアント、40 クライアント、102 負荷分散部、110 フロントエンド処理部、112 フロントエンドサーバプロセス、114 フロントエンドサーバプロセス、116 フロントエンドサーバプロセス、120 バックエンド処理部、122 バックエンドサーバプロセス、130 履歴記録部、132 予測部、134 割当部、1900 コンピュータ、2000 CPU、2010 ROM、2020 RAM、2030 通信インターフェイス、2040 ハードディスクドライブ、2050 フレキシブルディスク・ドライブ、2060 CD−ROMドライブ、2070 入出力チップ、2075 グラフィック・コントローラ、2080 表示装置、2082 ホスト・コントローラ、2084 入出力コントローラ、2090 フレキシブルディスク、2095 CD−ROM

Claims (9)

  1. 受信したコマンドを複数のサーバプロセス間で負荷分散する情報処理装置であって、
    処理済みのコマンドの内容と当該コマンドの処理のレスポンス時間とを含む履歴を履歴データベースに記録する履歴記録部と、
    前記履歴データベースに記録された履歴に基づいて、処理すべきコマンドの組を一のサーバプロセスに割り当てた場合に、基準以上の負荷がかかるか否かを予測する予測部と、
    前記コマンドの組の処理に基準以上の負荷がかかると予測したことに応じて、処理すべきコマンドの組に含まれる少なくとも1つのコマンドを、他のサーバプロセスに割り当てる割当部と、
    それぞれが少なくとも1つのクライアントからのコマンドを受け付ける複数のフロントエンドサーバプロセスを実行するフロントエンド処理部と、
    バックエンドサーバプロセスを実行するバックエンド処理部と、
    を備え
    前記割当部は、処理すべきコマンドの組を一のフロントエンドサーバプロセスに割り当てた場合に前記コマンドの組の処理に基準以上の負荷がかかると予測したことに応じて、処理すべきコマンドの組に含まれる少なくとも1つのコマンドの処理を、バックエンドサーバプロセスに割り当て、
    前記バックエンドサーバプロセスは、前記少なくとも1つのコマンドの処理結果を、前記一のフロントエンドサーバプロセスに返信する、
    情報処理装置。
  2. 前記予測部は、一のサーバプロセスにおいて、処理中のコマンドの組に新たに受信した少なくとも1つのコマンドを加えた場合に、基準以上の負荷がかかるか否かを予測する請求項1に記載の情報処理装置。
  3. 前記割当部は、一のサーバプロセスが処理中のコマンドの組に新たに受信した少なくとも1つのコマンドの組を加えたコマンドの組を一のサーバプロセスに割り当てた場合に基準以上の負荷がかかると予測したことに応じて、新たに受信した少なくとも1つのコマンドの組を、他のサーバプロセスに割り当てる請求項2に記載の情報処理装置。
  4. 処理すべきコマンドの組を一のサーバプロセスに割り当てた場合に、基準以上のレスポンス時間となると予測されたことに応じて、前記割当部は、処理すべきコマンドの組に含まれる少なくとも1つのコマンドを、他のサーバプロセスに割り当てる請求項1から3のいずれか一項に記載の情報処理装置。
  5. 処理すべきコマンドの組に含まれる少なくとも1つのコマンドを他のサーバプロセスに割り当てても当該他のサーバプロセスの負荷が基準以上とならないことを条件として、前記割当部は、当該少なくとも1つのコマンドを当該他のサーバプロセスに割り当てる請求項1から4のいずれか一項に記載の情報処理装置。
  6. 複数のクライアントを前記複数のフロントエンドサーバプロセスに対して負荷分散する負荷分散部を更に備え、
    前記フロントエンド処理部は、前記複数のフロントエンドサーバプロセスのそれぞれに負荷分散されたクライアントからのコマンドを処理する
    請求項1から5のいずれか1項に記載の情報処理装置。
  7. 前記割当部は、新たに受信した少なくとも1つのコマンドの組を一のサーバプロセスに割り当てた場合に、基準以上の負荷がかかると予測したことに応じて、当該コマンドの組の処理を、バックエンドサーバプロセスに割り当てる請求項1から6のいずれか1項に記載の情報処理装置。
  8. 受信したコマンドを複数のサーバプロセス間で負荷分散する情報処理装置としてコンピュータを機能させるプログラムであって、
    当該プログラムは、前記コンピュータを、
    処理済みのコマンドの内容と当該コマンドの処理のレスポンス時間とを含む履歴を履歴データベースに記録する履歴記録部と、
    前記履歴データベースに記録された履歴に基づいて、処理すべきコマンドの組を一のサーバプロセスに割り当てた場合に、基準以上の負荷がかかるか否かを予測する予測部と、
    前記コマンドの組の処理に基準以上の負荷がかかると予測したことに応じて、処理すべきコマンドの組に含まれる少なくとも1つのコマンドを、他のサーバプロセスに割り当てる割当部と、
    それぞれが少なくとも1つのクライアントからのコマンドを受け付ける複数のフロントエンドサーバプロセスを実行するフロントエンド処理部と、
    バックエンドサーバプロセスを実行するバックエンド処理部と、
    として機能させ
    前記割当部は、処理すべきコマンドの組を一のフロントエンドサーバプロセスに割り当てた場合に前記コマンドの組の処理に基準以上の負荷がかかると予測したことに応じて、処理すべきコマンドの組に含まれる少なくとも1つのコマンドの処理を、バックエンドサーバプロセスに割り当て、
    前記バックエンドサーバプロセスは、前記少なくとも1つのコマンドの処理結果を、前記一のフロントエンドサーバプロセスに返信する、
    プログラム。
  9. 受信したコマンドを複数のサーバプロセス間で負荷分散する情報処理方法であって、
    処理済みのコマンドの内容と当該コマンドの処理のレスポンス時間とを含む履歴を履歴データベースに記録する履歴記録段階と、
    前記履歴データベースに記録された履歴に基づいて、処理すべきコマンドの組を一のサーバプロセスに割り当てた場合に、基準以上の負荷がかかるか否かを予測する予測段階と、
    前記コマンドの組の処理に基準以上の負荷がかかると予測したことに応じて、処理すべきコマンドの組に含まれる少なくとも1つのコマンドを、他のサーバプロセスに割り当てる割当段階と、
    それぞれが少なくとも1つのクライアントからのコマンドを受け付ける複数のフロントエンドサーバプロセスを実行するフロントエンド処理段階と、
    バックエンドサーバプロセスを実行するバックエンド処理段階と、
    を備え
    前記割当段階において、処理すべきコマンドの組を一のフロントエンドサーバプロセスに割り当てた場合に前記コマンドの組の処理に基準以上の負荷がかかると予測したことに応じて、処理すべきコマンドの組に含まれる少なくとも1つのコマンドの処理を、バックエンドサーバプロセスに割り当て、
    前記バックエンドサーバプロセスは、前記少なくとも1つのコマンドの処理結果を、前記一のフロントエンドサーバプロセスに返信する、
    情報処理方法。
JP2012276610A 2012-12-19 2012-12-19 情報処理装置、プログラム、及び、情報処理方法 Active JP6172649B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2012276610A JP6172649B2 (ja) 2012-12-19 2012-12-19 情報処理装置、プログラム、及び、情報処理方法
US14/089,032 US9456029B2 (en) 2012-12-19 2013-11-25 Command process load balancing system
CN201310617056.7A CN103885820B (zh) 2012-12-19 2013-11-28 信息处理装置和信息处理方法
US15/232,087 US10348815B2 (en) 2012-12-19 2016-08-09 Command process load balancing system
US16/394,291 US10826980B2 (en) 2012-12-19 2019-04-25 Command process load balancing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012276610A JP6172649B2 (ja) 2012-12-19 2012-12-19 情報処理装置、プログラム、及び、情報処理方法

Publications (2)

Publication Number Publication Date
JP2014120097A JP2014120097A (ja) 2014-06-30
JP6172649B2 true JP6172649B2 (ja) 2017-08-02

Family

ID=50932315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012276610A Active JP6172649B2 (ja) 2012-12-19 2012-12-19 情報処理装置、プログラム、及び、情報処理方法

Country Status (3)

Country Link
US (3) US9456029B2 (ja)
JP (1) JP6172649B2 (ja)
CN (1) CN103885820B (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6172649B2 (ja) 2012-12-19 2017-08-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、プログラム、及び、情報処理方法
TWI513230B (zh) * 2013-04-29 2015-12-11 Ind Tech Res Inst 支援用戶端設備廣域管理協定之遠端管理系統及裝置及其提升遠端管理效能之方法
CN104660699B (zh) * 2015-02-25 2018-02-13 重庆大学 基于可变斜率的缺失服务响应时间补足方法和装置
EP3306584A4 (en) * 2015-05-27 2019-01-09 Nec Corporation INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING, INFORMATION PROCESSING AND INFORMATION PROCESSING SYSTEM
US9965727B2 (en) 2016-01-14 2018-05-08 International Business Machines Corporation Method and apparatus for resolving contention in a computer system
US10749942B2 (en) * 2016-12-28 2020-08-18 Hitachi, Ltd. Information processing system and method
US10834230B2 (en) * 2017-08-25 2020-11-10 International Business Machines Corporation Server request management
JP7207393B2 (ja) * 2018-02-28 2023-01-18 ソニーグループ株式会社 情報処理装置および情報処理方法
CN109413187A (zh) * 2018-11-01 2019-03-01 中国科学院计算机网络信息中心 一种通用的图数据在线交互式浏览分析方法
US10715418B1 (en) 2019-08-26 2020-07-14 Nice Ltd. Optimized serverless cloud processing based on processing job requirements
US20220374328A1 (en) * 2021-05-19 2022-11-24 Cerner Innovation, Inc. Advanced simulation management tool for a medical records system

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5283897A (en) * 1990-04-30 1994-02-01 International Business Machines Corporation Semi-dynamic load balancer for periodically reassigning new transactions of a transaction type from an overload processor to an under-utilized processor based on the predicted load thereof
JPH07319835A (ja) 1994-05-24 1995-12-08 Matsushita Electric Ind Co Ltd マルチサーバ装置負荷分散装置
JPH10145442A (ja) * 1996-11-07 1998-05-29 Nec Shizuoka Ltd 無線選択呼出受信システムおよび無線選択呼出受信方法
JPH10198539A (ja) * 1997-01-08 1998-07-31 Fuji Xerox Co Ltd 画像形成装置および画像形成方法
JP3156688B2 (ja) 1998-12-24 2001-04-16 日本電気株式会社 コンパイルシステム,コンパイル方法およびコンパイラを記憶した記録媒体
US6718330B1 (en) * 1999-12-16 2004-04-06 Ncr Corporation Predictive internet automatic work distributor (Pre-IAWD) and proactive internet automatic work distributor (Pro-IAWD)
US20020019843A1 (en) * 2000-04-26 2002-02-14 Killian Robert T. Multiprocessor object control
JP2001345241A (ja) * 2000-05-31 2001-12-14 Tokyo Electron Ltd 基板処理システム及び基板処理方法
US6856680B2 (en) * 2001-09-24 2005-02-15 Rockwell Electronic Commerce Technologies, Llc Contact center autopilot algorithms
US20030088656A1 (en) * 2001-11-02 2003-05-08 Wahl Mark F. Directory server software architecture
JP2003256222A (ja) * 2002-03-04 2003-09-10 Matsushita Electric Ind Co Ltd 分散処理システム、ジョブ分散処理方法およびプログラム
US7406511B2 (en) * 2002-08-26 2008-07-29 International Business Machines Corporation System and method for processing transactions in a multisystem database environment
JP4043355B2 (ja) 2002-12-10 2008-02-06 富士通株式会社 サーバ負荷分散プログラム、サーバ負荷分散方法、およびサーバ負荷分散装置
US20050165765A1 (en) * 2003-03-18 2005-07-28 Fujitsu Limited Information search system, information search method, information search apparatus, and recording medium to which information search program, is recorded and which can be read by computer
JP2005062927A (ja) * 2003-08-11 2005-03-10 Hitachi Ltd 負荷制御方法および装置並びにその処理プログラム
US7613680B2 (en) * 2005-05-06 2009-11-03 Hitachi, Ltd. Computer system and the computer control method
US8036372B2 (en) * 2005-11-30 2011-10-11 Avaya Inc. Methods and apparatus for dynamically reallocating a preferred request to one or more generic queues
JP2007233946A (ja) 2006-03-03 2007-09-13 Nec Corp 情報受信端末、情報配信システム、情報分類方法およびプログラム
US8555288B2 (en) * 2006-05-17 2013-10-08 Teradata Us, Inc. Managing database utilities to improve throughput and concurrency
JP4936517B2 (ja) * 2006-06-06 2012-05-23 学校法人早稲田大学 ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
JP4933284B2 (ja) * 2007-01-25 2012-05-16 株式会社日立製作所 ストレージ装置及び負荷分散方法
US9398346B2 (en) * 2007-05-04 2016-07-19 Time Warner Cable Enterprises Llc Methods and apparatus for predictive capacity allocation
US8284205B2 (en) * 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
JP5088735B2 (ja) 2007-12-07 2012-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースへのアクセスを制御する技術
JP4722150B2 (ja) 2008-03-26 2011-07-13 三菱電機株式会社 クライアントサーバシステム
WO2010131778A1 (ja) * 2009-05-15 2010-11-18 日本電気株式会社 ワークフロー監視制御システム、監視制御方法および監視制御プログラム
US8571696B2 (en) * 2009-06-10 2013-10-29 Fisher-Rosemount Systems, Inc. Methods and apparatus to predict process quality in a process control system
CN101695050A (zh) * 2009-10-19 2010-04-14 浪潮电子信息产业股份有限公司 一种基于网络流量自适应预测的动态负载均衡方法
CN102193832B (zh) * 2010-03-11 2013-03-27 精英电脑股份有限公司 云端计算资源排程方法与应用的***
US20120066683A1 (en) * 2010-09-09 2012-03-15 Srinath Nadig S Balanced thread creation and task allocation
US9563479B2 (en) * 2010-11-30 2017-02-07 Red Hat, Inc. Brokering optimized resource supply costs in host cloud-based network using predictive workloads
US9038088B2 (en) * 2011-03-10 2015-05-19 Nec Laboratories America, Inc. Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases
JP5708262B2 (ja) * 2011-05-31 2015-04-30 富士通株式会社 予測プログラム、予測装置および予測方法
CN102622273B (zh) * 2012-02-23 2015-04-15 中国人民解放军国防科学技术大学 基于自学习负载预测的集群按需启动方法
US9020785B2 (en) * 2012-11-09 2015-04-28 International Business Machines Corporation Identifying and routing poison tuples in a streaming application
JP6172649B2 (ja) 2012-12-19 2017-08-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、プログラム、及び、情報処理方法

Also Published As

Publication number Publication date
CN103885820A (zh) 2014-06-25
US20190253489A1 (en) 2019-08-15
US20140173117A1 (en) 2014-06-19
US10826980B2 (en) 2020-11-03
US20160352822A1 (en) 2016-12-01
JP2014120097A (ja) 2014-06-30
CN103885820B (zh) 2018-01-02
US9456029B2 (en) 2016-09-27
US10348815B2 (en) 2019-07-09

Similar Documents

Publication Publication Date Title
JP6172649B2 (ja) 情報処理装置、プログラム、及び、情報処理方法
US10108460B2 (en) Method and system for integrated deployment planning for virtual appliances
US9244737B2 (en) Data transfer control method of parallel distributed processing system, parallel distributed processing system, and recording medium
US20150112965A1 (en) Database management system, computer, and database management method
JP4577384B2 (ja) 管理マシン、管理システム、管理プログラム、および、管理方法
JP6286280B2 (ja) 資源割り当て方法及び資源割り当てシステム
JPH0326419B2 (ja)
US10409519B2 (en) Interface device, and computer system including interface device
JP4801761B2 (ja) データベース管理方法およびシステム並びにその処理プログラム
JP6519111B2 (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
CN113342477A (zh) 一种容器组部署方法、装置、设备及存储介质
WO2020125396A1 (zh) 一种共享数据的处理方法、装置及服务器
US11556391B2 (en) CPU utilization for service level I/O scheduling
CN109828790B (zh) 一种基于申威异构众核处理器的数据处理方法和***
US20130124817A1 (en) Information processing apparatus
CN115543222B (zh) 一种存储优化方法、***、设备及可读存储介质
JP5043166B2 (ja) 計算機システム、データ検索方法及びデータベース管理計算機
CN114077481A (zh) 任务调度方法、装置、设备和存储介质
JP7087585B2 (ja) 情報処理装置、制御方法、及びプログラム
CN117311910B (zh) 一种高性能虚拟密码机运行方法
WO2016051593A1 (ja) 計算機システム
KR102024846B1 (ko) 파일 시스템 프로그램 및 이를 이용한 데이터 센터 제어 방법
US20160335321A1 (en) Database management system, computer, and database management method
US20170147408A1 (en) Common resource updating apparatus and common resource updating method
CN117136359A (zh) 用于查询执行的动态存储器分配的***和方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170117

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20170608

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170627

R150 Certificate of patent or registration of utility model

Ref document number: 6172649

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150