[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2007200349A - Server-client system, load distribution device, load distribution method, and load distribution program - Google Patents

Server-client system, load distribution device, load distribution method, and load distribution program Download PDF

Info

Publication number
JP2007200349A
JP2007200349A JP2007080325A JP2007080325A JP2007200349A JP 2007200349 A JP2007200349 A JP 2007200349A JP 2007080325 A JP2007080325 A JP 2007080325A JP 2007080325 A JP2007080325 A JP 2007080325A JP 2007200349 A JP2007200349 A JP 2007200349A
Authority
JP
Japan
Prior art keywords
server
information
client
load
distance
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.)
Granted
Application number
JP2007080325A
Other languages
Japanese (ja)
Other versions
JP3987880B2 (en
Inventor
Taro Hashimoto
太郎 橋本
Tetsuya Onoda
哲也 小野田
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.)
Broadmedia Corp
Original Assignee
Club IT 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 Club IT Corp filed Critical Club IT Corp
Priority to JP2007080325A priority Critical patent/JP3987880B2/en
Publication of JP2007200349A publication Critical patent/JP2007200349A/en
Application granted granted Critical
Publication of JP3987880B2 publication Critical patent/JP3987880B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To efficiently execute a process. <P>SOLUTION: The load distribution device 101a comprises a process information receiving part 401 receiving information for the process from a client 102, a determination part 402 determining, based on the received information for the process, a server which is to process the process from among a plurality of process processing servers 101b-101n, and a server information transmitting part 403 transmitting information for the determined server to the client 102. Further, the client 102 includes a server information receiving part 412 receiving the transmitted information for the server, and a process request transmitting part 413 transmitting information for a process processing request to the process processing server 101b-101n related to the received information. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

この発明は、サーバに対するアクセスを分散させるサーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラムに関し、特に、サーバの稼働状態を監視し、評価することによって複数のサーバの中から最適なサーバを選択するサーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラムに関する。   The present invention relates to a server / client system, a load distribution device, a load distribution method, and a load distribution program for distributing access to servers, and in particular, by monitoring and evaluating a server operating state, it is optimal among a plurality of servers. The present invention relates to a server / client system, a load distribution apparatus, a load distribution method, and a load distribution program for selecting a secure server.

従来、クライアント上のアプリケーションプログラムからサーバに対しネットワークを介してサーバプログラムの実行を要求するサーバ・クライアント型のシステムが普及している。このシステムでは、クライアントからのプログラム実行の要求に対して、プログラムの実行結果であるサービスを提供するサーバが、そのサービスを提供するためのプログラムの処理単位となるプロセスを起動する。サーバ上で、Webコンテンツ配信プログラムや業務ソフトウエアやゲームソフトウエアなどのプロセスが起動されると、要求したクライアントに対してテキストデータや画像データなどのサービスが提供される。   2. Description of the Related Art Conventionally, a server / client type system in which an application program on a client requests a server to execute a server program via a network has been widely used. In this system, in response to a program execution request from a client, a server that provides a service that is a program execution result starts a process that is a processing unit of the program for providing the service. When a process such as a Web content distribution program, business software, or game software is started on the server, services such as text data and image data are provided to the requested client.

このようなサーバ・クライアント・システムの処理を複数のサーバを利用しておこなう場合、一部のサーバに偏って負荷がかかることを防ぐため、クライアントから送信される要求処理を負荷分散させる技術がある。たとえば、Webコンテンツの配信をおこなうWebサーバの場合、クライアントからのアクセスを複数用意したサーバに順番に処理を振り分けるラウンドロビン方式や、複数のサーバの中からセッション数が最小のサーバを選択するリーストコネクション方式などの方法により、プロセスを割り当てるためのサーバを選択している。   When performing such server / client system processing using multiple servers, there is a technology that distributes the load of request processing sent from clients in order to prevent some servers from being overloaded. . For example, in the case of a Web server that distributes Web content, a round robin method in which processing is distributed in order to a server that provides multiple access from clients, or a least connection that selects a server with the smallest number of sessions from a plurality of servers A server for assigning a process is selected by a method or the like.

このラウンドロビン方式やリーストコネクション方式を用いて負荷分散させると、実行されるプロセスが消費するリソース(たとえば、CPUやメモリなど、パーソナルコンピュータが備える資源)の消費量や、サーバが備えるリソースの量とは関係無くサーバの割り当てがおこなわれる。   When load distribution is performed using the round robin method or the least connection method, the consumption of resources consumed by processes to be executed (for example, resources provided in personal computers such as CPU and memory), and the amount of resources provided in the server Servers are assigned regardless of

図19は、サーバが備えるリソース量とプロセスが消費するリソース量との関係の一例を示す説明図である。図19において、サーバプログラムを実行するためのサーバのCPUの消費量をX座標、メモリの消費量をY座標としている。図19に示すX座標上のXmaxは、CPU消費量の最大値である100%を表し、Y座標上のYmaxは、メモリ消費量の最大値である100%を表す。そして、CPUとメモリとがそれぞれ100%消費される理想的な位置を座標1902が示している。このサーバ上で、CPUとメモリを消費するプロセス1901が実行されると、CPUの消費量が100%より低いにも関わらずメモリの消費量が100%となる。   FIG. 19 is an explanatory diagram illustrating an example of the relationship between the resource amount of the server and the resource amount consumed by the process. In FIG. 19, the CPU consumption of the server for executing the server program is the X coordinate, and the memory consumption is the Y coordinate. In FIG. 19, Xmax on the X coordinate represents 100%, which is the maximum value of CPU consumption, and Ymax on the Y coordinate represents 100%, which is the maximum value of memory consumption. A coordinate 1902 indicates an ideal position where 100% of the CPU and the memory are consumed. When the process 1901 that consumes the CPU and the memory is executed on this server, the memory consumption becomes 100% even though the CPU consumption is lower than 100%.

また、図20は、サーバが備えるリソース量とプロセスが消費するリソース量との関係の他の一例を示す説明図である。図20においては、図19と同様に、サーバプログラムを実行するためのサーバのCPUの消費量をX座標、メモリの消費量をY座標としている。また、X座標上のXmaxは、CPU消費量の最大値である100%を表し、Y座標上のYmaxは、メモリ消費量の最大値である100%を表す。そして、CPUとメモリとがそれぞれ100%消費される理想的な位置を座標2002が示している。このサーバ上で、CPUとメモリを消費するプロセス2001が実行されると、図19とは逆に、メモリの消費量が100%より低いにも関わらずCPUの消費量が100%となる。   FIG. 20 is an explanatory diagram showing another example of the relationship between the resource amount of the server and the resource amount consumed by the process. In FIG. 20, similarly to FIG. 19, the CPU consumption of the server for executing the server program is the X coordinate, and the memory consumption is the Y coordinate. Xmax on the X coordinate represents 100%, which is the maximum value of CPU consumption, and Ymax on the Y coordinate represents 100%, which is the maximum value of memory consumption. A coordinate 2002 indicates an ideal position where the CPU and the memory are 100% consumed. When the process 2001 that consumes the CPU and the memory is executed on this server, the consumption of the CPU becomes 100% although the consumption of the memory is lower than 100%, contrary to FIG.

また、負荷分散装置が、複数のサーバのそれぞれのセッション数を把握し、そのセッション数と各サーバごとのマシン性能によって予め決めた重み付けとにより、複数のサーバの中から適切なサーバを選択しセッションを割り当てるシステムが存在する(たとえば、下記特許文献1参照。)。   In addition, the load balancer grasps the number of sessions of each of the plurality of servers, and selects an appropriate server from the plurality of servers by the number of sessions and the weight determined in advance by the machine performance of each server. There is a system for assigning (see, for example, Patent Document 1 below).

特開2002−269061号公報JP 2002-269061 A

しかしながら、上述したラウンドロビン方式やリーストコネクション方式による負荷分散では、サーバが備えるリソースやプロセスが消費するリソースとは関係なく、クライアントとのセッション数などによって負荷分散されてしまうことになる。これによって、実行要求されたプロセスがサーバで起動される際にリソースの過不足が判断されるため、要求に対する応答に遅延時間ができ、クライアントに対して待ち時間が発生してしまうという問題があった。   However, in the above-described load distribution using the round robin method or the least connection method, the load is distributed depending on the number of sessions with the client and the like regardless of the resources provided by the server and the resources consumed by the process. As a result, when the process requested to execute is started on the server, it is determined whether there is an excess or shortage of resources, so there is a problem that a delay occurs in the response to the request and a waiting time occurs for the client. It was.

一方、サーバとして使用する装置の性能によっても各サーバが備えることができるリソースの量が異なるため、ラウンドロビン方式やリーストコネクション方式などのように、単にセッション数のみで負荷分散する方式を使用した場合に、負荷分散後のリソースの使用量が考慮されず、リソースの残量が少ないサーバや、リソースの消費量に偏りがあるサーバにプロセスを割り当ててしまうという問題があった。   On the other hand, because the amount of resources that each server can have varies depending on the performance of the device used as the server, when using a method that distributes load only by the number of sessions, such as the round robin method or the least connection method In addition, there is a problem that a process is allocated to a server with a small remaining amount of resources or a server with a bias in resource consumption, without considering the resource usage after load distribution.

また、CPUもしくはメモリのいずれかの消費量に偏りがあるサーバに対してプロセスを実行させると、消費量の少ない方のリソースに空き領域があるにも関わらず消費量の多い方のリソース領域のみが不足することによって、新たなプロセスを実行させることができなくなる。このような、リソースの消費量に偏りがあるサーバは、リソースが均等に消費されたサーバに比べて実行可能なプロセスの数が少なくなってしまうという問題があった。   Also, if a process is executed on a server with a biased consumption of either CPU or memory, only the resource area with the higher consumption is available even though the resource with the lower consumption has free space Due to the shortage, it becomes impossible to execute a new process. Such a server with uneven resource consumption has a problem in that the number of processes that can be executed is smaller than a server in which resources are evenly consumed.

この発明は、上述した従来技術による問題点を解消するため、プロセスの実行を割り当てるサーバのリソースや稼働状態を数値評価することによって一ヵ所ないしは複数ヵ所に配備された複数のサーバの中から最適なサーバを選択し、各サーバにてプロセスの実行を効率的におこなわせることが可能なサーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラムを提供することを目的とする。   In order to solve the above-described problems caused by the conventional technology, the present invention is optimally selected from a plurality of servers deployed in one or a plurality of locations by numerically evaluating the resources and operating states of the servers to which the process execution is allocated. It is an object of the present invention to provide a server client system, a load distribution device, a load distribution method, and a load distribution program capable of selecting a server and efficiently executing a process on each server.

上記課題を解決するために、この発明にかかるサーバ・クライアント・システムは、複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおいて、前記サーバのうちの少なくともいずれか一つが、前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信手段と、前記プロセス情報受信手段によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定手段と、前記決定手段によって決定されたサーバに関する情報を前記クライアントへ送信するサーバ情報送信手段と、を備え、前記クライアントが、前記サーバ情報送信手段によって送信されたサーバに関する情報を前記ネットワークを介して受信するサーバ情報受信手段と、前記サーバ情報受信手段によって受信された情報にかかるサーバへ、前記プロセス処理要求に関する情報を送信するプロセス要求送信手段と、を備えたことを特徴とする。   In order to solve the above problems, a server / client system according to the present invention is configured such that a plurality of servers and a plurality of clients are connected via a network, and the server performs processing based on a process request from the client. In the server-client system for transmitting a processing result to the client, at least one of the servers receives process information receiving means from the client via the network, and process information receiving means Based on the information on the process received by the information receiving means, a determination means for determining a server that processes the process from the plurality of servers, and transmits information on the server determined by the determination means to the client. Sir An information transmission unit, wherein the client receives information about the server transmitted by the server information transmission unit via the network, and the information received by the server information reception unit Process request transmission means for transmitting information related to the process processing request to the server.

また、この発明の負荷分散装置は、複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散装置であって、前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信手段と、前記プロセス情報受信手段によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定手段と、前記決定手段によって決定されたサーバに関する情報を前記クライアントへ送信するサーバ情報送信手段と、を備えたことを特徴とする。   In the load distribution apparatus according to the present invention, a plurality of servers and a plurality of clients are connected via a network, the server performs processing based on a process request from the clients, and transmits a processing result to the clients. A load distribution device for distributing a load on the server in a server / client system, the process information receiving unit receiving information about the process from the client via the network, and the process information receiving unit A determination unit that determines a server that processes the process from the plurality of servers based on information about the process; and a server information transmission unit that transmits information about the server determined by the determination unit to the client. It is characterized by having

また、この発明の負荷分散方法は、複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散方法であって、前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信工程と、前記プロセス情報受信工程によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定工程と、前記決定工程によって決定されたサーバへ、前記プロセス処理要求に関する情報を送信するプロセス要求送信工程と、を含んだことを特徴とする。   Further, according to the load distribution method of the present invention, a plurality of servers and a plurality of clients are connected via a network, the server performs processing based on a process request from the client, and transmits a processing result to the client. A load distribution method for distributing the load on the server in a server / client system, the process information receiving step receiving information about the process from the client via the network, and the process information receiving step received by the process information receiving step A determination step for determining a server to process the process from the plurality of servers based on information on the process, and a process request transmission step for transmitting information on the process processing request to the server determined by the determination step And To.

また、この発明の負荷分散プログラムは、複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散プログラムであって、前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信工程と、前記プロセス情報受信工程によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定工程と、を前記サーバに実行させることを特徴とする。   Also, according to the load distribution program of the present invention, a plurality of servers and a plurality of clients are connected via a network, the server performs processing based on a process request from the client, and transmits a processing result to the client. A load distribution program for distributing the load on the server in a server / client system, the process information receiving step for receiving information on the process from the client via the network, and the process information receiving step A determination step of determining a server for processing the process from the plurality of servers based on information on the process is executed by the server.

ここで、決定手段(工程)は、各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第1の距離を算出する第1の距離算出手段(工程)と、各サーバにおけるリソースのパラメータを軸として空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第2の距離を算出する第2の距離算出手段(工程)と、を備え(含み)、前記第1の距離および前記第2の距離の一方ないしは両方の値に基づいて、前記プロセスを処理させるサーバを決定するようにしてもよい。   Here, the determining means (process) is the resource consumption obtained by adding the resource consumption of the process to the point representing the current resource consumption of each server in the space centered on the parameter of the resource in each server. A first distance calculating means (step) for calculating a first distance between an origin and a straight line connecting the maximum usable capacity of the parameter, and a space on the basis of the parameter of the resource in each server The second distance calculating means for calculating the second distance from the origin of the expected point of the resource consumption obtained by adding the resource consumption of the process to the point representing the current resource consumption of each server (Step), and includes (including) a process for processing the process based on one or both values of the first distance and the second distance. It is also possible to determine the server.

また、前記パラメータには、前記サーバのCPUの負荷量、システムメモリの負荷量、グラフィック処理ユニットの負荷量、ビデオメモリの負荷量およびネットワークインタフェースカードの負荷量の少なくともいずれか一つを含むようにしてもよい。   The parameter may include at least one of the CPU load of the server, the system memory load, the graphic processing unit load, the video memory load, and the network interface card load. Good.

本発明によれば、プロセスの実行を割り当てるサーバのリソースや稼働状態を数値評価することによって一ヵ所ないしは複数ヵ所に配備された複数のサーバの中から最適なサーバを選択し、各サーバにてプロセスの実行を効率的におこなわせることが可能になるという効果を奏する。   According to the present invention, an optimal server is selected from a plurality of servers deployed at one or a plurality of locations by numerically evaluating the resources and operating states of the servers to which the process execution is allocated, and a process is performed on each server. There is an effect that it is possible to efficiently execute.

以下に添付図面を参照して、この発明にかかるサーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラムの好適な実施の形態を詳細に説明する。   Exemplary embodiments of a server / client system, a load distribution apparatus, a load distribution method, and a load distribution program according to the present invention will be explained below in detail with reference to the accompanying drawings.

(システム構成)
まず、この発明の本実施の形態にかかる負荷分散装置を含むサーバ・クライアント・システムのシステム構成について説明する。図1は、この発明の本実施の形態にかかるサーバ・クライアント・システムのシステム構成を示す概要図である。図1において、サーバ101a〜101nは、端末装置(クライアント)102あるいは電話局105とがそれぞれ、インターネットなどのネットワーク100を介して接続し構成されている。また、電話局105には無線基地局104が接続され、携帯電話機103はこの無線基地局104を介してサーバ101a〜101nと接続される。
(System configuration)
First, a system configuration of a server / client system including a load distribution apparatus according to the embodiment of the present invention will be described. FIG. 1 is a schematic diagram showing a system configuration of a server / client system according to this embodiment of the present invention. In FIG. 1, servers 101a to 101n are configured by connecting to a terminal device (client) 102 or a telephone station 105 via a network 100 such as the Internet. A radio base station 104 is connected to the telephone station 105, and the mobile phone 103 is connected to the servers 101 a to 101 n via the radio base station 104.

サーバ101a〜101nは、たとえば、PCサーバと呼ばれるサーバ用途に使用されるパーソナルコンピュータであり、Webコンテンツの配信やネットワークゲーム配信などをおこなうサービス事業者により管理、運営されている。そして、PCサーバに専用のアプリケーションソフトウエアをインストールすることにより負荷分散機能を備えた負荷分散装置となる。負荷分散機能を備えたサーバはシステム全体内で1つないしは複数台存在することが可能である。ここでは、サーバ101aを負荷分散装置として以下説明をおこなう。   The servers 101a to 101n are personal computers used for server purposes called PC servers, for example, and are managed and operated by a service provider that distributes Web contents and network games. Then, by installing dedicated application software on the PC server, a load distribution device having a load distribution function is obtained. One or a plurality of servers having a load distribution function can exist in the entire system. Here, the server 101a will be described as a load balancer.

したがって、サーバ101a以外のサーバ(プロセス処理サーバ)101b〜101nについても同様に専用のアプリケーションソフトウエアをインストールすることによって負荷分散機能を備えた負荷分散装置となり得ることができ、負荷分散装置101aとして起動しているサーバ101aが障害により停止した場合には、サーバ101b〜101nのいずれかが負荷分散装置101aとして切り替わり、代理をおこなうことができる。   Therefore, the servers (process processing servers) 101b to 101n other than the server 101a can also be a load distribution apparatus having a load distribution function by installing dedicated application software in the same manner, and are activated as the load distribution apparatus 101a. When the active server 101a is stopped due to a failure, one of the servers 101b to 101n is switched as the load balancer 101a and can act as a proxy.

負荷分散装置101aは、後述するユーザが使用する端末装置102や携帯電話機103からプロセスの実行要求があった場合、そのプロセスの実行をサーバ101b〜101nに対して割り振る。サーバ101b〜101nは、要求されたプロセスを実行し、その実行結果となるサービスをネットワーク100を介して後述する端末装置102や携帯電話機103に対して提供する。   When there is a process execution request from a terminal device 102 or a mobile phone 103 used by a user, which will be described later, the load distribution apparatus 101a allocates the execution of the process to the servers 101b to 101n. The servers 101b to 101n execute the requested process and provide a service as a result of the execution to the terminal device 102 and the mobile phone 103 to be described later via the network 100.

端末装置102は、たとえばパーソナルコンピュータなどの情報端末装置であり、個人や企業などで使用されている。また、携帯電話機103は、たとえばNTTドコモ社の「iモード(登録商標)」や、au社の「ezweb(登録商標)」のように、少なくともインターネットへの接続が可能で、ブラウザやJava(登録商標)アプリケーションなどを用いてネットワーク100へアクセスする情報通信機能を備えた携帯電話機である。そして、無線基地局104は、電話局105から受信した通信データを携帯電話機103へ無線電波にして送信し、さらに、携帯電話機103から受信した無線電波を電話局105に対して送信する。電話局105は、携帯電話機103と負荷分散装置101aとサーバ101b〜101nとの間でデータ通信をおこなう際の回線交換をおこなう。   The terminal device 102 is an information terminal device such as a personal computer, and is used by individuals and companies. The mobile phone 103 can be connected to at least the Internet, such as “i-mode (registered trademark)” of NTT Docomo or “ezweb (registered trademark)” of au, and can be connected to a browser or Java (registered). This is a mobile phone having an information communication function for accessing the network 100 using a trademark application. The radio base station 104 transmits the communication data received from the telephone station 105 as a radio wave to the mobile phone 103, and further transmits the radio wave received from the mobile phone 103 to the telephone station 105. The telephone station 105 performs line switching when data communication is performed among the mobile phone 103, the load balancer 101a, and the servers 101b to 101n.

携帯電話機103に対するシステムは、携帯電話機の代わりに無線LANアダプタを装着/内蔵したノートPCやPDAとし、携帯電話の無線基地局104の代わりに無線LANの基地局とした場合、いわゆるホットスポットサービスのためのシステムと読み代えることもでき、同様に本発明が有効に動作する形態である。   The system for the mobile phone 103 is a notebook PC or PDA with a wireless LAN adapter mounted / built-in instead of the mobile phone, and a wireless LAN base station instead of the mobile phone wireless base station 104. This is a mode in which the present invention operates effectively.

また、負荷分散装置101aと、サーバ101b〜101nと、端末装置102あるいは携帯電話機103との間でおこなうネットワーク100を介した通信においては、SSL方式等を利用したセキュリティ機能や、暗号化技術等を用い、秘密保持を確保するようにするとよい。   Further, in communication via the network 100 performed between the load balancer 101a, the servers 101b to 101n, and the terminal device 102 or the mobile phone 103, a security function using an SSL method or the like, an encryption technique, etc. Use it to ensure confidentiality.

(ハードウエア構成)
つぎに、この発明の本実施の形態にかかる端末装置およびサーバのハードウエア構成について説明する。図2は、この発明の本実施の形態にかかるサーバ・クライアント・システムの負荷分散装置および端末装置およびサーバのハードウエア構成を示すブロック図である。
(Hardware configuration)
Next, the hardware configuration of the terminal device and the server according to this embodiment of the present invention will be described. FIG. 2 is a block diagram showing a hardware configuration of the load distribution device, the terminal device, and the server of the server / client system according to the embodiment of the present invention.

図2において、端末装置102と負荷分散装置101aとサーバ101b〜101nとは、CPU201と、ROM202と、RAM203と、HDD(ハードディスクドライブ)204と、HD(ハードディスク)205と、FDD(フレキシブルディスクドライブ)206と、着脱可能な記録媒体の一例としてのFD(フレキシブルディスク)207と、ディスプレイ208と、ネットワークI/F(インタフェース)209と、キーボード210と、マウス211と、プリンタ212と、CD−ROMドライブ213と、着脱可能な記録媒体の一例としてのCD−ROM214と、スピーカ215とを備えている。また、各構成部はバス200によってそれぞれ接続されている。   In FIG. 2, a terminal device 102, a load balancer 101a, and servers 101b to 101n are a CPU 201, a ROM 202, a RAM 203, an HDD (hard disk drive) 204, an HD (hard disk) 205, and an FDD (flexible disk drive). 206, FD (flexible disk) 207 as an example of a removable recording medium, display 208, network I / F (interface) 209, keyboard 210, mouse 211, printer 212, and CD-ROM drive 213, a CD-ROM 214 as an example of a removable recording medium, and a speaker 215. Each component is connected by a bus 200.

ここで、CPU201は、端末装置102、負荷分散装置101a、サーバ101b〜101nのそれぞれの全体の制御を司る。ROM202は、基本入出力プログラムや、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。HDD204は、CPU201の制御にしたがってHD205に対するデータのリード/ライトを制御する。HD205は、HDD204の制御で書き込まれたデータを記憶する。   Here, the CPU 201 governs overall control of each of the terminal device 102, the load distribution device 101a, and the servers 101b to 101n. The ROM 202 stores programs such as a basic input / output program and a boot program. The RAM 203 is used as a work area for the CPU 201. The HDD 204 controls data read / write with respect to the HD 205 according to the control of the CPU 201. The HD 205 stores data written under the control of the HDD 204.

FDD206は、CPU201の制御にしたがってFD207に対するデータのリード/ライトを制御する。FD207は、FDD206の制御で書き込まれたデータを記憶する。着脱可能な記録媒体として、FD207の他、CD−RW、MO、DVD(Digital Versatile Disk)などであってもよい。ディスプレイ208は、カーソル、メニュー、あるいは文書、画像、機能情報などのデータに関するウインドウ(ブラウザ)を表示する。たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどである。   The FDD 206 controls reading / writing of data with respect to the FD 207 according to the control of the CPU 201. The FD 207 stores data written under the control of the FDD 206. As a removable recording medium, in addition to the FD 207, a CD-RW, MO, DVD (Digital Versatile Disk), or the like may be used. The display 208 displays a cursor (menu) or a window (browser) relating to data such as documents, images, and function information. For example, CRT, TFT liquid crystal display, plasma display and the like.

ネットワークI/F209は、ネットワーク100に接続され、このネットワーク100を介して端末装置102に接続される。そして、ネットワークI/F209は、ネットワーク100と内部とのインタフェースを司り、負荷分散装置101a、サーバ101b〜101n、端末装置102からのデータの入出力を制御する。ネットワークI/F209は、たとえば、モデムやLANアダプタなどである。   The network I / F 209 is connected to the network 100 and is connected to the terminal device 102 via the network 100. The network I / F 209 serves as an interface between the network 100 and the inside, and controls input / output of data from the load balancer 101a, the servers 101b to 101n, and the terminal device 102. The network I / F 209 is, for example, a modem or a LAN adapter.

キーボード210は、文字、数値、各種指示などの入力のためのキーを備え、データ入力をおこなう。マウス211は、カーソルの移動や範囲選択、あるいはウインドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様の機能を備えるものであれば、トラックボール、ジョイスティック、およびゲームパッドなどであってもよい。そして、プリンタ212は、文書データを印刷する。たとえば、レーザプリンタ、インクジェットプリンタなどである。CD−ROMドライブ213は、CPU201の制御にしたがってCD−ROM214に対するデータのリードを制御する。CD−ROM214は、着脱可能な記録媒体である。スピーカ215(ヘッドフォン、イヤフォンを含む)は、音声や音楽などを出力する。   The keyboard 210 includes keys for inputting characters, numerical values, various instructions, and the like, and performs data input. The mouse 211 performs cursor movement, range selection, window movement, size change, and the like. A track ball, a joystick, a game pad, or the like may be used as long as it has a similar function as a pointing device. The printer 212 prints document data. For example, a laser printer or an ink jet printer. The CD-ROM drive 213 controls reading of data from the CD-ROM 214 according to the control of the CPU 201. The CD-ROM 214 is a detachable recording medium. A speaker 215 (including headphones and earphones) outputs voice, music, and the like.

つぎに、この発明の本実施の形態にかかる携帯電話機のハードウエア構成について説明する。図3は、この発明の本実施の形態にかかるサーバ・クライアント・システムの携帯電話機のハードウエア構成を示すブロック図である。図3において、携帯電話機103は、CPU301と、ROM302と、RAM303と、ディスプレイ304と、操作キー305と、マイク306と、スピーカ307と、通信制御部308と、アンテナ309と、外部接続端子310と、外部記憶装置311とを備え、アンテナ309は無線基地局104と通信接続している。また、各構成部はバス300によってそれぞれ接続されている。   Next, a hardware configuration of the mobile phone according to the embodiment of the present invention will be described. FIG. 3 is a block diagram showing a hardware configuration of the cellular phone of the server client system according to the embodiment of the present invention. 3, the mobile phone 103 includes a CPU 301, a ROM 302, a RAM 303, a display 304, an operation key 305, a microphone 306, a speaker 307, a communication control unit 308, an antenna 309, and an external connection terminal 310. And an external storage device 311, and the antenna 309 is connected to the radio base station 104 for communication. Each component is connected by a bus 300.

ここで、CPU301は、携帯電話機103全体の制御を司る。ROM302は、基本入出力プログラムや、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。ディスプレイ304は、液晶ディスプレイであり、文書、画像、機能情報などのデータに関するウインドウ(ブラウザ)を表示する。操作キー305は、文字、数字、各種指示などを入力する。マイク306は、入力した音声を電気信号に変換する。スピーカ307は、入力した電気信号を音声に変換して出力する。通信制御部308は、アンテナ309を介して無線基地局104と電波の送受信をし、制御をおこなう。外部接続端子310は、フラッシュメモリなどの外部記憶装置311との接続口となる。   Here, the CPU 301 controls the entire mobile phone 103. The ROM 302 stores programs such as a basic input / output program and a boot program. The RAM 303 is used as a work area for the CPU 301. A display 304 is a liquid crystal display and displays a window (browser) related to data such as documents, images, and function information. The operation key 305 inputs characters, numbers, various instructions, and the like. The microphone 306 converts the input sound into an electrical signal. The speaker 307 converts the input electrical signal into sound and outputs it. The communication control unit 308 transmits and receives radio waves with the radio base station 104 via the antenna 309 and performs control. The external connection terminal 310 serves as a connection port with an external storage device 311 such as a flash memory.

(機能的構成)
つぎに、この発明の本実施の形態にかかるサーバ・クライアント・システムの機能的構成について説明する。図4は、この発明の本実施の形態にかかるサーバ・クライアント・システムの機能的構成を示すブロック図である。図4において、サーバ・クライアント・システムを構成する負荷分散装置101aは、プロセス情報受信部401と、決定部402と、サーバ情報送信部403とを備えており、さらに、決定部402には距離算出部404が含まれる。また、サーバ・クライアント・システムを構成するクライアント102は、プロセス情報送信部411と、サーバ情報受信部412と、プロセス要求送信部413とを備えている。
(Functional configuration)
Next, a functional configuration of the server / client system according to the embodiment of the present invention will be described. FIG. 4 is a block diagram showing a functional configuration of the server client system according to the embodiment of the present invention. In FIG. 4, the load distribution apparatus 101 a constituting the server / client system includes a process information receiving unit 401, a determining unit 402, and a server information transmitting unit 403, and the determining unit 402 further calculates a distance. A part 404 is included. The client 102 constituting the server / client system includes a process information transmission unit 411, a server information reception unit 412, and a process request transmission unit 413.

プロセス情報受信部401は、クライアント102からプロセスに関する情報をネットワーク100を介して受信する。また、決定部402は、プロセス情報受信部401によって受信されたプロセスに関する情報に基づいて、複数のプロセス処理サーバ101b〜101nの中からプロセスを処理させるサーバを決定する。ここで、距離算出部404は、リソースのパラメータを軸とした空間上において、プロセスのリソース消費量の、原点とパラメータの使用可能な最大容量を結ぶ直線との距離を算出する。そして、距離算出部404によって算出された距離に基づいて、プロセスを処理させるサーバを決定する。また、サーバ情報送信部403は、決定部402によって決定されたサーバに関する情報をクライアント102へ送信する。   The process information receiving unit 401 receives information about a process from the client 102 via the network 100. Further, the determination unit 402 determines a server to process a process from among the plurality of process processing servers 101b to 101n based on the information regarding the process received by the process information reception unit 401. Here, the distance calculation unit 404 calculates the distance of the resource consumption of the process between the origin and a straight line connecting the maximum usable capacity of the parameter in a space with the resource parameter as an axis. Then, based on the distance calculated by the distance calculation unit 404, a server for processing is determined. In addition, the server information transmission unit 403 transmits information regarding the server determined by the determination unit 402 to the client 102.

一方、プロセス情報送信部411は、プロセス要求をおこなう前に、プロセスに関する情報をネットワーク100を介して負荷分散装置101aに送信する。また、サーバ情報受信部412は、負荷分散装置101aのサーバ情報送信部403によって送信されたサーバに関する情報をネットワーク100を介して受信する。また、プロセス要求送信部413は、サーバ情報受信部412によって受信された情報にかかるサーバ、すなわち負荷分散装置101aの決定部402によって決定されたサーバ(プロセス処理サーバ101b〜101nのいずれか)へ、プロセス処理要求に関する情報を送信する。そうして、このプロセス要求に基づいて上記サーバが処理をおこない、処理結果をクライアント102へ送信することになる。   On the other hand, the process information transmission unit 411 transmits information on the process to the load distribution apparatus 101a via the network 100 before making a process request. Further, the server information receiving unit 412 receives information about the server transmitted by the server information transmitting unit 403 of the load distribution apparatus 101a via the network 100. In addition, the process request transmission unit 413 transmits information to the server received by the server information reception unit 412, that is, the server determined by the determination unit 402 of the load distribution apparatus 101a (any one of the process processing servers 101b to 101n). Send information about process processing requests. Then, the server performs processing based on this process request, and transmits the processing result to the client 102.

(負荷分散の処理手順)
つぎに、この発明の本実施の形態にかかる負荷分散装置101aを用いた負荷分散方法の処理手順の概要について説明する。図5は、この発明の本実施の形態にかかる負荷分散装置を用いた負荷分散方法の処理手順の概要を示す説明図である。図5において、負荷分散装置101aは、端末装置102a〜102nから要求されるプロセス(たとえば、オンラインゲームなどのゲームプロセス)の実行を負荷分散し、サーバ101b〜101nを割り当てる。
(Load balancing procedure)
Next, an outline of the processing procedure of the load distribution method using the load distribution apparatus 101a according to this embodiment of the present invention will be described. FIG. 5 is an explanatory diagram showing an outline of the processing procedure of the load distribution method using the load distribution apparatus according to this embodiment of the present invention. In FIG. 5, the load distribution apparatus 101 a distributes the load of execution of a process requested by the terminal apparatuses 102 a to 102 n (for example, a game process such as an online game) and allocates servers 101 b to 101 n.

端末装置102aを利用してオンラインゲームをおこなう場合、端末装置102aから負荷分散装置101aに対し、矢印501に示すゲームプロセス実行が要求される。プロセス実行が要求された負荷分散装置101aは、サーバ101b〜101nの中からゲームプロセスを実行させるためのゲームサーバを評価する。ゲームサーバの評価は、サーバ101b〜101nの各々が備えるリソースに基づいておこなわれる。そして、負荷分散装置101aによる評価の結果、矢印502に示すようにサーバ101bが負荷分散先として決定される。ゲームサーバが決定されると、負荷分散装置101aからゲームプロセス実行が要求され、サーバ101bにてゲームプロセスが実行される。これにより、端末装置102aからゲームの利用を開始することができる。   When playing an online game using the terminal device 102a, the terminal device 102a requests the load distribution device 101a to execute a game process indicated by an arrow 501. The load distribution apparatus 101a requested to execute the process evaluates a game server for executing the game process from the servers 101b to 101n. The game server is evaluated based on the resources provided in each of the servers 101b to 101n. As a result of the evaluation by the load distribution apparatus 101a, the server 101b is determined as the load distribution destination as indicated by an arrow 502. When the game server is determined, a game process execution is requested from the load balancer 101a, and the game process is executed in the server 101b. Thereby, the use of the game can be started from the terminal device 102a.

上述した通り、負荷分散装置101aは、端末装置102a〜102nからゲームプロセスが実行要求されることをきっかけとし、サーバ101b〜101nの中からこのゲームプロセスを実行する最適なものを選択する。また、上述したようなオンラインゲームに限らず、他のアプリケーションソフトウエアによるプロセスを実行させる際にも、負荷分散装置101aを用いて負荷分散させることができる。   As described above, the load distribution apparatus 101a selects an optimum one for executing this game process from the servers 101b to 101n, triggered by a request for execution of the game process from the terminal apparatuses 102a to 102n. Further, not only the online game as described above, but also when executing a process by other application software, the load can be distributed using the load distribution device 101a.

つぎに、この発明の本実施の形態にかかるサーバのリソース量とプロセスが消費するリソース量との関係について説明する。図6および図7は、この発明の本実施の形態にかかる理想的なプロセスの割り当ての一例を示す説明図である。図6において、サーバ101b〜101nのCPUの消費量をX座標、メモリの消費量をY座標として示している。このグラフは、サーバ101b〜101nで実行されるプロセスによって使われるリソースの消費傾向を表す。   Next, the relationship between the resource amount of the server and the resource amount consumed by the process according to this embodiment of the present invention will be described. 6 and 7 are explanatory diagrams showing an example of ideal process allocation according to the embodiment of the present invention. In FIG. 6, the CPU consumption of the servers 101b to 101n is shown as an X coordinate, and the memory consumption is shown as a Y coordinate. This graph represents a consumption trend of resources used by processes executed on the servers 101b to 101n.

図6に示すグラフの特徴は、サーバ101bが備えたものであるとして以下説明をおこなう。このグラフではCPU消費量の最大値である100%に当たる量を20という数値で表している。これは、後述する図7にて示すサーバ101cが備えるCPUの消費量との比を表す数値(サーバ101cのCPUの消費量は10とする)であり、サーバ101bはサーバ101cの2倍のCPUを消費できる性能を備えることを表す。   The characteristics of the graph shown in FIG. 6 will be described below assuming that the server 101b is provided. In this graph, the amount corresponding to 100%, which is the maximum value of CPU consumption, is represented by a numerical value of 20. This is a numerical value representing the ratio of the CPU consumption of the server 101c shown in FIG. 7 described later (the CPU consumption of the server 101c is 10), and the server 101b has twice the CPU of the server 101c. It represents having the performance that can be consumed.

つぎに、メモリ消費量の最大値である100%に当たる量を10という数値で表している。これは、CPUの場合と同様、後述する図7にて示すサーバ101cが備えるメモリの消費量との比を表す数値(図7ではメモリの消費量は20とする)であり、サーバ101bはサーバ101cの1/2倍のメモリを消費できる性能を備えることを表す。   Next, an amount corresponding to 100%, which is the maximum value of memory consumption, is represented by a numerical value of 10. As in the case of the CPU, this is a numerical value representing the ratio of the memory consumption of the server 101c shown in FIG. 7 described later (in FIG. 7, the memory consumption is 20). This means that it has a performance capable of consuming 1/2 times as much memory as 101c.

図6のグラフ内に示すプロセス601は、サーバ101b上で実行されるプロセスのCPUとメモリの消費量を表したものである。このプロセス601が実行されることによって占有されるCPUおよびメモリのそれぞれの消費量は、CPUが10とメモリが5となり、それぞれサーバ101bが備えるリソースの半分を占める。   A process 601 shown in the graph of FIG. 6 represents the CPU and memory consumption of a process executed on the server 101b. The CPU and memory consumed by executing this process 601 are 10 CPUs and 5 memory, respectively, and occupy half of the resources of the server 101b.

1つ目のプロセス601が起動された状態は、原点からCPUの消費量の10の位置とメモリの消費量の5の位置までの矩形として表すことができ、消費されるCPUとメモリの最大値は座標602として表される(以下、一つのプロセスによって消費されるCPUとメモリの最大値からなる座標を「消費リソース座標」という)。さらに、2つ目のプロセス601が実行されると、1つ目のプロセス601の座標602を開始点とし、階段状に表すことができる。この2つ目のプロセス601が割り当てられることにより、CPUとメモリの消費量がサーバ101bのそれぞれのリソースの最大値となり、この最大値を示す座標が座標603として表される。   The state in which the first process 601 is activated can be expressed as a rectangle from the origin to the position 10 of CPU consumption and the position of 5 memory consumption, and the maximum values of CPU and memory consumed. Is represented as coordinates 602 (hereinafter, the coordinates consisting of the maximum CPU and memory consumed by one process are referred to as “consumed resource coordinates”). Furthermore, when the second process 601 is executed, the coordinates can be expressed in a step shape with the coordinates 602 of the first process 601 as a starting point. By assigning the second process 601, the CPU and memory consumption become the maximum values of the respective resources of the server 101 b, and coordinates indicating the maximum values are represented as coordinates 603.

このように、プロセス601が2つ実行されると、サーバ101bにおけるCPUおよびメモリの消費量はともに最大値となり、他のプロセスを割り当てる残りのリソースがCPUとメモリともに無くなり、リソースが理想的に消費された状態となる。   As described above, when two processes 601 are executed, the CPU and memory consumption in the server 101b are both maximized, and the remaining resources for allocating other processes are eliminated in both the CPU and the memory, so that the resources are ideally consumed. It will be in the state.

また図7において、サーバ101b〜101nのCPUの消費量をX座標、メモリの消費量をY座標として示している。このグラフは、サーバ101b〜101nで実行されるプロセスによって使われるリソースの消費傾向を表すものである。   In FIG. 7, the CPU consumption of the servers 101b to 101n is shown as an X coordinate, and the memory consumption is shown as a Y coordinate. This graph represents a consumption trend of resources used by processes executed by the servers 101b to 101n.

図7に示すグラフの特徴は、サーバ101cが備えたものであるとして以下説明をおこなう。このグラフではCPU消費量の最大値である100%に当たる量を10という数値で表している。これは、前述した図6のサーバ101bが備えるCPUの消費可能な量の1/2倍を表し、サーバ101bのCPUの消費量の1/2倍のCPUを消費できる性能を備えることを表す。   The characteristics of the graph shown in FIG. 7 will be described below assuming that the server 101c is provided. In this graph, an amount corresponding to 100%, which is the maximum value of CPU consumption, is represented by a numerical value of 10. This represents ½ times the amount of CPU that can be consumed by the server 101b of FIG. 6 described above, and represents that the CPU 101 has a performance that can consume ½ times the amount of CPU consumed by the server 101b.

つぎに、メモリ消費量の最大値である100%に当たる量を20という数値で表している。これは、CPUの場合と同様、前述した図6のサーバ101bが備えるメモリの消費可能な量の2倍を表し、サーバ101bのメモリの消費量の2倍のメモリを消費できる性能を備えることを表す。   Next, an amount corresponding to 100%, which is the maximum value of the memory consumption, is represented by a numerical value of 20. As in the case of the CPU, this represents twice the amount of memory that can be consumed by the server 101b of FIG. 6 described above, and has the capability of consuming twice as much memory as the server 101b. To express.

図7のグラフ内に示すプロセス701は、サーバ101c上で実行されるプロセスのCPUとメモリの消費量を表したものである。このプロセス701が実行されることによって占有されるCPUおよびメモリのそれぞれの消費量は、CPUが5とメモリが10となり、それぞれサーバ101cが備えるリソースの半分を占める。   A process 701 shown in the graph of FIG. 7 represents the CPU and memory consumption of a process executed on the server 101c. The CPU and memory consumed by executing this process 701 are 5 for CPU and 10 for memory, respectively, and occupy half of the resources of the server 101c.

1つ目のプロセス701が起動された状態は、原点からCPUの消費量の5の位置とメモリの消費量の10の位置までの矩形として表すことができ、消費されるCPUとメモリの最大値は座標702として表される。さらに、2つ目のプロセス701が実行されると、1つ目のプロセス701の座標702を開始点とし、階段状に表すことができる。この2つ目のプロセス701が割り当てられることにより、CPUとメモリの消費量がサーバ101cのそれぞれのリソースの最大値となり、この最大値を示す座標が座標703として表される。   The state in which the first process 701 is activated can be represented as a rectangle from the origin to the position of 5 of CPU consumption and the position of 10 of memory consumption, and the maximum values of CPU and memory consumed. Is represented as coordinates 702. Furthermore, when the second process 701 is executed, the coordinates can be represented in a step shape with the coordinates 702 of the first process 701 as a starting point. By assigning the second process 701, the CPU and memory consumption become the maximum values of the respective resources of the server 101c, and coordinates indicating the maximum values are represented as coordinates 703.

このように、プロセス701が2つ実行されると、サーバ101cにおけるCPUおよびメモリの消費量はともに最大値となり、他のプロセスを割り当てる残りのリソースがCPUとメモリともに無くなり、リソースが理想的に消費された状態となる。   As described above, when two processes 701 are executed, the CPU and memory consumption in the server 101c are both maximized, and the remaining resources for allocating other processes are eliminated in both the CPU and the memory, and the resources are ideally consumed. It will be in the state.

つぎに、この発明の本実施の形態にかかるサーバにおける最適なリソース消費について説明する。図8〜図10は、本実施の形態にかかるサーバ・クライアント・システムのサーバにおける最適なリソース消費の一例を表す説明図である。図8において、CPUの消費量をX座標、メモリの消費量をY座標として示している。図8および後述する図9、図10では、サーバ101d〜101fのサーバがある場合、それぞれのサーバによって消費可能なリソースの量が異なることを示している。   Next, optimal resource consumption in the server according to the embodiment of the present invention will be described. 8 to 10 are explanatory diagrams showing an example of optimum resource consumption in the server of the server / client system according to the present embodiment. In FIG. 8, the CPU consumption is shown as an X coordinate, and the memory consumption is shown as a Y coordinate. 8 and FIGS. 9 and 10 to be described later indicate that when there are servers 101d to 101f, the amount of resources that can be consumed by each server is different.

まず、図8のグラフの特徴は、サーバ101dが備えたものとして説明をおこなう。このグラフでは、CPU消費量の最大値である100%に当たる量を最大値801にて表している。これは、後述する図9のCPU消費量の最大値の80%を表し、さらに、図10のCPU消費量の最大値の50%を表す。そして、メモリ消費量の最大値である100%に当たる量を最大値802として表している。これは、後述する図9のメモリの消費量の最大値と同じ量を表し、さらに、図10のメモリの消費量の最大値の2倍となる200%を表す。   First, the characteristics of the graph of FIG. 8 will be described assuming that the server 101d is provided. In this graph, an amount corresponding to 100%, which is the maximum value of CPU consumption, is represented by a maximum value 801. This represents 80% of the maximum value of CPU consumption in FIG. 9 described later, and further represents 50% of the maximum value of CPU consumption in FIG. An amount corresponding to 100%, which is the maximum value of memory consumption, is represented as a maximum value 802. This represents the same amount as the maximum value of the memory consumption of FIG. 9 described later, and further represents 200%, which is twice the maximum value of the memory consumption of FIG.

そして、図8のグラフに示すように、最初に起動されたプロセス803が原点の位置から記載され、プロセス803に続いて起動されるプロセスがプロセス804〜808まで時系列に階段状に記載されて、最終的にはCPU消費量の最大値801とメモリ消費量の最大値802との交点となる座標809に到達する。このことによって、サーバ101dはCPUとメモリが理想的に消費された状態となっている。   Then, as shown in the graph of FIG. 8, the process 803 that is started first is described from the position of the origin, and the processes that are started following the process 803 are described in a time-series manner from processes 804 to 808. Eventually, a coordinate 809 that is the intersection of the maximum value 801 of CPU consumption and the maximum value 802 of memory consumption is reached. Thus, the server 101d is in a state where the CPU and the memory are ideally consumed.

図9において、グラフは、CPUの消費量をX座標、メモリの消費量をY座標として示している。図9では図8と同様、サーバ101d〜101fのサーバがある場合、それぞれのサーバにより消費できるリソースの量に違いがあることを示している。   In FIG. 9, the graph shows the CPU consumption as the X coordinate and the memory consumption as the Y coordinate. FIG. 9 shows that when there are servers 101d to 101f as in FIG. 8, there is a difference in the amount of resources that can be consumed by each server.

図9に示すグラフの特徴は、サーバ101eが備えたものとして以下説明をおこなう。このグラフではCPU消費量の最大値である100%に当たる量を最大値901として表している。これは、前述した図8のCPU消費量の最大値の125%を表し、さらに、後述する図10のCPU消費量の最大値の62.5%を表す。   The characteristics of the graph shown in FIG. 9 will be described below assuming that the server 101e is provided. In this graph, an amount corresponding to 100%, which is the maximum value of CPU consumption, is represented as a maximum value 901. This represents 125% of the maximum value of CPU consumption in FIG. 8 described above, and further represents 62.5% of the maximum value of CPU consumption in FIG. 10 described later.

つぎに、メモリ消費量の最大値である100%に当たる量を最大値902として表している。これは、前述した図8のメモリの消費量の最大値と同じ量を表し、さらに、後述する図10のメモリの消費量の最大値の2倍となる。   Next, an amount corresponding to 100%, which is the maximum value of memory consumption, is represented as a maximum value 902. This represents the same amount as the maximum value of the memory consumption of FIG. 8 described above, and is twice the maximum value of the memory consumption of FIG. 10 described later.

そして、図9のグラフに示すように、最初に起動されたプロセス903が原点の位置から記載され、プロセス903に続いて起動されるプロセスがプロセス904〜908まで時系列に階段状に記載されていき、最終的にはCPU消費量の最大値901とメモリ消費量の最大値902との交点となる座標909に到達する。このことにより、サーバ101eはCPUとメモリが理想的に消費された状態となっている。   Then, as shown in the graph of FIG. 9, the process 903 that is started first is described from the position of the origin, and the processes that are started following the process 903 are described in a time-series manner from processes 904 to 908. Eventually, a coordinate 909 that is the intersection of the maximum CPU consumption value 901 and the maximum memory consumption value 902 is reached. Thus, the server 101e is in a state where the CPU and the memory are ideally consumed.

図10において、CPUの消費量をX座標、メモリの消費量をY座標として示している。図10では図8、図9と同様、サーバ101d〜101fのサーバがある場合、それぞれのサーバにより消費できるリソースの量に違いがあることを示している。   In FIG. 10, the CPU consumption is shown as an X coordinate, and the memory consumption is shown as a Y coordinate. FIG. 10 shows that when there are servers 101d to 101f as in FIGS. 8 and 9, there is a difference in the amount of resources that can be consumed by each server.

図10に示すグラフの特徴は、サーバ101fが備えたものとして以下説明をおこなう。このグラフではCPU消費量の最大値である100%に当たる量を最大値1001として表している。これは、前述した図8のCPU消費量の最大値の200%を表し、さらに、図9のCPU消費量の最大値の160%を表す。そして、メモリ消費量の最大値である100%に当たる量を最大値1002として示し、この最大値1002は、前述した図8および図9のメモリの消費量の最大値の50%となっている。   The characteristics of the graph shown in FIG. 10 will be described below assuming that the server 101f is provided. In this graph, an amount corresponding to 100%, which is the maximum value of CPU consumption, is represented as a maximum value 1001. This represents 200% of the maximum value of CPU consumption in FIG. 8 described above, and further represents 160% of the maximum value of CPU consumption in FIG. An amount corresponding to 100%, which is the maximum value of the memory consumption, is shown as a maximum value 1002, and this maximum value 1002 is 50% of the maximum value of the memory consumption of FIGS. 8 and 9 described above.

そして、図10のグラフに示すように、最初に起動されたプロセス1003が原点の位置から記載され、プロセス1003に続いて起動されるプロセスがプロセス1004〜1008まで時系列に階段状に記載されていき、最終的にはCPU消費量の最大値1001とメモリ消費量の最大値1002との交点となる座標1009に到達する。このことにより、サーバ101fはCPUとメモリが理想的に消費された状態となっている。   Then, as shown in the graph of FIG. 10, the process 1003 that is started first is described from the position of the origin, and the processes that are started following the process 1003 are described in a time series from process 1004 to 1008. Eventually, a coordinate 1009 that is the intersection of the maximum CPU consumption value 1001 and the maximum memory consumption value 1002 is reached. As a result, the server 101f is in a state where the CPU and the memory are ideally consumed.

つぎに、この発明の本実施の形態にかかるサーバのリソース消費例について説明する。図11は、この発明の本実施の形態にかかるサーバのリソース消費例を示す説明図である。図11において、X座標上のXmaxは、CPU消費量の最大値となる100%が示され、Y座標上のYmaxは、メモリ消費量の最大値となる100%が示されている。   Next, an example of server resource consumption according to this embodiment of the present invention will be described. FIG. 11 is an explanatory diagram showing an example of resource consumption of the server according to this embodiment of the present invention. In FIG. 11, Xmax on the X coordinate indicates 100%, which is the maximum value of CPU consumption, and Ymax on the Y coordinate indicates 100%, which is the maximum value of memory consumption.

折れ線1101は、CPUおよびメモリのリソースを各プロセスの発生ごとに割り当て、最終的にCPU消費量の最大値であるXmaxと、メモリ消費量の最大値であるYmaxとの交点の座標1102に到達した例を示す。これにより、折れ線1101が、CPUとメモリの消費量に無駄が無いプロセスの割り当てがおこなわれた場合のグラフであることを示し、リソースが理想的に消費された結果を表している。   A broken line 1101 allocates CPU and memory resources for each process, and finally reaches the coordinate 1102 of the intersection of the maximum value of CPU consumption Xmax and the maximum value of memory consumption Ymax. An example is shown. As a result, the broken line 1101 indicates a graph in the case where the process is allocated with no waste in CPU and memory consumption, and represents the result of ideal consumption of resources.

折れ線1103は、CPUおよびメモリのリソースを各プロセスの発生ごとに割り当てた結果、CPU消費量がその最大値であるXmaxに達する前にメモリ消費量が最大値であるYmaxに到達した例を示している。このことは、折れ線1103が、メモリの消費量に対してCPUの消費量に無駄ができた場合のグラフであることを示し、区間1105が示す量だけ使用可能なCPUが残ったことを示している。   A broken line 1103 shows an example in which the CPU consumption reaches the maximum value Ymax before the CPU consumption reaches the maximum value Xmax as a result of the allocation of CPU and memory resources for each process occurrence. Yes. This indicates that the broken line 1103 is a graph when the CPU consumption is wasted relative to the memory consumption, and that there is a usable CPU remaining in the amount indicated by the section 1105. Yes.

折れ線1106は、CPUおよびメモリのリソースを各プロセスの発生ごとに割り当てた結果、メモリ消費量がその最大値であるYmaxに達する前にCPU消費量が最大値であるXmaxに到達した例を示している。このことは、折れ線1106が、CPUの消費量に対してメモリの消費量に無駄ができた場合のグラフであることを示し、区間1108が示す量だけ使用可能なメモリが残ったことを示している。   A polygonal line 1106 shows an example in which the CPU consumption reaches the maximum value Xmax before the memory consumption reaches the maximum value Ymax as a result of allocating CPU and memory resources for each process occurrence. Yes. This indicates that the broken line 1106 is a graph when the memory consumption is wasted relative to the CPU consumption, and that the usable memory remains in the amount indicated by the section 1108. Yes.

従来の負荷分散装置によるプロセスの割り当て方は、サーバのリソース消費量を判断せずに負荷分散をおこなうため、前述した折れ線1103,1106にて示したような、リソースが均等に消費されない状態となるのが通常である。これに対してリソースであるCPUとメモリとが均等に消費されるようなプロセスの割り当てがおこなわれると、折れ線1101のように、消費されない無駄なリソースが残ることを防止することができる。   In the conventional process of assigning processes by the load balancer, load distribution is performed without determining the resource consumption of the server, so that the resources are not consumed evenly as indicated by the above-mentioned broken lines 1103 and 1106. It is normal. On the other hand, if a process is allocated such that the CPU and memory as resources are evenly consumed, it is possible to prevent useless resources that are not consumed, such as the broken line 1101, from remaining.

(サーバの評価方法)
つぎに、この発明の本実施の形態にかかる負荷分散装置によるサーバの評価方法について説明する。図12は、この発明の本実施の形態にかかる負荷分散装置によるサーバの評価方法の概要を示す説明図である。図12において、グラフ1202,1203は、CPUの消費量をX座標、メモリの消費量をY座標として示している。以下、グラフ1202はサーバ101bのリソース消費の内容を示し、グラフ1203はサーバ101cのリソース消費の内容を示すものである。
(Server evaluation method)
Next, a server evaluation method by the load distribution apparatus according to this embodiment of the present invention will be described. FIG. 12 is an explanatory diagram showing an outline of a server evaluation method by the load distribution apparatus according to the embodiment of the present invention. In FIG. 12, graphs 1202 and 1203 indicate the CPU consumption as an X coordinate and the memory consumption as a Y coordinate. Hereinafter, the graph 1202 shows the content of resource consumption of the server 101b, and the graph 1203 shows the content of resource consumption of the server 101c.

まず、グラフ1202はグラフ1203と比較して、CPU消費量の最大値が2倍とメモリ消費量の最大値が1/2倍のリソースを備えたサーバの特性を示している。グラフ1202にはプロセス1204,1205が既に割り当てられ実行されている。一方、グラフ1203はグラフ1202と比較してCPU消費量の最大値が1/2倍とメモリ消費量の最大値が2倍のリソースを備えたサーバの特性を示している。グラフ1203にはプロセス1210,1211が既に割り当てられ実行されている。以下では、プロセス1201の実行要求が発生した場合、プロセス1201を、グラフ1202またはグラフ1203のいずれの特性を備えたサーバに負荷分散すると最適にリソースが消費されるかを判断する方法を説明する。   First, a graph 1202 shows the characteristics of a server having resources whose maximum CPU consumption is twice and whose maximum memory consumption is 1/2 times that of the graph 1203. Processes 1204 and 1205 are already assigned to the graph 1202 and executed. On the other hand, a graph 1203 shows the characteristics of a server provided with a resource whose maximum CPU consumption is ½ times and whose maximum memory consumption is twice that of the graph 1202. Processes 1210 and 1211 are already assigned to the graph 1203 and executed. The following describes a method for determining whether resources are optimally consumed when a load is distributed to a server having any of the characteristics of the graph 1202 and the graph 1203 when the execution request of the process 1201 occurs.

グラフ1203にてプロセス1201を実行させた場合、プロセス1211の頂点1211aからプロセス1201分のリソース消費量が加わることにより、消費されるリソース全体を表す座標(消費リソース座標)は座標1215となる。そして、CPUおよびメモリの消費量の最大値との交点の座標1213と原点とを結んだ直線をリソース消費最適線1212(以下、CPUおよびメモリの消費量の最大値からなる交点の座標と、原点とを結んだ直線をリソース消費最適線と呼ぶ)とし、座標1215からこのリソース消費最適線1212に対して垂線1214を引く。   When the process 1201 is executed in the graph 1203, the coordinates (consumed resource coordinates) representing the entire consumed resource become coordinates 1215 by adding the resource consumption for the process 1201 from the vertex 1211 a of the process 1211. Then, a straight line connecting the origin and the coordinates 1213 of the intersection with the maximum value of CPU and memory consumption is the resource consumption optimum line 1212 (hereinafter, the coordinates of the intersection of the maximum value of CPU and memory consumption and the origin A perpendicular line 1214 is drawn from the coordinate 1215 to the resource consumption optimal line 1212.

一方、グラフ1202にてプロセス1201を実行させた場合、プロセス1205の頂点1205aからプロセス1201分のリソース消費量が加わることにより、消費されるリソース全体を表す座標(消費リソース座標)は座標1209となる。そして、CPUおよびメモリの消費量の最大値との交点の座標1207と原点とを結んだ直線をリソース消費最適線1206とし、座標1209からこのリソース消費最適線1206に対して垂線1208を引く。   On the other hand, when the process 1201 is executed in the graph 1202, the resource consumption amount for the process 1201 is added from the vertex 1205 a of the process 1205, so that coordinates (consumed resource coordinates) representing the entire consumed resource are coordinates 1209. . A straight line connecting the coordinates 1207 and the origin of the intersection with the maximum values of CPU and memory consumption is defined as a resource consumption optimum line 1206, and a perpendicular line 1208 is drawn from the coordinates 1209 to the resource consumption optimum line 1206.

そして、垂線1208と、垂線1214との長さを比較すると、垂線1208の長さの方が短くなることが示される。このことは、プロセス1201を、サーバ101cにて実行させるより、サーバ101bにて実行させた方が、サーバ101bのリソースであるメモリの消費量とCPUの消費量のバランスが均等に近くなることを示している。よって、プロセス1201を実行させるサーバとして、グラフ1203の特性を備えたサーバ101cが選択されず、グラフ1202の特性を備えたサーバ101bが選択される。サーバ101bにてプロセス1201が実行されると、リソースが最適に消費されることになる。   Then, comparing the lengths of the vertical line 1208 and the vertical line 1214, it is shown that the length of the vertical line 1208 is shorter. This means that when the process 1201 is executed by the server 101b rather than being executed by the server 101c, the balance between the memory consumption and the CPU consumption, which are resources of the server 101b, is evenly close. Show. Therefore, the server 101c having the characteristics of the graph 1203 is not selected as the server for executing the process 1201, and the server 101b having the characteristics of the graph 1202 is selected. When the process 1201 is executed in the server 101b, resources are optimally consumed.

このとき、垂線1208と1214の長さが等しく、どちらのサーバが選択された場合も同様にリソースがより適切に消費されると判断できる場合も存在し得る。このような場合には、消費リソース座標1209、1215と原点との距離1216と1217を比較し、その長さの短いサーバを割り当てる。このようにすることで、リソース消費最適線との距離が同様のサーバが存在した場合によりリソース消費量が小さいサーバを割り当てることが可能となる。加えて、リソース消費量とリソース消費最適線からの距離の両方を同時に加味したい場合は垂線(1208、1214)と原点との距離(1216、1217)を乗じた面積(1208×1216、1214×1217)がより小さい値を持つサーバを選択することによって実現できる。   At this time, there may be a case where the lengths of the vertical lines 1208 and 1214 are equal and it can be determined that the resource is consumed more appropriately in the same way when either server is selected. In such a case, the distances 1216 and 1217 between the consumption resource coordinates 1209 and 1215 and the origin are compared, and a server having a shorter length is assigned. By doing so, it is possible to assign a server with a small resource consumption amount when there is a server having a similar distance to the resource consumption optimum line. In addition, when both the resource consumption amount and the distance from the resource consumption optimum line are to be considered at the same time, the area (1208 × 1216, 1214 × 1217) multiplied by the distance (1216, 1217) between the vertical line (1208, 1214) and the origin is used. ) Can be realized by selecting a server having a smaller value.

つぎに、この発明の本実施の形態にかかる割り当てサーバの評価方法の関数について説明する。図13は、この発明の本実施の形態にかかる割り当てサーバの評価方法の関数の一例を示す説明図である。図13において、X座標上のXmaxは、CPU消費量の最大値となる100%が表され、Y座標上のYmaxは、メモリ消費量の最大値となる100%が表されている。そして、リソースのパラメータを軸とした空間上で原点とパラメータの使用可能な最大容量、すなわちXmaxとYmaxとの交点の座標を(xmax,ymax)とし、(xmax,ymax)と原点(0,0)とを結んだ直線をリソース消費最適線1301とする。なお、図13に示すグラフの特徴は、サーバ101bが備えたものとして以下説明をおこなう。   Next, functions of the allocation server evaluation method according to the embodiment of the present invention will be described. FIG. 13 is an explanatory diagram showing an example of a function of the allocation server evaluation method according to the embodiment of the present invention. In FIG. 13, Xmax on the X coordinate represents 100%, which is the maximum value of CPU consumption, and Ymax on the Y coordinate represents 100%, which is the maximum value of memory consumption. Then, in the space with the resource parameter as an axis, the maximum capacity that can be used for the origin and the parameter, that is, the coordinate of the intersection of Xmax and Ymax is (xmax, ymax), and (xmax, ymax) and the origin (0, 0). ) Is a resource consumption optimum line 1301. The characteristics of the graph shown in FIG. 13 will be described below assuming that the server 101b is provided.

まず、1つ目に実行中のプロセス1302は、プロセス1302によって消費されるメモリの消費量とCPUの消費量とを縦横の各辺の長さとした原点からの矩形として示される。これは、各プロセスが消費するリソースを表す矩形としたものである。このプロセス1302によって表される矩形の原点からの対角の頂点は座標1302aとして示される。   First, the process 1302 being executed first is shown as a rectangle from the origin where the memory consumption and the CPU consumption consumed by the process 1302 are the lengths of the sides. This is a rectangle representing the resources consumed by each process. The diagonal vertices from the origin of the rectangle represented by this process 1302 are shown as coordinates 1302a.

実行中の2つ目のプロセス1303は、座標1302aを開始点とし、プロセス1303によって消費されるメモリの消費量とCPUの消費量とを縦横の各辺の長さとした矩形として示すことができる。この矩形の開始点である座標1302aからの対角の頂点は座標1303aとして示される。   The second process 1303 being executed can be shown as a rectangle with the coordinates 1302a as the starting point and the memory consumption and CPU consumption consumed by the process 1303 as the length of each side. The diagonal vertex from the coordinate 1302a which is the starting point of this rectangle is shown as a coordinate 1303a.

そして、新たに割り当てる3つ目のプロセスが、プロセス1304である場合、座標1303aを開始点とし、CPUの使用量をcx、メモリの使用量をcyとした矩形として図13のように示される。矩形の開始点である座標1303aの対角を示す頂点は座標1304aとして示される。
つぎに、座標1304aからリソース消費最適線1301に対して下ろす垂線1309の距離を求める。まず、図13のグラフ上に示されるxおよびyの位置の値は以下の式(1)、式(2)にて表される。
If the third process to be newly assigned is the process 1304, the process is shown as a rectangle having a coordinate 1303a as a starting point, a CPU usage amount cx, and a memory usage amount cy as shown in FIG. The vertex indicating the diagonal of the coordinate 1303a which is the start point of the rectangle is indicated as a coordinate 1304a.
Next, the distance of the perpendicular 1309 to be drawn from the coordinate 1304a to the resource consumption optimum line 1301 is obtained. First, the values of the x and y positions shown on the graph of FIG. 13 are expressed by the following formulas (1) and (2).

y=fxy(x)=(ymax/xmax)×x・・・(1)
x=fyx(y)=(xmax/ymax)×y・・・(2)
y = fxy (x) = (ymax / xmax) × x (1)
x = fyx (y) = (xmax / ymax) × y (2)

前述したように、1つ目のプロセス1302と2つ目のプロセス1303とが消費する消費リソース座標は座標1303aによって示されている。そして、3つ目のプロセスが消費する消費リソース座標は座標1304aとして示している。この座標1304aの座標は(x1,y1)=(x0+cx,y0+cy)として表される。   As described above, the consumed resource coordinates consumed by the first process 1302 and the second process 1303 are indicated by the coordinates 1303a. The consumption resource coordinates consumed by the third process are indicated as coordinates 1304a. The coordinates of this coordinate 1304a are expressed as (x1, y1) = (x0 + cx, y0 + cy).

一方、縦軸と並行な座標1304aを通る直線と、リソース消費最適線1301との交点を座標1305とする。また、横軸と並行な座標1304aを通る直線と、リソース消費最適線1301との交点を座標1306とする。座標1304aと座標1305とを結ぶ直線を直線1307とし、直線1307の長さは以下の式(3)にて与えられる。   On the other hand, an intersection of a straight line passing through the coordinate 1304a parallel to the vertical axis and the resource consumption optimal line 1301 is defined as a coordinate 1305. Further, an intersection of a straight line passing through the coordinate 1304 a parallel to the horizontal axis and the resource consumption optimal line 1301 is defined as a coordinate 1306. A straight line connecting the coordinate 1304a and the coordinate 1305 is a straight line 1307, and the length of the straight line 1307 is given by the following equation (3).

Δy=|fxy(x1)−y1|・・・(3)   Δy = | fxy (x1) −y1 | (3)

また、座標1304aと座標1306とを結ぶ直線を直線1308とし、直線1308の長さは以下の式(4)で与えられる。   A straight line connecting the coordinates 1304a and 1306 is a straight line 1308, and the length of the straight line 1308 is given by the following equation (4).

Δx=|fyx(y1)−x1|・・・(4)   Δx = | fyx (y1) −x1 | (4)

座標1304aからリソース消費最適線1301へ引く垂線を垂線1309とし、垂線1309の長さは以下の式(5)にて与えられる。   A perpendicular drawn from the coordinate 1304a to the resource consumption optimum line 1301 is a perpendicular 1309, and the length of the perpendicular 1309 is given by the following equation (5).

disxy=ΔxΔy/√(Δx2 + Δy2)・・・(5)   disxy = ΔxΔy / √ (Δx2 + Δy2) (5)

このdisxyが、座標1304aのリソース消費最適線1301からの距離であり、負荷分散装置101aが複数のサーバの中からプロセスを実行させるためのサーバを決定するときに評価する値となる。   This disxy is the distance from the resource consumption optimum line 1301 at the coordinate 1304a, and is a value to be evaluated when the load distribution apparatus 101a determines a server for executing a process from among a plurality of servers.

そして、つぎに、前述したCPUとメモリ以外にも他のパラメータを含むn次元関数の場合の消費リソース座標からリソース消費最適線への距離を求める式の説明をおこなう。まず、リソースとして用いるパラメータがn個(xi)(1≦i≦n)のn次ユークリッド空間上で求めることができるリソース消費最適線は、2次元の場合を用いて以下の式(6)にて表される(1≦i≦n)。   Next, an expression for obtaining the distance from the resource consumption coordinate to the resource consumption optimum line in the case of an n-dimensional function including other parameters besides the CPU and memory described above will be described. First, a resource consumption optimum line that can be obtained on an n-order Euclidean space with n (xi) (1 ≦ i ≦ n) parameters used as resources is expressed by the following equation (6) using a two-dimensional case. (1 ≦ i ≦ n).

xi+1=fxi x(i+1)mod n(xi)=(x(i+1)mod n max/xi max)×xi
・・・(6)
xi + 1 = fxi x (i + 1) mod n (xi) = (x (i + 1) mod n max / xi max) × xi
... (6)

現在のサーバのリソースの消費量を(xi0)(1≦i≦n)、プロセスのリソースの使用量を(ci)(1≦i≦n)としたとき、   When the current server resource consumption is (xi0) (1 ≦ i ≦ n) and the process resource usage is (ci) (1 ≦ i ≦ n),

xi1=xi0+ci・・・(7)   xi1 = xi0 + ci (7)

このとき、式(8)を、   At this time, Equation (8) is

Δx(i+1)mod n=|fxi x(i+1)mod n(xi1)−x(i+1)mod n 1|
・・・(8)
Δx (i + 1) mod n = | fxi x (i + 1) mod n (xi 1) −x (i + 1) mod n 1 |
... (8)

とし(1≦i≦n)、n次元ユークリッド空間上での点(xi1)(1≦i≦n)とリソース消費最適線1301との距離は以下の式(9)のように表記できる。 (1 ≦ i ≦ n), and the distance between the point (xi1) (1 ≦ i ≦ n) on the n-dimensional Euclidean space and the resource consumption optimal line 1301 can be expressed as the following equation (9).

Figure 2007200349
Figure 2007200349

したがって、負荷分散装置101aは、負荷分散の対象となるサーバ101b〜101nのそれぞれの式(5)あるいは式(9)にて示される距離(dis)を算出し、その距離が最も短いサーバに対してプロセスの実行処理を割り当てる。   Therefore, the load balancer 101a calculates the distances (dis) indicated by the respective equations (5) or (9) of the servers 101b to 101n to be load-balanced, and the server with the shortest distance is calculated. Assign process execution.

また、n次元ユークリッド空間上での点(xi1)(1≦i≦n)と原点との距離1310は式(10)のように表記できる。   In addition, the distance 1310 between the point (xi1) (1 ≦ i ≦ n) and the origin on the n-dimensional Euclidean space can be expressed as in Expression (10).

Figure 2007200349
Figure 2007200349

したがって垂線の長さdisが等しいサーバの中から1つを選択する場合にはdiagの値が小さいものを選択し、プロセスの実行処理を割り当てる。さらに垂線の長さdisと原点との距離diagを同時に評価したい場合にはdis×diagの値が最も小さいサーバに対して処理を割り当てる。   Therefore, when one server is selected from the servers having the same vertical line length dis, the server having the smaller diag value is selected and the process execution process is assigned. Furthermore, when it is desired to simultaneously evaluate the length dis of the perpendicular line and the distance diag between the origin, processing is assigned to the server having the smallest value of dis × diag.

なお、前述したCPUとメモリ以外のリソースとは、たとえば、GPUやビデオメモリ、ネットワークインターフェースカードなどである。GPUは、3Dグラフィックを利用するゲームにてレンダリングやジオメトリ演算をハードウエアにておこなうためのグラフィックチップである。また、ビデオメモリは、GPUが画像処理の演算をおこなう際に使用するGPU内に備えるメモリである。また、ネットワークインターフェースカードは、例えばイーサネット(登録商標)アダプタであり、100Base、1000Base−TX等を終端するものである。   The above-mentioned resources other than the CPU and memory are, for example, a GPU, a video memory, a network interface card, and the like. The GPU is a graphic chip for performing rendering and geometry calculation by hardware in a game using 3D graphics. The video memory is a memory provided in the GPU used when the GPU performs image processing calculations. The network interface card is an Ethernet (registered trademark) adapter, for example, and terminates 100Base, 1000Base-TX, and the like.

つぎに、この発明の本実施の形態にかかる負荷分散装置によるサーバの評価および決定の処理の内容について説明する。図14は、この発明の本実施の形態にかかる負荷分散装置によるサーバの評価および決定の処理手順の一例を示すフローチャートである。図14のフローチャートにおいて、まず、負荷分散装置101aがサーバ101b〜101nを評価するときに用いるパラメータを設定する(ステップS1401)。パラメータは、たとえば、CPUの消費量や、メモリの消費量や、GPUの消費量や、GPUの備えるビデオメモリの消費量や、ネットワークインターフェースカードの帯域消費量などである。   Next, the contents of server evaluation and determination processing by the load balancer according to the embodiment of the present invention will be described. FIG. 14 is a flowchart showing an example of a server evaluation and determination processing procedure by the load distribution apparatus according to the embodiment of the present invention. In the flowchart of FIG. 14, first, parameters used when the load distribution apparatus 101a evaluates the servers 101b to 101n are set (step S1401). The parameters are, for example, CPU consumption, memory consumption, GPU consumption, video memory consumption of the GPU, bandwidth consumption of the network interface card, and the like.

つぎに、複数のプロセスの実行時にそれぞれが使用するリソースの使用量を、各パラメータごとに定義して設定する(ステップS1402)。そして、サーバ101b〜101nごとに、ステップS1402にて定義したパラメータであるリソースの最大値の設定をおこなう(ステップS1403)。   Next, the usage amount of the resource used by each of the plurality of processes is defined and set for each parameter (step S1402). Then, for each of the servers 101b to 101n, the maximum resource value that is the parameter defined in step S1402 is set (step S1403).

つぎに、ステップS1401にて設定した各パラメータのリソース消費量について、サーバ101b〜101nごとに取得し、監視する(ステップS1404)。クライアントである端末装置102や携帯電話機103からプロセス実行の要求が有ったか否かを判断する(ステップS1405)。プロセス実行の要求が無かった場合(ステップS1405:No)にはステップS1404に戻り、サーバ101b〜101nの各サーバごとに消費されたリソースの消費量を監視する(ステップS1404)処理を引き続きおこなう。   Next, the resource consumption of each parameter set in step S1401 is acquired and monitored for each of the servers 101b to 101n (step S1404). It is determined whether or not there is a process execution request from the terminal device 102 or the mobile phone 103 which is a client (step S1405). If there is no request for process execution (step S1405: No), the process returns to step S1404, and the consumption of resources consumed for each of the servers 101b to 101n is monitored (step S1404), and the process is continued.

一方、クライアントである端末装置102からプロセス実行の要求が有った場合(ステップS1405:Yes)には、このプロセスを実行するためのサーバの候補をサーバ101b〜101nの中から選択する(ステップS1406)。これは、ステップS1401にて設定したパラメータのいずれについてもその使用量が最大値を超えないサーバをサーバ101b〜101nの中から選択するものである。そして、ステップS1406にて選択された候補の中から、さらに、先述した図13の消費リソース座標1304aからリソース消費最適線1301に下ろす垂線1309の距離を求めることで評価をおこない、距離が一番短い、たとえば、サーバ101bを負荷分散先として決定する(ステップS1407)。   On the other hand, if there is a process execution request from the terminal device 102 that is a client (step S1405: Yes), server candidates for executing this process are selected from the servers 101b to 101n (step S1406). ). In this case, a server whose usage amount does not exceed the maximum value for any of the parameters set in step S1401 is selected from the servers 101b to 101n. Then, evaluation is performed by obtaining the distance of the perpendicular line 1309 drawn down from the resource consumption coordinate 1304a of FIG. 13 to the resource consumption optimum line 1301 from the candidates selected in step S1406, and the distance is the shortest. For example, the server 101b is determined as a load distribution destination (step S1407).

また、S1406のサーバ候補の選択では前述のように消費リソース座標1304aからのリソース消費最適線1301に下ろす垂線1309の長さに加え、消費リソース座標1304aと原点との距離1310を合わせて評価することができる。垂線1309の長さが等しいサーバが存在した場合には原点との距離1310が小さいサーバを選択することでよりリソース消費量の小さいサーバを選択できる。あるいは垂線1309の長さと原点との距離1310をかけ合わせた値の最も小さいサーバを選択することで、最適なリソース消費を実現し、かつリソース消費量が小さいサーバにプロセスを割り当てることができる。   Further, in the selection of server candidates in S1406, as described above, in addition to the length of the perpendicular 1309 drawn from the resource consumption coordinate 1304a to the resource consumption optimum line 1301, the distance 1310 between the resource consumption coordinate 1304a and the origin is evaluated together. Can do. When there are servers having the same length of the perpendicular line 1309, a server with a smaller resource consumption can be selected by selecting a server having a small distance 1310 from the origin. Alternatively, by selecting the server having the smallest value obtained by multiplying the length of the perpendicular line 1309 and the distance 1310 between the origin, it is possible to realize optimal resource consumption and to assign a process to a server having a small resource consumption.

負荷分散装置101aは、ステップS1407にて決定した負荷分散先のサーバ101bに対し、プロセスの実行要求をおこなう(ステップS1408)。そして、クライアントである端末装置102に対してプロセスが実行されたことを示すため、負荷分散先のサーバ101bにアクセスするための情報であるIPアドレスやサービスポート番号などの通知をおこなう(ステップS1409)。サーバ101bへアクセスするための情報を通知された端末装置102は、サーバ101bへ直接アクセスすることが可能となり、処理を終了する。   The load distribution apparatus 101a issues a process execution request to the load distribution destination server 101b determined in step S1407 (step S1408). Then, in order to indicate that the process has been executed to the terminal device 102 which is a client, notification of an IP address and a service port number which are information for accessing the load distribution destination server 101b is performed (step S1409). . The terminal device 102 notified of the information for accessing the server 101b can directly access the server 101b, and ends the process.

つぎに、この発明の本実施の形態にかかる負荷分散装置によるサーバの評価および決定の処理手順の内容について説明する。図15は、この発明の本実施の形態にかかる負荷分散装置によるサーバの評価および決定の処理手順の一例を示す概要図である。図15において、負荷分散装置101aは、端末装置102a〜102nから要求されるプロセスの実行を、サーバ101b〜101nに対して負荷分散することが示される。図15において、負荷分散装置101aは、以下の手順により処理をおこなう。   Next, the contents of the server evaluation and decision processing procedures by the load balancer according to the embodiment of the present invention will be described. FIG. 15 is a schematic diagram showing an example of a server evaluation and determination processing procedure by the load distribution apparatus according to the embodiment of the present invention. 15 shows that the load distribution apparatus 101a distributes the load of the processes requested from the terminal apparatuses 102a to 102n to the servers 101b to 101n. In FIG. 15, the load distribution apparatus 101a performs processing according to the following procedure.

(1)負荷分散をおこなう際の評価に用いるパラメータを設定する。
(2)各サーバにて実行されるプロセスが消費する各パラメータごとの使用量を定義し、設定する。この設定は、新しいプロセスが追加されるたびにおこなう。たとえば、CPU、メモリ、GPU、ビデオメモリ、の4つのパラメータを使用する場合、実行されるプロセスが3Dゲームであれば、CPUとメモリに加え、GPUとビデオメモリについてもリソースが消費される。また、実行されるプロセスが2Dゲームであれば、GPUとビデオメモリのリソースは消費されない。このようにプロセスの内容によって消費されるリソースは異なる。
(1) Set parameters used for evaluation when performing load distribution.
(2) Define and set the usage for each parameter consumed by the processes executed on each server. This is done every time a new process is added. For example, when four parameters of CPU, memory, GPU, and video memory are used, if the process to be executed is a 3D game, resources are consumed for the GPU and video memory in addition to the CPU and memory. If the process to be executed is a 2D game, GPU and video memory resources are not consumed. In this way, the resources consumed vary depending on the contents of the process.

(3)各サーバごとに備える各パラメータの最大値の設定をおこなう。この設定は、管理者などにより負荷分散装置101aに対し手作業にて設定してもよいし、あるいは、各サーバをネットワーク100を介して順にモニタリングし、設定値を取得させるようにしてもよい。また、ゲームや他のアプリケーションサーバなど、その使用目的に応じて多様なサーバ101b〜101nが設置される可能性があるため、個々のパラメータに最大容量を設定できるようにする。この処理は矢印1501aにて示される。   (3) The maximum value of each parameter provided for each server is set. This setting may be set manually by the administrator or the like with respect to the load distribution apparatus 101a, or each server may be sequentially monitored via the network 100 to obtain a setting value. In addition, since various servers 101b to 101n such as games and other application servers may be installed depending on the purpose of use, the maximum capacity can be set for each parameter. This process is indicated by an arrow 1501a.

(4)パラメータとして設定したリソースについて、サーバ101b〜101nの各サーバごとに消費された量を監視する。この処理は、矢印1501aにて示されるもので、負荷分散装置101aからサーバ101b〜101nに対して順にモニタリングをおこない、消費量を取得する。   (4) With respect to the resources set as parameters, the amount consumed for each of the servers 101b to 101n is monitored. This process is indicated by an arrow 1501a, and monitoring is sequentially performed from the load balancer 101a to the servers 101b to 101n to acquire the consumption.

(5)クライアントである端末装置102aからプロセス実行の要求を受け付ける。それと同時に、受け付けたプロセスが使用する各リソースの量を取得する。この処理は矢印1502にて示される。   (5) A process execution request is received from the terminal device 102a, which is a client. At the same time, the amount of each resource used by the accepted process is acquired. This process is indicated by an arrow 1502.

(6)負荷分散装置101aは、プロセスを実行するためのサーバの候補をサーバ101b〜101nの中から選択する。実行要求を受け付けたプロセスが使用するリソースの消費量が、各サーバのリソースの最大値を超えていないかをチェックし、超えていないものを候補として選択する。   (6) The load distribution apparatus 101a selects server candidates for executing a process from the servers 101b to 101n. It is checked whether the consumption of resources used by the process that has accepted the execution request exceeds the maximum value of the resources of each server, and those that do not exceed are selected as candidates.

(7)負荷分散装置101aは、(6)で選択された候補の中から、さらに、先述した図13の消費リソース座標1304aからリソース消費最適線1301に下ろす垂線1309の距離あるいは消費リソース座標1304aと原点との距離1310を求めることで評価をおこない、垂線の長さが一番短い、あるいは垂線の長さが同じ場合は原点からの距離1310が短い、あるいは垂線の長さと原点からの距離を乗じた値が最も小さい、たとえば、サーバ101bを負荷分散先として決定する。   (7) The load balancer 101a further selects the distance of the perpendicular line 1309 or the consumption resource coordinates 1304a from the candidates selected in (6) to the resource consumption optimum line 1301 from the consumption resource coordinates 1304a of FIG. Evaluation is performed by obtaining the distance 1310 from the origin. If the length of the perpendicular is the shortest or the length of the perpendicular is the same, the distance 1310 from the origin is short, or the length of the perpendicular and the distance from the origin are multiplied. For example, the server 101b is determined as the load distribution destination.

(8)負荷分散装置101aは、ステップS1407にて決定した負荷分散先のサーバ101bに対し、プロセスの実行要求をおこなう。このとき、サーバ101bが実行要求を認証済みクライアントからのアクセスのみ受け付ける場合には、端末装置102aからID、IPアドレス、サービスポート番号、暗号化の鍵、トークンなどもサーバ101bへ送信する。この処理は、矢印1501aにて示される。   (8) The load distribution apparatus 101a issues a process execution request to the load distribution destination server 101b determined in step S1407. At this time, if the server 101b accepts only an execution request from an authenticated client, the terminal device 102a also transmits an ID, an IP address, a service port number, an encryption key, a token, and the like to the server 101b. This process is indicated by an arrow 1501a.

(9)クライアントである端末装置102aに対してプロセスが実行されたことを示すため、負荷分散先のサーバ101bの情報の通知をおこなう。この情報とは、端末装置102aがサーバ101bへアクセスするときに必要とする。たとえば、端末装置102aがサーバ101bへ直接アクセスする際には、サーバ101bのIPアドレス、ポート番号、認証・暗号化に関わる鍵やトークンを指す。この処理は、矢印1502にて示される。   (9) In order to indicate that the process has been executed to the terminal device 102a, which is a client, the information of the load distribution destination server 101b is notified. This information is necessary when the terminal device 102a accesses the server 101b. For example, when the terminal device 102a directly accesses the server 101b, it indicates the IP address, port number, authentication / encryption key or token of the server 101b. This process is indicated by an arrow 1502.

(10)サーバ101bへアクセスするための情報を通知された端末装置102aは、サーバ101bへアクセスすることが可能となる。(9)にて通知を受けた情報に基づき、端末装置102aからサーバ101bへアクセスすることが可能となる。サーバ101b側では、認証されたクライアントからのアクセスか否かをIPアドレスやIDやトークンなどが一致しているかによって確認する。暗号化鍵が受け渡しされている場合には通信が暗号化される。この処理は、矢印1503にて示される。   (10) The terminal device 102a notified of the information for accessing the server 101b can access the server 101b. Based on the information notified in (9), the terminal device 102a can access the server 101b. On the server 101b side, whether the access is from an authenticated client or not is confirmed based on whether the IP address, ID, token, etc. match. If the encryption key is delivered, the communication is encrypted. This process is indicated by an arrow 1503.

(プロセスの情報の内容)
つぎに、この発明の本実施の形態にかかる負荷分散装置が保持するプロセスの情報について説明する。図16は、この発明の本実施の形態にかかるプロセスの情報を保持するテーブルの一例を示す説明図である。図16において、プロセス情報テーブル1600は、プロセスの情報を保持するためのデータ内容を格納しており、プロセスを一意に識別するためのIDと、プロセスの名称であるプロセス名と、プロセスが実行の際に使用するCPUの使用量と、プロセスが実行の際に使用するメモリの使用量との各項目からなる。
(Content of process information)
Next, process information held by the load balancer according to the embodiment of the present invention will be described. FIG. 16 is an explanatory diagram showing an example of a table holding process information according to the embodiment of the present invention. In FIG. 16, a process information table 1600 stores data contents for holding process information, an ID for uniquely identifying a process, a process name that is the name of the process, and a process executed by the process. Each item includes a CPU usage amount used at the time of execution and a memory usage amount used when the process is executed.

IDのデータ属性はテキスト型、あるいは数値だけで表すことができる場合には整数型などとする。プロセス名のデータ属性はテキスト型などとし、CPUの使用量と、メモリの使用量のデータ属性は、浮動小数点型などの属性として定義する。   The data attribute of the ID is a text type or an integer type if it can be expressed only by a numerical value. The data attribute of the process name is a text type, and the data attribute of the CPU usage and the memory usage is defined as an attribute such as a floating point type.

まず、IDが100のレコードが示すプロセスのデータ内容は、プロセス名がプロセス1、CPUの使用量が0.15、メモリの使用量が0.2である。つぎに、IDが110のレコードが示すプロセスのデータ内容は、プロセス名がプロセス2、CPUの使用量が0.2、メモリの使用量が0.4であり、CPUとメモリの使用量についてはIDが100の場合も同様である。これは、IDが100あるいは110のプロセスをそれぞれ実行した場合に、実行されたサーバにて消費されるCPUとメモリの消費量の値が、それぞれテーブルに登録されたCPUとメモリの使用量の数値分だけ増加することを示す。   First, the data content of the process indicated by the record whose ID is 100 is that the process name is process 1, the CPU usage is 0.15, and the memory usage is 0.2. Next, the data content of the process indicated by the record whose ID is 110 is that the process name is process 2, the CPU usage is 0.2, and the memory usage is 0.4. The same applies when the ID is 100. This is because when the process with ID 100 or 110 is executed, the CPU and memory consumption values consumed by the executed server are the CPU and memory usage values registered in the table, respectively. Indicates an increase by minutes.

負荷分散装置101aは、端末装置102からプロセスの実行の要求を受けると、プロセス情報テーブル1600のプロセス情報を利用し、負荷を分散するためのサーバを選択する。なお、分散するためのサーバ101b〜101nの数が少ない場合などは、上述したテーブルのようなデータベースを使ったテーブル管理をせず、テキストファイルなどによる参照用のファイルに記述しておく方が手間が少ない場合がある。そのような場合は、テーブル内容を必要に応じて参照用ファイルとして作成し、そのフォーマットも任意に決めることができるものとする。   When receiving a process execution request from the terminal apparatus 102, the load distribution apparatus 101a uses the process information in the process information table 1600 to select a server for distributing the load. When the number of servers 101b to 101n to be distributed is small, it is more time-consuming to describe in a reference file such as a text file without managing the table using the database such as the table described above. May be less. In such a case, it is assumed that the table contents are created as a reference file as necessary, and the format can be arbitrarily determined.

(テーブルの情報)
つぎに、この発明の本実施の形態にかかる負荷分散装置が保持するサーバ情報について説明する。図17は、この発明の本実施の形態にかかるサーバ・クライアント・システムのサーバの情報を保持するテーブルの一例を示す説明図である。図17において、サーバ情報テーブル1700は、サーバの情報を保持するためのデータを格納しており、サーバを一意に識別するための接続先サーバ名と、各サーバで使用中のCPUの使用率と、各サーバで使用中のメモリの使用率との各項目からなる。
(Table information)
Next, server information held by the load balancer according to the embodiment of the present invention will be described. FIG. 17 is an explanatory diagram showing an example of a table that holds server information of the server / client system according to the embodiment of the present invention. In FIG. 17, a server information table 1700 stores data for holding server information, and includes a connection destination server name for uniquely identifying a server, a usage rate of a CPU being used in each server, and the like. Each item includes the usage rate of the memory being used by each server.

接続先サーバ名のデータ属性はテキスト型、あるいは、数値だけで表される場合には整数型などとする。CPUの使用率およびメモリの使用率のデータ属性は、浮動小数点型とする。ここで、サーバ情報テーブル1700に示されるCPUあるいはメモリの使用率とは、サーバ101a,101b,101cのそれぞれで既に使用されているCPUあるいはメモリの割合を数値として表したものである。なお、サーバ101b,101c,101dにおけるCPUおよびメモリの使用率の最大値は1.0(=100%)とする。負荷分散装置101aは、これらの値を各サーバから定期的にモニタリングしてテーブルにセットしたり、あるいは、負荷分散をおこなう際に必要に応じて取得したりしてもよい。そして、以下では、図16に示したIDが100のプロセス1を、サーバ101b,101c,101dのいずれのサーバに負荷分散するかについての評価をおこなう。   The data attribute of the connection destination server name is a text type or an integer type if it is expressed only by a numerical value. The data attribute of the CPU usage rate and the memory usage rate is a floating point type. Here, the CPU or memory usage rate shown in the server information table 1700 is a numerical value representing the percentage of the CPU or memory already used in each of the servers 101a, 101b, and 101c. Note that the maximum values of the CPU and memory usage rates in the servers 101b, 101c, and 101d are 1.0 (= 100%). The load distribution apparatus 101a may periodically monitor these values from each server and set them in a table, or may acquire them as necessary when performing load distribution. In the following, an evaluation is performed on which of the servers 101b, 101c, and 101d the process 1 whose ID is 100 shown in FIG.

まず、サーバ情報テーブル1700の1段目に示す接続先サーバ名が101bのレコードは、既に使用されているCPUの使用率が0.9で、メモリの使用率は0.88である。このサーバ101bはCPUおよびメモリともに使用率が高く、図16に示したプロセス1のCPUの使用量およびメモリの使用量を加算すると、それぞれ最大値の1.0(=100%)を超えるため、既にプロセス1を実行させるためのリソースの空きが無いことが分かる。   First, the record of the connection destination server name 101b shown in the first row of the server information table 1700 has a CPU usage rate of 0.9 and a memory usage rate of 0.88. This server 101b has a high usage rate for both the CPU and memory, and adding the CPU usage and memory usage of process 1 shown in FIG. 16 exceeds the maximum value of 1.0 (= 100%). It can be seen that there is no available resource for executing the process 1.

2段目に示す接続サーバ名が101cのレコードは、CPUの使用率が0.5で、メモリの使用率が0.2である。このサーバ101cに、図16に示したプロセス1のCPUの使用量およびメモリの使用量を加算した場合、CPUの使用率が0.65、メモリの使用率が0.4となるため、ともに1.0(=100%)未満であり、プロセス1を実行させるためのリソースの空きがあることが分かる。   The record with the connection server name 101c shown in the second row has a CPU usage rate of 0.5 and a memory usage rate of 0.2. When the CPU usage and memory usage of process 1 shown in FIG. 16 are added to this server 101c, the CPU usage rate is 0.65 and the memory usage rate is 0.4. It is less than 0.0 (= 100%), and it can be seen that there is an available resource for executing the process 1.

3段目に示す接続サーバ名が101dのレコードは、CPUの使用率が0.3で、メモリの使用率が0.2である。このサーバ101dに、図16に示したプロセス1のCPUの使用量およびメモリの使用量を加算した場合、CPUの使用率が0.45、メモリの使用率が0.4となるため、ともに1.0(=100%)未満であり、プロセス1を実行させるためのリソースの空きがあることが分かる。   The connection server name 101d shown in the third row has a CPU usage rate of 0.3 and a memory usage rate of 0.2. When the CPU usage and memory usage of the process 1 shown in FIG. 16 are added to the server 101d, the CPU usage is 0.45 and the memory usage is 0.4. It is less than 0.0 (= 100%), and it can be seen that there is an available resource for executing the process 1.

さらに、式(5)を用いて、これらサーバ101cとサーバ101dの消費リソース座標からリソース消費最適線へ下ろす垂線の距離disをそれぞれ求めると、サーバ101cでの距離は約0.177となり、サーバ104cでの距離は約0.035となる。これにより、負荷分散装置101aは、距離の短いサーバ101dを最適なサーバとして選択し、割り当てる。   Further, using the equation (5), when the distances dis of the perpendiculars to the resource consumption optimal line from the consumption resource coordinates of the servers 101c and 101d are respectively determined, the distance at the server 101c is about 0.177, and the server 104c The distance at is about 0.035. Thereby, the load distribution apparatus 101a selects and assigns the server 101d having a short distance as the optimum server.

また、消費リソース座標と原点との距離diagについては、式(10)よりサーバ101cが約0.763、サーバ101dが約0.602となり、両者の積(dis×diag)の値はサーバ101cの場合約0.135、サーバ101dの場合約0.021となり、リソース消費最適線の長さ、消費リソース座標と原点との距離の両者を同時に考慮した場合でもサーバ101dを最適なサーバに選択し、割り当てる。   Further, the distance diag between the consumed resource coordinates and the origin is about 0.763 for the server 101c and about 0.602 for the server 101d according to the equation (10), and the product (dis × diag) of both is the value of the server 101c. In this case, it is about 0.135 in the case of the server 101d, and about 0.021 in the case of the server 101d. Even when both the length of the resource consumption optimum line and the distance between the consumed resource coordinates and the origin are considered at the same time, assign.

なお、負荷を分散するためのサーバが、サーバ101b,101c,101dといった数が少ない場合には、上述のようなデータベースを使ったテーブル管理をせず、テキストファイルなどによる参照用のファイルに記述し、更新させる方が手間が少ない場合がある。そのような場合は、図17に示したテーブル内容を必要に応じてテキストファイルとして書き出してもよく、そのフォーマットは任意に決めて作成してよいものとする。また、図示していないが、上述したCPUやメモリの使用率だけでなく、各サーバにアクセスするためのIPアドレスやポート番号などの項目も必要に応じてセットしてもよい。   If there are a small number of servers 101b, 101c, and 101d for distributing the load, the table management using the database as described above is not performed, and the file is described in a reference file such as a text file. In some cases, it is less time-consuming to update. In such a case, the contents of the table shown in FIG. 17 may be written out as a text file as necessary, and the format may be arbitrarily determined and created. Although not shown, not only the CPU and memory usage rates described above, but also items such as an IP address and a port number for accessing each server may be set as necessary.

(サーバの地域分散の内容)
つぎに、この発明の本実施の形態にかかる地域ごとに管理されるサーバの負荷分散について説明する。図18は、この発明の本実施の形態にかかるサーバ・クライアント・システムのサーバの地域分散の一例を示す説明図である。図18において、地域Aには端末装置102aと、負荷分散装置1801aと、センタ1803に設置されるサーバ1803a〜1803nとが設置され、地域Bには端末装置102bと、負荷分散装置1801bと、センタ1804に設置されるサーバ1804a〜1804nとが設置され、店舗Cには端末装置102cと、負荷分散装置1801cと、センタ1805に設置されるサーバ1805a〜1805nとが設置される。これらにより、地域あるいは店舗ごとに分散された各装置を用いた複合的なサーバ・クライアント・システムの一例を示す。
(Contents of regional distribution of servers)
Next, load distribution of servers managed for each area according to the embodiment of the present invention will be described. FIG. 18 is an explanatory diagram showing an example of regional distribution of servers in the server / client system according to the embodiment of the present invention. In FIG. 18, a terminal device 102a, a load distribution device 1801a, and servers 1803a to 1803n installed in a center 1803 are installed in a region A, and a terminal device 102b, a load distribution device 1801b, and a center are installed in a region B. Servers 1804a to 1804n installed in 1804 are installed, and terminal C 102c, load balancer 1801c, and servers 1805a to 1805n installed in the center 1805 are installed in the store C. Thus, an example of a complex server-client system using each device distributed in each region or store is shown.

地域Aに設置される端末装置102aからのプロセス実行要求の流れを示すlineA1は、ユーザナビゲーション1802によりlineA2を通じて負荷分散装置1801aに送信される。ここで、ユーザナビゲーション1802とは、クライアントのIPアドレスから地域を判別してルーティングしたり、ローカルのDNSサーバのアドレスから各地域を判別してルーティングをおこなうシステムをいう。これにより、クライアントの各地域を特定し、クライアントに最も近い(ネットワーク的にデータ伝送の遅延が小さい)地域に設置されたサーバを優先的に割り当てることができる。そして、lineA2を通じて負荷分散装置1801aに送信されたプロセスの実行要求は、lineA3を通じて同じ地域Aに設置されるサーバ1803aに負荷分散し、プロセスの実行要求を送信する。   The line A1 indicating the flow of the process execution request from the terminal device 102a installed in the area A is transmitted to the load balancer 1801a through the line A2 by the user navigation 1802. Here, the user navigation 1802 refers to a system that performs routing by determining a region from the IP address of a client or by determining each region from the address of a local DNS server. As a result, each area of the client can be specified, and a server installed in an area closest to the client (data transmission delay is small) can be preferentially assigned. The process execution request transmitted to the load distribution apparatus 1801a through line A2 is distributed to the server 1803a installed in the same area A through line A3, and the process execution request is transmitted.

また、地域Bに設置される端末装置102bからのプロセス実行要求を示すlineB1は、ユーザナビゲーション1802によりlineB2を通じて負荷分散装置1801bに送信される。ここで、通常は地域B内に設置されたサーバ1804a〜1804nのいずれかにプロセスの実行要求が送信される。しかし、負荷分散装置1801aと負荷分散装置1801bとが、配下のサーバ群のリソース監視情報を交換するような仕組みとした場合、lineB3を通じて他の地域Aに設置されたサーバ1803aに対して負荷分散させることができるようになる。また、負荷分散装置1801bによって地域A、Bおよび店舗Cの全てのサーバのリソースを監視させれば、地域Aに設置されたサーバ1803a以外にも他の全てのサーバの中から負荷分散させるサーバを選択させることができるようになる。   Also, line B1 indicating a process execution request from the terminal apparatus 102b installed in the region B is transmitted to the load distribution apparatus 1801b through line B2 by the user navigation 1802. Here, a process execution request is normally transmitted to any of the servers 1804a to 1804n installed in the region B. However, when the load balancer 1801a and the load balancer 1801b are configured to exchange resource monitoring information of the subordinate server group, the load is distributed to the server 1803a installed in another area A through the line B3. Will be able to. Further, if the resources of all the servers in the areas A, B, and the store C are monitored by the load balancer 1801b, a server that distributes loads from all other servers in addition to the server 1803a installed in the area A can be obtained. You will be able to choose.

また、店舗Cに設置される端末装置102cからのプロセス実行要求を示すlineC1は、ユーザナビゲーション1802によりlineC2を通じて負荷分散装置1801cに送信される。負荷分散装置1801cでは、店舗C内のサーバ1805a〜1805nの中から負荷分散可能なものを評価する。しかし、端末装置102cと同じ店舗C内に割り当て可能なリソースを備えたサーバが無い場合は、lineC3を通じて隣の地域Bにあるサーバ1804nに負荷分散させ、充当させるようにすることができる。   Also, line C1 indicating a process execution request from the terminal device 102c installed in the store C is transmitted to the load balancer 1801c through the line C2 by the user navigation 1802. The load balancer 1801c evaluates the servers 1805a to 1805n in the store C that can load balance. However, if there is no server having resources that can be allocated in the same store C as the terminal device 102c, the load can be distributed and allocated to the server 1804n in the adjacent region B through the line C3.

また、ゲームなどを含む多くのインターネットアプリケーションへのアクセスは、時刻に応じてアクセス頻度が変動することが知られている。例えば夜10時にアクセスのピークを迎え、ピークの前後の例えば夜9時、11時のアクセス頻度がピーク時よりも何割か小さいアプリケーションを想定する。東西の時差を考慮した場合、前後1時間の地域に配備されたサーバは、ピーク時間帯を迎えている地域のサーバのリソースが枯渇していた場合に、余剰リソースとしてピーク時間帯のクライアントからのプロセス処理要求を受け付け処理するといった東西地域負荷分散が可能となる。赤道上でも平均的な1時間時差は1700km弱であり、伝播遅延によるラウンドトリップタイムは約17msである。ゲームなど、頻繁にサーバ、クライアント間の通信が行われるアプリケーションにおいても充分に活用できる遅延であり、時刻によってピークを迎えるアプリケーションを有効に負荷分散できる。   In addition, it is known that the access frequency of many Internet applications including games etc. varies depending on the time. For example, it is assumed that an application reaches an access peak at 10 o'clock and the access frequency at, for example, 9 o'clock and 11 o'clock before and after the peak is several percent smaller than the peak time. When considering the time difference between east and west, servers deployed in the 1 hour front and back area will be used as surplus resources from clients in the peak time zone if the resources of the server in the area that has reached the peak time zone are exhausted. The load distribution in the east and west, such as receiving and processing process processing requests, becomes possible. Even on the equator, the average hourly time difference is less than 1700 km, and the round trip time due to propagation delay is about 17 ms. This is a delay that can be fully utilized even in applications such as games where communication between the server and the client is frequently performed, and it is possible to effectively distribute the load of applications that reach their peak depending on the time.

なお、実行要求されたプロセスが消費するリソース容量さえ残っていれば、負荷分散先となるサーバは地域を問わずどこに設置されていても構わない。このことにより、一般的にあまりリソースの消費が激しくないWebサーバとして使用されているホスティングサーバや、各地にあるネットワークカフェなどに設置された複数のPCサーバなどのリソースを部分的に借り受け、負荷分散させるためのサーバとして契約することにより、冗長性を持った負荷分散をおこなうことができるようになる。   As long as the resource capacity consumed by the requested process remains, the load distribution destination server may be installed anywhere regardless of the region. As a result, resources such as a hosting server that is generally used as a Web server that consumes less resources and multiple PC servers installed in network cafes in various locations can be partially borrowed to distribute the load. By making a contract as a server for this purpose, it becomes possible to perform load balancing with redundancy.

以上説明したように、本実施の形態によれば、端末装置102から実行要求のあったプロセスの実行時のリソース消費量を用いて評価することにより、そのプロセスが実行可能なサーバをサーバ101b〜101nの中から選択することができるようになる。また、実行させるプロセスが新規追加あるいは修正されるごとに、最新のリソース消費量を登録することにより、プロセスの実行を常に最適なサーバに割り当てることができるようになる。そして、実行要求のあったプロセスのリソース消費量と、常に監視しているサーバ101b〜101nが備えているリソースの残量とを用いてサーバを選択するため、プロセスが消費するリソース量とサーバのリソース残量とがミスマッチすることを防止することができる。   As described above, according to the present embodiment, the server 101b to the server that can execute the process is evaluated by using the resource consumption at the time of execution of the process requested to be executed from the terminal device 102. 101n can be selected. In addition, each time a process to be executed is newly added or modified, the latest resource consumption is registered, so that the execution of the process can always be assigned to the optimum server. Since the server is selected using the resource consumption of the process that has requested execution and the remaining resources of the servers 101b to 101n that are constantly monitored, the amount of resources consumed by the process and the server It is possible to prevent mismatch with the remaining amount of resources.

また、実行要求のあったプロセスのリソース消費量と、常に監視しているサーバ101b〜101nの備えるリソースの残量とを用い、サーバのリソースが無駄なく消費される関数にて評価することにより、リソースが無駄なく消費される最適なサーバを選択することができるようになる。そして、消費されるリソースの量がプロセスごとに異なるゲームやアプリケーションプログラムなどを実行させるサーバを、複数の中から柔軟に選択することができるようになる。   In addition, by using the resource consumption of the process that requested execution and the remaining amount of resources of the servers 101b to 101n that are constantly monitored, by evaluating with a function that consumes resources of the server without waste, It is possible to select an optimal server that consumes resources without waste. And it becomes possible to flexibly select from a plurality of servers that execute a game, an application program, or the like in which the amount of consumed resources differs for each process.

また、備えるリソースの量が一様でない複数のサーバの中から、実行させたいプロセスが消費するリソースに合ったリソースの残量を持つサーバを柔軟に選択することができるようになる。これによって、理想的なサーバリソースの消費をおこなうことができ、複数のサーバ全体の同時処理プロセス(ゲーム数など)が最大化でき、各サーバの各リソースパラメータについて、無駄なく容量を使い切ることができる。   In addition, it is possible to flexibly select a server having a remaining amount of resources that matches a resource consumed by a process desired to be executed from among a plurality of servers having different amounts of resources. This makes it possible to consume ideal server resources, maximize the simultaneous processing processes (such as the number of games) across multiple servers, and use up the capacity of each server's resource parameters without waste. .

また、本実施の形態の負荷分散装置101aを使用すると、リソースの残量が不足してプロセスが実行できない、あるいは、プロセスがキューイングされてしまう可能性があるサーバなどに負荷分散されることを防ぐことができるので、プロセスの実行要求に対する待ち時間を減少させることができる。   In addition, when the load balancer 101a according to the present embodiment is used, the load is distributed to a server or the like where there is a possibility that the process cannot be executed because the remaining amount of resources is insufficient or the process may be queued. Therefore, the waiting time for the process execution request can be reduced.

なお、本実施の形態で説明した負荷分散方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。   Note that the load distribution method described in the present embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. This program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer. The program may be a transmission medium that can be distributed via a network such as the Internet.

以上のように、この発明にかかるサーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラムは、負荷分散をおこなう先のサーバのリソースをバランスよく消費させるために有用であり、特に、ゲームなど多くのユーザから実行要求のあるプロセスを複数のサーバに割り当てる場合に適している。   As described above, the server / client system, the load distribution device, the load distribution method, and the load distribution program according to the present invention are useful for consuming the resources of the server to which the load is distributed in a balanced manner, It is suitable for assigning processes that have been requested by many users, such as games, to multiple servers.

この発明の本実施の形態にかかるサーバ・クライアント・システムのシステム構成を示す概要図である。1 is a schematic diagram showing a system configuration of a server / client system according to an embodiment of the present invention. この発明の本実施の形態にかかるサーバ・クライアント・システムの負荷分散装置および端末装置およびサーバのハードウエア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the load distribution apparatus of the server client system concerning this Embodiment of this invention, a terminal device, and a server. この発明の本実施の形態にかかるサーバ・クライアント・システムの携帯電話機のハードウエア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the mobile telephone of the server client system concerning this Embodiment of this invention. この発明の本実施の形態にかかるサーバ・クライアント・システムの機能的構成を示すブロック図である。It is a block diagram which shows the functional structure of the server client system concerning this Embodiment of this invention. この発明の本実施の形態にかかる負荷分散装置を用いた負荷分散方法の処理手順の概要を示す説明図である。It is explanatory drawing which shows the outline | summary of the process sequence of the load distribution method using the load distribution apparatus concerning this Embodiment of this invention. この発明の本実施の形態にかかる理想的なプロセスの割り当ての一例を示す説明図である。It is explanatory drawing which shows an example of the ideal process allocation concerning this Embodiment of this invention. この発明の本実施の形態にかかる理想的なプロセスの割り当ての別の一例を示す説明図である。It is explanatory drawing which shows another example of ideal process allocation concerning this Embodiment of this invention. この発明の本実施の形態にかかるサーバ・クライアント・システムのサーバにおける最適なリソース消費の一例を表す説明図である。It is explanatory drawing showing an example of the optimal resource consumption in the server of the server client system concerning this Embodiment of this invention. この発明の本実施の形態にかかるサーバ・クライアント・システムのサーバにおける最適なリソース消費の別の一例を表す説明図である。It is explanatory drawing showing another example of the optimal resource consumption in the server of the server client system concerning this Embodiment of this invention. この発明の本実施の形態にかかるサーバ・クライアント・システムのサーバにおける最適なリソース消費の別の一例を表す説明図である。It is explanatory drawing showing another example of the optimal resource consumption in the server of the server client system concerning this Embodiment of this invention. この発明の本実施の形態にかかるリソースの消費例を示す説明図である。It is explanatory drawing which shows the example of consumption of the resource concerning this Embodiment of this invention. この発明の本実施の形態にかかる負荷分散装置によるサーバの評価方法の概要を示す説明図である。It is explanatory drawing which shows the outline | summary of the evaluation method of the server by the load distribution apparatus concerning this Embodiment of this invention. この発明の本実施の形態にかかる割り当てサーバの評価方法の関数の一例を示す説明図である。It is explanatory drawing which shows an example of the function of the evaluation method of the allocation server concerning this Embodiment of this invention. この発明の本実施の形態にかかる負荷分散装置によるサーバの評価および決定の処理手順の一例を示すフローチャートである。It is a flowchart which shows an example of the process sequence of evaluation and determination of the server by the load distribution apparatus concerning this Embodiment of this invention. この発明の本実施の形態にかかる負荷分散装置によるサーバの評価および決定の処理手順の一例を示す概要図である。It is a schematic diagram which shows an example of the process sequence of evaluation and determination of the server by the load distribution apparatus concerning this Embodiment of this invention. この発明の本実施の形態にかかるプロセスの情報を保持するテーブルの一例を示す説明図である。It is explanatory drawing which shows an example of the table holding the information of the process concerning this Embodiment of this invention. この発明の本実施の形態にかかるサーバ・クライアント・システムのサーバの情報を保持するテーブルの一例を示す説明図である。It is explanatory drawing which shows an example of the table which hold | maintains the information of the server of the server client system concerning this Embodiment of this invention. この発明の本実施の形態にかかるサーバ・クライアント・システムのサーバの地域分散の一例を示す説明図である。It is explanatory drawing which shows an example of the regional distribution of the server of the server client system concerning this Embodiment of this invention. サーバが備えるリソース量とプロセスが消費するリソース量との関係の一例を示す説明図である。It is explanatory drawing which shows an example of the relationship between the resource amount with which a server is provided, and the resource amount which a process consumes. サーバが備えるリソース量とプロセスが消費するリソース量との関係の別の一例を示す説明図である。It is explanatory drawing which shows another example of the relationship between the resource amount with which a server is provided, and the resource amount which a process consumes.

Claims (12)

複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおいて、
前記サーバのうちの少なくともいずれか一つが、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信手段と、
前記プロセス情報受信手段によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定手段と、
前記決定手段によって決定されたサーバに関する情報を前記クライアントへ送信するサーバ情報送信手段と、
を備え、
前記クライアントは、
前記サーバ情報送信手段によって送信されたサーバに関する情報を前記ネットワークを介して受信するサーバ情報受信手段と、
前記サーバ情報受信手段によって受信された情報にかかるサーバへ、前記プロセス処理要求に関する情報を送信するプロセス要求送信手段と、
を備えたことを特徴とするサーバ・クライアント・システム。
In a server-client system in which a plurality of servers and a plurality of clients are connected via a network, the server performs processing based on a process request from the client, and transmits a processing result to the client.
At least one of the servers is
Process information receiving means for receiving information on the process from the client via the network;
Determining means for determining a server to process the process from the plurality of servers, based on information about the process received by the process information receiving means;
Server information transmitting means for transmitting information about the server determined by the determining means to the client;
With
The client
Server information receiving means for receiving information on the server transmitted by the server information transmitting means via the network;
A process request transmitting means for transmitting information relating to the process processing request to a server related to the information received by the server information receiving means;
A server-client system comprising:
前記決定手段は、
各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第1の距離を算出する第1の距離算出手段と、
各サーバにおけるリソースのパラメータを軸として空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第2の距離を算出する第2の距離算出手段と、
を備え、
前記第1の距離および前記第2の距離の一方ないしは両方の値に基づいて、前記プロセスを処理させるサーバを決定することを特徴とする請求項1に記載のサーバ・クライアント・システム。
The determining means includes
On the space centered on the parameter of the resource in each server, the origin and parameter of the expected point of the resource consumption obtained by adding the resource consumption of the process to the point representing the current resource consumption of each server First distance calculating means for calculating a first distance with a straight line connecting the maximum usable capacity;
In the space centered on the resource parameters of each server, the resource consumption amount of the process is added to the point representing the current resource consumption amount of each server. Second distance calculating means for calculating a distance of 2;
With
2. The server / client system according to claim 1, wherein a server that processes the process is determined based on one or both of the first distance and the second distance.
前記パラメータには、前記サーバのCPUの負荷量、システムメモリの負荷量、グラフィック処理ユニットの負荷量、ビデオメモリの負荷量およびネットワークインターフェースカードの負荷量の少なくともいずれか一つを含むことを特徴とする請求項2に記載のサーバ・クライアント・システム。   The parameter includes at least one of a load amount of a CPU of the server, a load amount of a system memory, a load amount of a graphic processing unit, a load amount of a video memory, and a load amount of a network interface card. The server client system according to claim 2. 複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散装置であって、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信手段と、
前記プロセス情報受信手段によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定手段と、
前記決定手段によって決定されたサーバに関する情報を前記クライアントへ送信するサーバ情報送信手段と、
を備えたことを特徴とする負荷分散装置。
A load of the server in a server-client system in which a plurality of servers and a plurality of clients are connected via a network, the server performs processing based on a process request from the client, and transmits a processing result to the client A load balancer that distributes
Process information receiving means for receiving information on the process from the client via the network;
Determining means for determining a server to process the process from the plurality of servers, based on information about the process received by the process information receiving means;
Server information transmitting means for transmitting information about the server determined by the determining means to the client;
A load balancer comprising:
前記決定手段は、
各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第1の距離を算出する第1の距離算出手段と、
各サーバにおけるリソースのパラメータを軸として空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第2の距離を算出する第2の距離算出手段と、
を備え、
前記第1の距離および前記第2の距離の一方ないしは両方の値に基づいて、前記プロセスを処理させるサーバを決定することを特徴とする請求項4に記載の負荷分散装置。
The determining means includes
On the space centered on the parameter of the resource in each server, the origin and parameter of the expected point of the resource consumption obtained by adding the resource consumption of the process to the point representing the current resource consumption of each server First distance calculating means for calculating a first distance with a straight line connecting the maximum usable capacity;
In the space centered on the resource parameters of each server, the resource consumption amount of the process is added to the point representing the current resource consumption amount of each server. Second distance calculating means for calculating a distance of 2;
With
The load distribution apparatus according to claim 4, wherein a server that processes the process is determined based on one or both of the first distance and the second distance.
前記パラメータには、前記サーバのCPUの負荷量、システムメモリの負荷量、グラフィック処理ユニットの負荷量、ビデオメモリの負荷量およびネットワークインターフェースカードの負荷量の少なくともいずれか一つを含むことを特徴とする請求項5に記載の負荷分散装置。   The parameter includes at least one of a load amount of a CPU of the server, a load amount of a system memory, a load amount of a graphic processing unit, a load amount of a video memory, and a load amount of a network interface card. The load distribution apparatus according to claim 5. 複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散方法であって、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信工程と、
前記プロセス情報受信工程によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定工程と、
前記決定工程によって決定されたサーバへ、前記プロセス処理要求に関する情報を送信するプロセス要求送信工程と、
を含んだことを特徴とする負荷分散方法。
A load of the server in a server-client system in which a plurality of servers and a plurality of clients are connected via a network, the server performs processing based on a process request from the client, and transmits a processing result to the client Load balancing method for distributing
A process information receiving step for receiving information on the process from the client via the network;
A determination step of determining a server to process the process from the plurality of servers based on information on the process received by the process information reception step;
A process request transmitting step of transmitting information on the process processing request to the server determined by the determining step;
A load balancing method comprising:
前記決定工程は、
各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第1の距離を算出する第1の距離算出工程と、
各サーバにおけるリソースのパラメータを軸として空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第2の距離を算出する第2の距離算出工程と、
を含み、
前記第1の距離および前記第2の距離の一方ないしは両方の値に基づいて、前記プロセスを処理させるサーバを決定することを特徴とする請求項7に記載の負荷分散方法。
The determination step includes
On the space centered on the parameter of the resource in each server, the origin and parameter of the expected point of the resource consumption obtained by adding the resource consumption of the process to the point representing the current resource consumption of each server A first distance calculating step of calculating a first distance with a straight line connecting the maximum usable capacity;
In the space centered on the resource parameters of each server, the resource consumption amount of the process is added to the point representing the current resource consumption amount of each server. A second distance calculating step of calculating a distance of 2;
Including
8. The load distribution method according to claim 7, wherein a server for processing the process is determined based on one or both of the first distance and the second distance.
前記パラメータには、前記サーバのCPUの負荷量、システムメモリの負荷量、グラフィック処理ユニットの負荷量、ビデオメモリの負荷量およびネットワークインターフェースカードの負荷量の少なくともいずれか一つを含むことを特徴とする請求項8に記載の負荷分散方法。   The parameter includes at least one of a load amount of a CPU of the server, a load amount of a system memory, a load amount of a graphic processing unit, a load amount of a video memory, and a load amount of a network interface card. The load distribution method according to claim 8. 複数のサーバと複数のクライアントとがネットワークを介して接続され、前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、処理結果を前記クライアントへ送信するサーバ・クライアント・システムにおける前記サーバの負荷を分散する負荷分散プログラムであって、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信工程と、
前記プロセス情報受信工程によって受信されたプロセスに関する情報に基づいて、前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定工程と、
を前記サーバに実行させることを特徴とする負荷分散プログラム。
A load of the server in a server-client system in which a plurality of servers and a plurality of clients are connected via a network, the server performs processing based on a process request from the client, and transmits a processing result to the client A load balancing program that distributes
A process information receiving step for receiving information on the process from the client via the network;
A determination step of determining a server to process the process from the plurality of servers based on information on the process received by the process information reception step;
Is executed by the server.
前記決定工程は、
各サーバにおけるリソースのパラメータを軸とした空間上において、前記プロセスのリソース消費量を各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点とパラメータの使用可能な最大容量を結ぶ直線との第1の距離を算出する第1の距離算出工程と、
各サーバにおけるリソースのパラメータを軸として空間上において、前記プロセスのリソース消費量を、各サーバの現リソース消費量を表わす点に加えたことによって求められるリソース消費量の予想点の、原点との第2の距離を算出する第2の距離算出工程と、
を含み、
前記第1の距離および前記第2の距離の一方ないしは両方の値に基づいて、前記プロセスを処理させるサーバを決定することを特徴とする請求項10に記載の負荷分散プログラム。
The determination step includes
On the space centered on the parameter of the resource in each server, the origin and parameter of the expected point of the resource consumption obtained by adding the resource consumption of the process to the point representing the current resource consumption of each server A first distance calculating step of calculating a first distance with a straight line connecting the maximum usable capacity;
In the space centered on the resource parameters of each server, the resource consumption amount of the process is added to the point representing the current resource consumption amount of each server. A second distance calculating step of calculating a distance of 2;
Including
The load distribution program according to claim 10, wherein a server that processes the process is determined based on one or both of the first distance and the second distance.
前記パラメータには、前記サーバのCPUの負荷量、システムメモリの負荷量、グラフィック処理ユニットの負荷量、ビデオメモリの負荷量およびネットワークインターフェースカードの負荷量の少なくともいずれか一つを含むことを特徴とする請求項11に記載の負荷分散プログラム。   The parameter includes at least one of a load amount of a CPU of the server, a load amount of a system memory, a load amount of a graphic processing unit, a load amount of a video memory, and a load amount of a network interface card. The load distribution program according to claim 11.
JP2007080325A 2007-03-26 2007-03-26 Server / client system, load distribution apparatus, load distribution method, and load distribution program Expired - Lifetime JP3987880B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007080325A JP3987880B2 (en) 2007-03-26 2007-03-26 Server / client system, load distribution apparatus, load distribution method, and load distribution program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007080325A JP3987880B2 (en) 2007-03-26 2007-03-26 Server / client system, load distribution apparatus, load distribution method, and load distribution program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2005512315A Division JP3970902B2 (en) 2003-12-18 2003-12-18 Server / client system, load distribution apparatus, load distribution method, and load distribution program

Publications (2)

Publication Number Publication Date
JP2007200349A true JP2007200349A (en) 2007-08-09
JP3987880B2 JP3987880B2 (en) 2007-10-10

Family

ID=38454821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007080325A Expired - Lifetime JP3987880B2 (en) 2007-03-26 2007-03-26 Server / client system, load distribution apparatus, load distribution method, and load distribution program

Country Status (1)

Country Link
JP (1) JP3987880B2 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011507077A (en) * 2007-12-05 2011-03-03 オンライブ インコーポレイテッド How to migrate user sessions between streaming interactive video servers
KR20130011714A (en) * 2011-07-22 2013-01-30 에스케이플래닛 주식회사 System and method for operating application based presentation virtualization
US8661496B2 (en) 2002-12-10 2014-02-25 Ol2, Inc. System for combining a plurality of views of real-time streaming interactive video
JP2014106621A (en) * 2012-11-26 2014-06-09 Nec Corp Communication system
US8832772B2 (en) 2002-12-10 2014-09-09 Ol2, Inc. System for combining recorded application state with application streaming interactive video output
US8834274B2 (en) 2002-12-10 2014-09-16 Ol2, Inc. System for streaming databases serving real-time applications used through streaming interactive
US8839336B2 (en) 2002-12-10 2014-09-16 Ol2, Inc. System for recursive recombination of streaming interactive video
US8893207B2 (en) 2002-12-10 2014-11-18 Ol2, Inc. System and method for compressing streaming interactive video
US8949922B2 (en) 2002-12-10 2015-02-03 Ol2, Inc. System for collaborative conferencing using streaming interactive video
US9003461B2 (en) 2002-12-10 2015-04-07 Ol2, Inc. Streaming interactive video integrated with recorded video segments
US9015784B2 (en) 2002-12-10 2015-04-21 Ol2, Inc. System for acceleration of web page delivery
US9032465B2 (en) 2002-12-10 2015-05-12 Ol2, Inc. Method for multicasting views of real-time streaming interactive video
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
CN109271897A (en) * 2018-08-31 2019-01-25 平安科技(深圳)有限公司 Human face action unit detecting method, device, computer equipment and storage medium
US10375426B2 (en) 2002-12-10 2019-08-06 Sony Interactive Entertainment America Llc System and method for remote-hosted video effects
CN112035579A (en) * 2019-06-03 2020-12-04 杭州海康威视数字技术股份有限公司 Graph management method, data storage method, data query method, device and storage medium

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003461B2 (en) 2002-12-10 2015-04-07 Ol2, Inc. Streaming interactive video integrated with recorded video segments
US8832772B2 (en) 2002-12-10 2014-09-09 Ol2, Inc. System for combining recorded application state with application streaming interactive video output
US10375426B2 (en) 2002-12-10 2019-08-06 Sony Interactive Entertainment America Llc System and method for remote-hosted video effects
US9032465B2 (en) 2002-12-10 2015-05-12 Ol2, Inc. Method for multicasting views of real-time streaming interactive video
US9015784B2 (en) 2002-12-10 2015-04-21 Ol2, Inc. System for acceleration of web page delivery
US8834274B2 (en) 2002-12-10 2014-09-16 Ol2, Inc. System for streaming databases serving real-time applications used through streaming interactive
US8839336B2 (en) 2002-12-10 2014-09-16 Ol2, Inc. System for recursive recombination of streaming interactive video
US8840475B2 (en) 2002-12-10 2014-09-23 Ol2, Inc. Method for user session transitioning among streaming interactive video servers
US8893207B2 (en) 2002-12-10 2014-11-18 Ol2, Inc. System and method for compressing streaming interactive video
US8949922B2 (en) 2002-12-10 2015-02-03 Ol2, Inc. System for collaborative conferencing using streaming interactive video
US8661496B2 (en) 2002-12-10 2014-02-25 Ol2, Inc. System for combining a plurality of views of real-time streaming interactive video
US9118968B2 (en) 2002-12-10 2015-08-25 Sony Computer Entertainment America Llc Method for user session transitioning among streaming interactive video servers
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
JP2011507077A (en) * 2007-12-05 2011-03-03 オンライブ インコーポレイテッド How to migrate user sessions between streaming interactive video servers
KR20130011714A (en) * 2011-07-22 2013-01-30 에스케이플래닛 주식회사 System and method for operating application based presentation virtualization
KR101668282B1 (en) * 2011-07-22 2016-10-24 엔트릭스 주식회사 System and Method for operating application based Presentation Virtualization
JP2014106621A (en) * 2012-11-26 2014-06-09 Nec Corp Communication system
CN109271897A (en) * 2018-08-31 2019-01-25 平安科技(深圳)有限公司 Human face action unit detecting method, device, computer equipment and storage medium
CN109271897B (en) * 2018-08-31 2023-10-24 平安科技(深圳)有限公司 Face action unit detection method and device, computer equipment and storage medium
CN112035579A (en) * 2019-06-03 2020-12-04 杭州海康威视数字技术股份有限公司 Graph management method, data storage method, data query method, device and storage medium
CN112035579B (en) * 2019-06-03 2024-02-20 杭州海康威视数字技术股份有限公司 Graph management, data storage and data query methods, devices and storage medium

Also Published As

Publication number Publication date
JP3987880B2 (en) 2007-10-10

Similar Documents

Publication Publication Date Title
JP3987880B2 (en) Server / client system, load distribution apparatus, load distribution method, and load distribution program
JP3970902B2 (en) Server / client system, load distribution apparatus, load distribution method, and load distribution program
KR101662328B1 (en) Method and system for optimization of multimedia service over ims network
KR20220011063A (en) Server resource allocation method, device, electronic equipment and storage medium
Yu et al. The design of qos broker algorithms for qos-capable web services
CN102378976B (en) The compression of images of multiple processor is used to accelerate
Birje et al. Reliable resources brokering scheme in wireless grids based on non-cooperative bargaining game
US20140189092A1 (en) System and Method for Intelligent Data Center Positioning Mechanism in Cloud Computing
WO2018061825A1 (en) Distributed processing system, distributed processing method, and recording medium
CN110012054A (en) A kind of method for processing business and system based on alliance&#39;s chain network
US20050060360A1 (en) Method, system and program product for managing system resources
CN112686528A (en) Method, apparatus, server and medium for allocating customer service resources
JP6721800B2 (en) Cooperative distributed system, cooperative distributed management device, cooperative distributed method, and program
US10691700B1 (en) Table replica allocation in a replicated storage system
Badidi et al. A queuing model for service selection of multi-classes QoS-aware web services
JP2013539891A (en) System and method for multimedia multi-party peering (M2P2)
KR101262849B1 (en) Apparatus and method for allocating and releasing of image device in virtualization system
US8589551B2 (en) Multiprocessor computer and network computing system processing use and provision of hardware resource via a network
JP6888478B2 (en) Sorting system
JP2017037445A (en) Server management device and server management method
JPWO2005116832A1 (en) Computer system, method and program for controlling job execution in a distributed processing environment
CN116703071A (en) Resource sharing method, device and equipment and storage medium
CN112184277B (en) Virtual article package transmitting and receiving method, device, equipment and storage medium
KR100828480B1 (en) Method for distributed processing of data in mobile communication terminal and distributed system
JPH11328125A (en) Virtual space share system

Legal Events

Date Code Title Description
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: 20070710

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070713

R150 Certificate of patent or registration of utility model

Ref document number: 3987880

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100720

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100720

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20100720

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20100720

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130720

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term