WO2005062176A1 - サーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラム - Google Patents

サーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラム Download PDF

Info

Publication number
WO2005062176A1
WO2005062176A1 PCT/JP2003/016252 JP0316252W WO2005062176A1 WO 2005062176 A1 WO2005062176 A1 WO 2005062176A1 JP 0316252 W JP0316252 W JP 0316252W WO 2005062176 A1 WO2005062176 A1 WO 2005062176A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
load
client
information
distance
Prior art date
Application number
PCT/JP2003/016252
Other languages
English (en)
French (fr)
Inventor
Taro Hashimoto
Tetsuya Onoda
Original Assignee
Club It Corporation
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 Corporation filed Critical Club It Corporation
Priority to PCT/JP2003/016252 priority Critical patent/WO2005062176A1/ja
Priority to US10/583,358 priority patent/US7992152B2/en
Priority to JP2005512315A priority patent/JP3970902B2/ja
Priority to EP03780885.4A priority patent/EP1696324B1/en
Priority to CNB2003801108545A priority patent/CN100555226C/zh
Priority to ES03780885.4T priority patent/ES2585178T3/es
Priority to CNB2003801108564A priority patent/CN100537361C/zh
Priority to KR1020067011881A priority patent/KR100874421B1/ko
Publication of WO2005062176A1 publication Critical patent/WO2005062176A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Definitions

  • the present invention is directed to a server that distributes access to a server.
  • the server 'client' system that selects the server, load balancer, load balancing method, and load balancing program.
  • 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.
  • a server that provides a service which is the nesting point of the program, activates a process that is a processing unit of the program for providing the service.
  • services such as text data and image data are provided to the requesting client.
  • a technology that distributes the load of the request processing sent from the client has been developed in order to prevent the load from being biased to some servers. is there.
  • a round mouth bin method in which processing is sequentially distributed to servers that have prepared multiple client accesses, or a server with the smallest number of sessions among multiple servers The least connection method to select the server Which method is used to select the server to allocate the process.
  • the amount of resources consumed by the executed processes for example, resources of personal computers such as CPU and memory
  • the amount of resources provided by servers Server assignment is performed regardless of the server.
  • FIG. 19 is an explanatory diagram showing an example of the relationship between the resource amount provided in the server and the resource amount consumed by the process.
  • the CPU consumption of the server for executing the server program is represented by the X coordinate
  • the memory consumption is represented by the Y coordinate.
  • Xtnax on the X coordinate shown in Fig. 19 represents 100%, which is the maximum value of CPU consumption
  • Ymax on the Y coordinate represents 100%, which is the maximum value of memory consumption.
  • An ideal position where the CPU and the memory are each consumed 100% is indicated by a coordinate 1902 force S.
  • FIG. 20 is an explanatory diagram showing another example of the relationship between the resource amount provided in the server and the resource amount consumed by the process.
  • the CPU consumption of the server for executing the server program is represented by the X coordinate
  • the memory consumption is represented by the Y coordinate.
  • Xmax on the X coordinate represents 100% which is the maximum value of the CPU consumption
  • Ymax on the Y coordinate represents 100% which is the maximum value of the memory consumption.
  • the coordinates 2002 indicate the ideal positions where the CPU and the memory are each consumed 100%.
  • the load balancer grasps the number of sessions of each of the plurality of servers, and obtains an appropriate number from among the plurality of servers by using the number of sessions and a weight determined in advance by the machine performance of each server.
  • There is a system for selecting a server and assigning a session for example, see Japanese Patent Application Laid-Open No. 2002-26961.
  • the load is distributed by the number of sessions with the client, etc., regardless of the resources provided by the server and the resources consumed by the processes. become.
  • the requested process is started on the server, it is determined whether there are too many or too few resources, so there is a delay in responding to the request and there is a waiting time for the client. There was a problem that it would.
  • the present invention solves the above-mentioned problems of the prior art by numerically evaluating the resources and operating states of servers to which processes are to be executed, thereby enabling multiple servers deployed at one or more sites to be evaluated.
  • a load balancing device To provide a client system, a load balancing device, a load balancing method, and a load balancing program that can select an optimal server from among them and efficiently execute processes on each server. With the goal. Disclosure of the invention
  • 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. And at least one of the server, based on process information receiving means for receiving information on the process from the client via the network, and information on the process received by the process information receiving means. Determining means for determining a server to process the process from among the plurality of servers; and server information transmitting means for transmitting information on the server determined by the determining means to the client. The client sends the server Server information receiving means for receiving the information on the server transmitted by the transmitting means via the network; and transmitting the information on the process processing request to the server relating to the information received by the server information receiving means. And a process request transmitting means.
  • 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 distributing apparatus for distributing the load of the server in the client system, wherein the process information receiving means receives information on the process from the client via the network; and the process information receiving means. Deciding means for deciding a server to process the process from among the plurality of servers based on the information about the process received by the server, and server information for transmitting information about the server decided by the deciding means to the client. Transmission means and It is characterized by.
  • the load distribution method of the present invention is characterized in that 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 a processing result is transmitted to the client.
  • Sending server ⁇ Client ⁇ ⁇
  • a load balancing method that balances the load on the server in the system.
  • a process information receiving step of receiving the information on the process from the client via the network; and a process information from the plurality of servers based on the information on the process received in the process information receiving step.
  • a process request transmitting step of transmitting information on the process request to the server determined in the determining step.
  • the load distribution program according to the present invention is configured such that 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.
  • the determining means is a resource determined by adding the resource consumption of the process to a point representing the current resource consumption of each server in a space centered on the parameter of the resource in each server.
  • a first distance calculating means for calculating a first distance between an original point and a straight line connecting the maximum usable capacity of the parameter at the estimated point of consumption, and a space around the resource parameter of each server as an axis.
  • a second distance for calculating a second distance from the origin of the expected point of the resource consumption obtained by adding the resource consumption of the process to a point representing the current resource consumption of each server. Calculating means (step); and including (including) the calculating means, based on one or both of the first distance and the second distance. May be determined.
  • the parameters include a CPU load of the server, a system memory load, a graphic processing unit load, a video memory load, and a network load.
  • the load may include at least one of the load amounts of the network interface card.
  • FIG. 1 is a schematic diagram showing a system configuration of a server 'client system' according to the embodiment of the present invention
  • FIG. 2 is a server client system according to the embodiment of the present invention
  • FIG. 3 is a block diagram showing a hardware configuration of a system load distribution device, a terminal device, and a server.
  • FIG. 3 shows a hardware configuration of a mobile phone of a server 'client' system according to the embodiment of the present invention.
  • FIG. 4 is a block diagram showing a functional configuration of a server-client 'system according to the embodiment of the present invention.
  • FIG. 5 is a block diagram showing the functional configuration of the present invention.
  • FIG. 6 is an explanatory diagram showing an outline of a processing procedure of a load distribution method using such a load distribution device.
  • FIG. 6 shows an ideal process allocation according to the embodiment of the present invention.
  • FIG. 7 is an explanatory diagram showing another example of an ideal process allocation according to the embodiment of the present invention.
  • FIG. 8 is a diagram showing the present embodiment of the present invention.
  • FIG. 9 is an explanatory diagram showing an example of optimal resource consumption in a server of the server 'client' system according to the embodiment.
  • FIG. 9 is a diagram showing an optimal resource consumption of the server 'client' system according to the embodiment of the present invention.
  • FIG. 10 is an explanatory diagram showing another example of resource consumption.
  • FIG. 10 is a diagram showing another example of optimal resource consumption in a server of a server, a client, and a system according to the embodiment of the present invention.
  • FIG. 11 is an explanatory diagram showing an example of resource consumption according to the embodiment of the present invention.
  • FIG. 12 is a load distribution device according to the embodiment of the present invention.
  • FIG. 13 is an explanatory diagram showing an outline of a server evaluation method.
  • FIG. 13 is an explanatory diagram showing an example of a function of an allocation server evaluation method according to the embodiment of the present invention.
  • FIG. 15 is a flowchart illustrating an example of a processing procedure of server evaluation and determination by the load distribution device according to the embodiment of the present invention.
  • FIG. 15 is a flowchart illustrating processing performed by the load distribution device according to the embodiment of the present invention.
  • Server FIG. 16 is a schematic diagram showing an example of a processing procedure for evaluation and determination.
  • FIG. 16 is an explanatory diagram showing an example of a table holding information of a process according to the embodiment of the present invention.
  • FIG. 18 is an explanatory diagram showing an example of a table for storing information of a server of a system. A client according to the embodiment of the present invention.
  • FIG. 18 is a diagram showing a server according to the embodiment of the present invention.
  • Fig. 19 is an explanatory diagram showing an example of regional distribution of clients and servers of a system.
  • Fig. 19 is an explanatory diagram showing an example of the relationship between the amount of resources provided by a server and the amount of resources consumed by a process.
  • FIG. 0 is an explanatory diagram showing another example of the relationship between the resource amount provided in the server and the resource amount consumed by the process.
  • FIG. 1 is a schematic diagram showing a system configuration of a server 'client' system according to the embodiment of the present invention.
  • a server 101 a to l 0 1 n is configured by connecting a terminal device (client) 102 or a telephone office 105 via a network 100 such as the Internet.
  • a wireless base station 104 is connected to the telephone station 105, and a mobile phone 103 is connected to the servers 101a to L01n via the wireless base station 104. .
  • the servers 101 a to l 0 1 n are, for example, personal computers used for server applications called PC servers, and are managed and operated by a service provider that distributes web contents and network games. I have. Then, install the dedicated application software on the PC server. Thus, a load distribution device having a load distribution function is obtained.
  • One or more servers with a load balancing function can exist in the entire system.
  • a description will be given below with the server 1 Ola as a load distribution device.
  • the server (process processing server) 101b to 101n other than the server 101a can be a load distribution apparatus having a load distribution function by installing dedicated application software in the same manner.
  • the server 101a running as the device 101a stops due to a failure, any one of the servers 101b to 101n is switched as the load distribution device 101a and can perform proxy.
  • the load distribution device 101a allocates the execution of the process to the servers 101b to 10n.
  • the server 101 b-: L O ln executes the requested process and provides a service as a result of the execution to the terminal device 102 and the mobile phone 103 described later via the network 100.
  • the terminal device 102 is, for example, 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 “TT mode (R)” of NTT DoCoMo or “ezweb (R)” of au, and can be connected to at least a browser or Ja.
  • the wireless base station 104 transmits the communication data received from the telephone station 105 to the mobile phone 103 as a radio wave, and further transmits the radio wave received from the mobile phone 103 to the telephone station 105.
  • the telephone station 105 performs circuit switching when performing data communication between the mobile phone 103, the load distribution device 101a, and the servers 101b to 101n.
  • the system for the mobile phone 103 is a so-called hotspot when a wireless LAN adapter is installed in place of the mobile phone and a notebook PC or PDA with a built-in is used, and a wireless LAN base station is used instead of the mobile phone base station 104.
  • Service This is a mode in which the present invention operates effectively.
  • a security function using an SSL method or the like is provided. It is advisable to use encryption technology to secure confidentiality.
  • FIG. 2 is a block diagram showing a hardware configuration of a load distribution device and a terminal device of the server-client 'system according to the embodiment of the present invention, and a server.
  • the terminal device 102, the load distribution device 101a, and the servers 101b to 101 ⁇ are the CPU 201, the ROM 202, the RAM 203, the HDD (hard disk drive) 204, and the HD (hard disk). 205, FDD (flexible disk drive) 206, FD (flexible disk) 207 as an example of a removable recording medium, display 208, network I / ⁇ (interface) 209, keyboard 210, and mouse 21, a printer 212, a 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.
  • the CPU 201 controls the entire control 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 of the CPU 201.
  • the HDD 204 controls read / write of data to / from the HD 205 under the control of the CPU 201.
  • the HD 205 stores data written under the control of the HDD 204.
  • FDD 206 stores data for FD 207 under the control of CPU 201. To control the read / write operation.
  • the FD 207 stores data written under the control of the FDD 206.
  • a removable recording medium in addition to the FD 207, a CD-RW, MO, DVD (Digital Versatile Disk) and the like may be used.
  • the display 208 displays a cursor (menu) or a window (browser) for data such as documents, images, and function information. Examples include CRTs, TFT LCDs, and plasma displays.
  • the network I / F 209 is connected to the network 100, and is connected to the terminal device 102 via the network 10 °.
  • the network IZF 209 manages an interface between the network 100 and the inside, and controls input / output of data from / to 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.
  • the keyboard 210 includes keys for inputting characters, numerical values, various instructions, and the like, and performs data input.
  • the mouse 211 moves the cursor, selects a region, or moves and changes the size of a window.
  • a track pole, a joystick, a game pad, or the like may be used as long as the pointing device has a similar function.
  • the printer 212 prints the document data.
  • the CD-ROM drive 213 controls reading of data from the CD-ROM 214 under the control of the CPU 201.
  • the CD-ROM 214 is a removable recording medium.
  • Speakers 215 (including headphones and earphones) output voice, music, and the like.
  • FIG. 3 is a block diagram showing a hardware configuration of a mobile phone of the server “client” system according to the embodiment of the present invention.
  • the mobile phone 103 includes a CPU 301, a ROM 302, a RAM 303, a display 304, operation keys 305, a microphone 306, and a speaker 3. 07, a communication control unit 308, an antenna 309, an external connection terminal 3110, and an external storage device 311.
  • the antenna 309 is connected to the wireless base station 104 by communication. are doing.
  • Each component is connected to each other by a bus 300.
  • 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 of the CPU 310.
  • the display 304 is a liquid crystal display, and displays a window (browser) for data such as documents, images, and function information.
  • the operation keys 3005 are used to input letters, numbers, various instructions, and the like.
  • the microphone 306 converts the input sound into an electric signal.
  • the speech force 307 converts an input electric signal into sound and outputs the sound.
  • the communication control unit 308 performs control by transmitting and receiving radio waves to and from the wireless base station 104 via the antenna 309.
  • the external connection terminal 310 serves as a connection port with an external storage device 311 such as a flash memory.
  • FIG. 4 is a block diagram showing a functional configuration of a server / client system according to the embodiment of the present invention.
  • a load balancer 101 a constituting a server / client system includes a process information receiving unit 401, a determining unit 402, and a server information transmitting unit 400 3.
  • the determining unit 402 includes a distance calculating unit 404.
  • the client 102 constituting the server-client 'system includes a process information transmitting unit 4111, a server information receiving unit 4112, and a process request transmitting unit 413.
  • the process information receiving unit 401 receives information about a process from the client 102 via the network 100.
  • the determining unit 402 is a server that processes a process from among the plurality of process processing servers 101 b to 101 n based on the information on the process received by the process information receiving unit 401. Decide To do.
  • the distance calculation unit 404 calculates the distance between the origin of the process resource consumption and a straight line connecting the maximum usable capacity of the parameter in the space around the parameter of the resource. Then, based on the distance calculated by the distance calculation unit 404, a server that processes the process is determined. Further, the server information transmitting section 400 transmits information on the server determined by the determining section 402 to the client 102.
  • the process information transmitting unit 411 transmits information on the process to the load distribution apparatus 101a via the network 100 before making a process request.
  • the server information receiving unit 4 12 receives the information on the server transmitted by the server information transmitting unit 4 03 of the load distribution apparatus 101 a via the network 100.
  • the process request transmitting unit 4 13 is a server for the information received by the server information receiving unit 4 12, that is, the server (process) determined by the determining unit 4 0 2 of the load balancer 101 a.
  • the information about the process request is transmitted to any one of the processing servers 101b to l101n). Then, the server performs the processing based on the process request, and transmits the processing result to the client 102.
  • FIG. 5 is an explanatory diagram showing an outline of a processing procedure of a load distribution method using the load distribution device according to the embodiment of the present invention.
  • the load distribution device 101 a distributes the load of the execution of a process (for example, a game process such as an online game) requested from the terminal devices 102 a to 102 n, and Assign 1b to 101n.
  • a process for example, a game process such as an online game
  • the terminal device 102a When playing an online game using the terminal device 102a, the terminal device 102a requests the load distribution device 101a to execute the game process indicated by the arrow 501.
  • the load distribution apparatus 101a requested to execute the process evaluates a game server for executing the game process from among the servers 101b to l101n.
  • the evaluation of the game server is performed based on resources provided in each of the servers 101b to 101n.
  • the server 101b is determined as the load distribution destination as indicated by an arrow 502.
  • execution of the game process is requested from the load distribution device 101a, and the game process is executed on the server 1b.
  • the use of the game can be started from the terminal device 102a.
  • the load balancer 101a is an optimal one for executing this game process from among the servers 101b to l01 ⁇ when the execution of the game process is requested from the terminal devices 102a to 102 ⁇ .
  • the load can be distributed using the load distribution device 101a when executing a process using other application software.
  • FIG. 6 and FIG. 7 are explanatory diagrams showing an example of ideal process allocation according to the embodiment of the present invention.
  • the CPU consumption of the servers 101b to 101 ⁇ is shown as an X coordinate
  • the memory consumption is shown as a Y coordinate.
  • This graph shows the consumption trend of the resources used by the processes executed on the servers 101> to 10 1 n.
  • 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 indicating the ratio to the CPU consumption of the server 1 ⁇ 1c shown in FIG. 7 described later (the CPU consumption of the server 101c is assumed to be 10). This means that it has the performance to consume twice as much CPU as the server 101c.
  • the value corresponding to 100%, which is the maximum value of the memory consumption is represented by a numerical value of 10.
  • This is, like the CPU, a numerical value representing the ratio of the memory consumption of the server 101c shown in FIG. 7 described later (the memory consumption is 2 in FIG. 7). This indicates that the server 101b has a performance capable of consuming half the memory of the server 101c.
  • the process 601 shown in the graph of FIG. 6 represents the consumption of the CPU and the memory of the process executed on the server 101b.
  • the consumption of the CPU and the memory occupied by the execution of the process 601 becomes 10 CPUs and the memory power, respectively, and each occupies half of the resources of the server 101b.
  • the state in which the first process 601 is started can be represented as a rectangle from the origin to the position 10 of the CPU consumption and the position 5 of the memory consumption.
  • the maximum value is represented as a coordinate 602 (hereinafter, a coordinate composed of the maximum values of the CPU and the memory consumed by one process is referred to as a “consumption resource coordinate”).
  • the coordinates 602 of the first process 601 can be represented as a step with the starting point as the starting point.
  • 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 shows the consumption trend of resources used by processes executed on the servers 101b to 101n.
  • the server 101c has the features.
  • the value corresponding to 100% which is the maximum value of CPU consumption, is represented by a numerical value of 10. This is because the server 101 in FIG. Represents 1/2 times the amount of CPU that can be consumed, and indicates that it has the performance of consuming 1 Z 2 times the CPU of the server 101b.
  • the amount corresponding to 100% which is the maximum value of the memory consumption, is represented by a numerical value of 20. This represents, as in the case of the CPU, twice the amount of memory that can be consumed by the server 101b in FIG. 6 described above, and the performance that can consume twice the memory of the server 101b. Indicates preparation.
  • the process 701 shown in the graph of FIG. 7 represents the consumption of CPU and memory of the process executed on the server 101c.
  • the CPU and the memory occupied by the execution of the process 701 respectively have a CPU of 5 and a memory power of S10, each of which occupies half of the resources of the server 101c.
  • the state in which the first process 701 is started can be represented as a rectangle from the origin to the position 5 of the CPU consumption and the position 10 of the memory consumption.
  • the value is represented as coordinates 702.
  • the coordinates can be represented as a step with the coordinates 702 of the first process 701 as a starting point.
  • FIG. 8 to FIG. 10 are explanatory diagrams showing an example of optimal resource consumption in the server of the server-client 'system according to the present embodiment.
  • Fig. 8 J! ;
  • the consumption of memory is shown as Y coordinate.
  • the server 101 c! ⁇ 1 If there is a 01f server, it indicates that the amount of resources that can be consumed by each server is different.
  • the amount corresponding to 100%, which is the maximum value of the CPU consumption is represented by the maximum value 801. This represents 80% of the maximum value of CPU consumption in FIG. 9 described later, and roughly represents 50% of the maximum value of CPU consumption in FIG.
  • An amount corresponding to 100%, which is the maximum value of the memory consumption is represented as a maximum value 802. This represents the same amount as the maximum value of the memory consumption in FIG. 9 described later, and also represents 200% which is twice the maximum value of the memory consumption in FIG.
  • the process 803 started first is described from the position of the original point, and the processes started subsequent to the process 803 are described in a time-series manner in steps 804 to 808.
  • the coordinate reaches the coordinate 809, which is the intersection of the maximum value of the CPU consumption 801 and the maximum value of the memory consumption 802.
  • the server 101d is in a state where the CPU and the memory are ideally consumed.
  • Fig. 9 shows that, as in Fig. 8, when there are servers 101d to 101f, there is a difference in the amount of resources that can be consumed by each server.
  • the amount corresponding to 100% which is the maximum value of CPU consumption, is represented as the maximum value 901. This represents 125% of the maximum value of the CPU consumption in FIG. 8 described above, and further represents 62.5% of the maximum value of the CPU consumption in FIG. 10 described later.
  • a maximum value 902. This represents the same amount as the maximum value of the memory consumption in FIG. 8 described above, and is twice the maximum value of the memory consumption in FIG. 10 described later.
  • the process 903 started first is described from the position of the origin, and the processes started after the process 903 are stepwise in a time series from the process 9004 to 908. It is described, and eventually reaches a coordinate 909 which is an intersection of the maximum value 901 of the CPU consumption and the maximum value 902 of the memory consumption.
  • the server 101 e is in a state where the CPU and the memory are ideally consumed.
  • Fig. 10 shows that, as in Figs. 8 and 9, when there are servers 1Old to 101f, there is a difference in the amount of resources that can be consumed by each server.
  • the maximum value of 100% which is the maximum value of CPU consumption
  • the maximum value of 1001. This represents 200% of the maximum value of the CPU consumption in FIG. 8 described above, and further represents 160% of the maximum value of the CPU consumption in FIG.
  • the amount corresponding to the maximum value of 100 ° / 0 which is the maximum value of the memory consumption, is indicated as a maximum value 1002, and this maximum value 1002 is 50% of the maximum value of the memory consumption amount in FIGS. 8 and 9 described above. It has become.
  • the process 1003 that was started first is described from the position of the origin, and the processes that are started following process 1003 are described in a time-series fashion from process 1004 to 1008.
  • the coordinate 1009 which is the intersection of the maximum value of CPU consumption 1001 and the maximum value of memory consumption 1002.
  • the server 101f is in a state where the CPU and the memory are consumed theoretically.
  • FIG. 11 is an explanatory diagram showing an example of resource consumption of the server according to the embodiment of the present invention.
  • Xmax on the X coordinate indicates 100% which is the maximum value of the CPU consumption
  • Ymax on the Y coordinate indicates the maximum value of the memory consumption. 100% is shown.
  • the polygonal line 1 101 allocates CPU and memory resources for each process occurrence, and finally the coordinates of the intersection of the maximum CPU consumption Xmax and the maximum memory consumption Ymax 1 102 Here is an example that reaches.
  • a line 1101 indicates that the graph shows a case in which a process is allocated with no waste in CPU and memory consumption, and the result indicates that the resource is ideally consumed.
  • Line 1103 shows an example in which CPU and memory resources are allocated for each process occurrence, and as a result, the memory consumption reaches the maximum value Ymax before the CPU consumption reaches its maximum value Xmax. Is shown. This shows that this is a graph in the case where the CPU consumption is wasted with respect to the memory consumption in the polygonal line 1103, and that the available CPU remains in the amount indicated by section 1105. Is shown.
  • 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 the CPU and memory resources for each occurrence of each process. Is shown. This indicates that the line 1106 is a graph in a case where the memory consumption is wasted with respect to the consumption of the iCPU, and that the available memory remains in the amount indicated by the section 1108. Is shown.
  • the load is distributed without judging the resource consumption of the server, so that the resources are not consumed evenly as shown by the polygonal lines 1103 and 1106 described above.
  • processes are allocated so that the resources CPU and memory are equally consumed, it is possible to prevent the useless resources that are not consumed from remaining as shown by the polygonal line 1101. it can.
  • FIG. 12 is an explanatory diagram showing an outline of a server evaluation method by the load distribution device according to the embodiment of the present invention.
  • Daraf 1202 and 1203 are Jiju! ; And the memory consumption is shown as Y coordinate.
  • a graph 1202 shows the contents of the resource consumption of the server 101b
  • a graph 1203 shows the contents of the resource consumption of the server 101c.
  • graph 1202 shows the characteristics of a server provided with a resource having a maximum value of CPU consumption of 2 times and a maximum value of memory consumption of 1 Z 2 times that of graph 1203.
  • processes 1204 and 1205 have already been assigned and executed.
  • the graph 1203 shows the characteristics of a server provided with a resource having a maximum CPU consumption of 1/2 times and a maximum memory consumption of twice that of the graph 1202.
  • processes 1210 and 1211 have already been assigned and executed.
  • the resource consumption amount of the process 1201 is added from the vertex 1 2 1 1 a of the process 1 21 1 to obtain the coordinates (consumption The resource coordinates) become coordinates 125.
  • a straight line connecting the coordinates 1213 and the origin of the intersection point with the maximum value of the CPU and memory consumption is represented by an optimal resource consumption line 1212 (hereinafter, the intersection consisting of the maximum values of the CPU and memory consumption amounts).
  • a straight line connecting the coordinates of the above and the origin is called an optimum resource consumption line), and a perpendicular line 1214 is drawn from the coordinates 1 2 15 to the optimum resource consumption line 1222.
  • the resource consumption for the process 1201 is added from the vertex 1205a of the process 125 to the coordinates (the consumed resource) representing the entire consumed resource. Coordinate) is 1209 It becomes. Then, a straight line connecting the coordinate 1207 of the intersection with the maximum value of the consumption amount of the CPU and the memory and the origin is defined as a resource consumption optimum line 1206, and from the coordinate 1209, this resource consumption optimum line 1206 Draw the vertical line 1 208.
  • a comparison of the lengths of the perpendicular 1208 and the perpendicular 1214 shows that the length of the perpendicular 1208 is shorter.
  • running process 1 201 on server 101 b rather than running it on server 101 c requires more memory and CPU, which are the resources of server 101 b.
  • the server 101c having the characteristics of the graph 1222 is not selected as the server for executing the process 1201, and the server 101b having the characteristics of the graph 1202 'is selected.
  • the process 121 is executed on the server 101b, the resources are optimally consumed.
  • the lengths of the perpendicular lines 1208 and 1214 are equal, and it can be determined that the resource is consumed more appropriately even when either server is selected.
  • the consumed resource coordinates 1209 and 1215 are compared with the distances 1216 and 1217 from the origin, and a server having a shorter length is assigned. By doing so, it becomes possible to allocate a server with a smaller resource consumption when there is a server having the same distance from the resource consumption optimum line.
  • the area (1) multiplied by the distance (1 216, 121 7) between the perpendicular (1 208, 1 2 14) and the origin This can be realized by selecting a server with a smaller value of 208 x 12 16 and 1214 x 127 7).
  • FIG. 13 is an explanatory diagram showing an example of a function of the evaluation method of the allocation server according to the embodiment of the present invention.
  • Xmax on the X coordinate represents 100%, which is the maximum value of CPU consumption
  • Ymax on the Y coordinate represents 100%, which is the maximum value of memory consumption. ing.
  • the maximum available capacity of the origin and the parameter in the space around the parameter of the resource that is, Xma
  • the coordinates of the intersection of x and Ymax be ( xmax , ymax ), and let the straight line connecting ( xmax , ymax ) and the origin (0, 0) be the optimal resource consumption line 1301.
  • the characteristics of the graph shown in FIG. 13 will be described below assuming that the server 101 b has the features.
  • the first running process 1302 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 vertical and horizontal sides. . This is a rectangle representing the resources consumed by each process.
  • the diagonal apex from the origin of the rectangle represented by this process 1302 is shown as coordinates 1302a.
  • the second running process 1303 starts at coordinate 1302a, and calculates the memory consumption and CPU consumption consumed by process 1303 on each of the vertical and horizontal sides. It can be shown as a rectangle of length.
  • the diagonal vertex from coordinate 1302a, which is the starting point of this rectangle, is shown as coordinate 1303a.
  • the coordinate 1303a is set as the starting point, and ⁇ ?
  • the consumed resource coordinates consumed by the first process 1302 and the second process 1303 are indicated by coordinates 1303a.
  • the coordinates of the resource consumed by the third process are shown as coordinates 1304a.
  • the point of intersection with 1 is set to coordinates 1305.
  • the intersection of a straight line passing through the coordinate 1304 a parallel to the horizontal axis and the optimal resource consumption line 1301 is defined as a coordinate 1306.
  • a straight line connecting the coordinate 1304a and the coordinate 1305 is defined as a straight line 1307, and the length of the straight line 1307 is given by the following equation (3).
  • a straight line connecting the coordinate 1304a and the coordinate 1306 is defined as a straight line 1308, and the length of the straight line 13008 is given by the following equation (4).
  • the perpendicular drawn from the coordinate 1304a to the optimal resource consumption line 1301 is defined as a perpendicular 1309, and the length of the perpendicular 1309 is given by the following equation (5).
  • This disxy is the distance from the optimal resource consumption line 1301 at the coordinate 1304a, and when the load balancer 1 ⁇ 1a determines a server to execute a process from among a plurality of servers. Is the value to be evaluated.
  • Equation (8) is
  • the load balancer 101a calculates the distance (dis) of each of the servers 101b to 101n to be load-balanced, which is expressed by the formula (5) or (9), and the distance is the shortest. Assign the process execution process to the server. Also, the distance 1 3 10 between the point (X) (1 ⁇ i ⁇ n) and the origin in n-dimensional Euclidean space can be expressed as equation (10) .
  • the resources other than the CPU and the memory described above include, for example, a GPU, a video memory, and a network interface card.
  • the GPU is a graphics chip that performs rendering / geometry calculations on hardware in games that use 3D graphics.
  • the video memory is a memory provided in the GPU that is used when the GPU performs an image processing operation.
  • the network interface card is, for example, an Ethernet adapter, and terminates 1 O OB a se, l OO O BASE _ T X, and the like.
  • FIG. 14 is a flowchart showing an example of a processing procedure of server evaluation and determination by the load distribution device according to the embodiment of the present invention. It is a low chart.
  • the parameters include, for example, CPU consumption, memory consumption, GPU consumption, video memory consumption of the GPU, and bandwidth consumption of the network interface card.
  • step S1402 the amount of resources used by each of the processes when they are executed is defined and set for each parameter. Then, the maximum value of the resource, which is the parameter defined in step S1402, is set for each of the servers 101b to 101n (step S1403).
  • step S1404 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 as a client (step S1405). If there is no request to execute the process (step S1405: No), the process returns to step S1404 to monitor the resource consumption of each of the servers 101b to 101n (step (S1404) Continue the processing.
  • Step S1405 when there is a request to execute a process from the client terminal device 102 (step S1405: Yes), a server candidate for executing this process is selected from the servers 101b to 101n. (Step S1406). This is to select a server whose usage does not exceed the maximum value for any of the parameters set in step S1401 from the servers 101b to lIn. Then, from the prospects selected in step S1406, the distance of the perpendicular 1309 from the consumption resource coordinates 1304a in FIG. The evaluation is performed, and the distance is the shortest. For example, the server 101b is determined as the load distribution destination (Step S1407.
  • the consumed resource coordinates 1 3 0 4a Force the optimal line for resource consumption 1 3 0 1
  • the load balancer 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 for the terminal device 102 as a client, an IP address and a service port number which are information for accessing the load distribution destination server 101 b are provided. Is notified (step S1409). The terminal device 102 notified of the information for accessing the server 101b can directly access the server 101b, and terminates the processing.
  • FIG. 15 is a schematic diagram showing an example of a processing procedure of server evaluation and determination by the load distribution device according to the embodiment of the present invention.
  • the load balancer 101 a loads the execution of the process requested from the terminal devices 102 a to 102 n to the servers 101 b to 101 n. It is shown to be dispersed.
  • the load distribution apparatus 10la performs processing according to the following procedure.
  • a process execution request is accepted from the terminal device 102a as a client. At the same time, get the amount of each resource used by the accepted process
  • the load balancer 101a selects a server candidate for executing the process from the servers 101b to 101n. Check whether the consumption of resources used by the process that has received the execution request does not exceed the maximum value of the resources of each server, and select the candidate that does not exceed it.
  • the load balancer 10 la is a vertical line from the candidate selected in (6) to the optimal resource consumption line 1 301 from the consumption resource coordinate 1 304 a in FIG. Evaluate by finding the distance between 3 09 or the resource coordinates 1 3 04 a and the distance 1 3 1 0 from the origin. If the perpendicular length is the shortest, or if the perpendicular lengths are the same, the evaluation is performed from the origin. The distance 1 3 10 is short, or the value obtained by multiplying the perpendicular length by the distance from the origin is the smallest. For example, the server 10 lb is determined as the load distribution destination. (8) The load distribution device 10 la issues a process execution request to the load distribution destination server 101 b determined in step S1407.
  • the terminal device 102a also sends the ID, IP address, service port number, encryption key, token, etc. to the server 1b. Send to 0 1 b. This process is indicated by arrow 1501a.
  • the server 101b of the load distribution destination is notified of the information.
  • This information is required when the terminal device 102a accesses the server 101b.
  • the terminal device 102a accesses the server 101b directly, it refers to the IP address, port number, authentication key and token of the server 101b for authentication.
  • This process is indicated by arrow 1502.
  • 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.
  • the nervous 101b side checks whether or not the access is from an authenticated client, based on whether the IP address, ID, token, and the like match. If the encryption key has been passed, the communication is decrypted. This process is indicated by arrow 1503.
  • FIG. 16 is an explanatory diagram showing an example of a table holding information of a process according to the embodiment of the present invention.
  • a process information tape 1602 stores data contents for retaining process information, and includes an ID for uniquely identifying the process and a process name for the process. It consists of the process name, the amount of CPU used by the process when it runs, and the amount of memory used by the process when it runs.
  • the data attribute of the ID is a text type or, if it can be expressed only by a numerical value, an integer type.
  • the data attribute of the process name is text type, etc.
  • the data attributes of CPU usage and memory usage are defined as attributes of floating point type.
  • the data content of the process indicated by the record whose ID is 100 is that the process name is Process 1, ⁇ ? ! The usage of 1 is 0.15 and the usage of memory is 0.2.
  • the data content of the process indicated by the record with the ID 110 is that the process name is process 2, the CPU usage is 0.2, the memory usage is 0.4, and the CPU and memory The same applies to the usage amount when the ID is 100.
  • the CPU and memory consumption values consumed by the executed server are the CPU and memory values registered in the table, respectively. Indicates an increase by the amount of usage.
  • the load distribution device 101a uses the process information in the process information table 160 to select a server for distributing the load.
  • the table management using a database such as the table described above is not performed, and a file for reference such as a text file is used.
  • a file for reference such as a text file
  • FIG. 17 is an explanatory diagram showing an example of a table for retaining server information of the server / client system according to the embodiment of the present invention.
  • a server information table 1700 stores data for retaining server information, a connection destination server name for uniquely identifying the server, and a server in use by each server. CPU usage and memory usage of each server And each item.
  • 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 CPU usage and memory usage data attributes are of the floating point type.
  • the load balancer 101a may periodically monitor these values from each server and set them in a table, or may acquire the values as needed when performing load distribution. . In the following, the process 1 shown in Fig.
  • the record whose connection server name is 101c in the second row is ⁇ ?
  • the usage rate of 11 is 0.5
  • the memory usage rate is 0.2.
  • the record whose connection server name is 101 d shown in the third row has a CPU usage rate of 0.3 and a memory usage rate of 0.2.
  • the distance dis of the perpendicular drawn from the consumed resource coordinates of the server 101 c and the server 101 d to the optimal resource consumption line is calculated as follows.
  • the distance f is about 0.177
  • the distance at the server 104c is about 0.035.
  • the load balancer 101a selects the shortest server 101d as the optimal server and allocates it.
  • the server 101 c is about 0.763
  • the server 101 d is about 0.602
  • the product ( dis X diag) Approximately 0.135 for server 1 0 1 c, approximately 0.02 1 for server 10 Id, optimal resource consumption line length, resource consumption coordinate and origin Even when both of the distances are considered, the server 101d is selected and assigned to the optimal server.
  • the table management using the database as described above is not performed and the text file is used. In some cases, it is easier to write and update the information in a file for reference. In such a case, the contents of the table shown in Fig. 17 may be written out as a text file as required, and the format may be determined arbitrarily. Although not shown, not only the above-mentioned CPU usage rate but also items such as an IP address and a port number for accessing each server may be set as necessary.
  • FIG. 18 is an explanatory diagram showing an example of regional distribution of servers of the server-client system according to the embodiment of the present invention.
  • the terminal device 102a, the load distribution device 1801a, Server 1 803 a to 1803 n to be installed at the terminal 1803, and a terminal device 102b in the area B, a load distribution device 1801b, and a center 1804 Servers 1 804 a to 1 804 ⁇ to be installed are installed, a terminal device 102 c in store C, a load balancing device 180 1 c, and a server 180 0 installed in the center 1805. 5 a to 1 805 n are installed.
  • an example of a complex 1-server / client system using devices distributed for each region or store is shown below.
  • 1ineA1 which indicates the flow of a process execution request from the terminal device 102a installed in the area A, is transmitted to the load balancer 1801a through 1ineA2 by the user navigation 1802.
  • the user navigation 1802 refers to a system that performs routing by determining the region from the IP address of the client or by determining each region from the address of a low-level DNS server. In this way, it is possible to specify each client's area, and preferentially assign the server installed in the area that is closest to the client (the data transmission delay is small on the network). Then, the process execution request sent to the load balancer 1801a through 1ine A2 is load-balanced to the server 1803a installed in the same area A through 1ineA3, and the process execution request is sent.
  • Send 1ine B1 indicating a process execution request from the terminal device 102b installed in the area B is transmitted to the load balancer 1801b through 1ineB2 by the user navigation 1802.
  • a process execution request is normally transmitted to one of the servers 1804a to 1804n installed in the area B.
  • the load balancer 1801a and the load balancer 1801b exchange resource monitoring information of the subordinate server group, the other regions A through 1ine B3
  • the load can be distributed to the server 1803a installed in the server.
  • the resources of all servers in the regions A and B and the store C are monitored by the load distribution device 1801b, all the servers other than the server 1803a installed in the region A can be monitored. You can select a server to distribute load from Become like
  • 1ine C1 which indicates a process execution request from the terminal device S102c installed in the store C, is transmitted to the load balancing device 1801c via the line C2 by the user navigation 1802. You.
  • the load balancer 1801 c evaluates a server 1805 a to 1805 n in the store C that can be load-balanced. If there is no server with resources that can be harmed in the same store C as the terminal device 102c, the server 1804n located in the neighboring area B through 1ine C3 The load can be distributed to and used.
  • access frequency to many Internet applications including games fluctuates according to time. For example, assume that the access peaks at 10:00 p.m., and the access frequency before and after the peak, for example, at 9 p.m. at 11 o'clock, is somewhat smaller than the peak. Considering the time difference between east and west, the servers deployed in the area around one hour before and after the peak time zone are considered as surplus resources if the resources of the servers in the area that is reaching the peak time zone are dead. When processing requests from clients are received and processed, east-west regional load distribution becomes possible. Even on the equator, the average one-hour time difference is slightly less than 170 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 that frequently communicate between servers and clients, and can effectively distribute the load of applications that peak at a certain time.
  • the server to which the load is to be distributed may be located anywhere, as long as the resource capacity required by the process requested to execute remains.
  • resources such as hosting servers, which are generally used as Web servers that consume less resources, and multiple PC servers installed at network cafes in various locations, are partially leased.
  • redundant load distribution can be performed.
  • the process requested by the terminal device 102 can be executed by evaluating using the resource consumption at the time of execution of the process.
  • the server can be selected from servers 101b to l101n. Also, by registering the latest resource consumption every time a new process is added or modified, the execution of the process can always be assigned to the optimal server. Then, the server is selected based on the resource consumption of the process requested to execute and the remaining resources of the servers 101b to 101n that are constantly monitored. It is possible to prevent a mismatch between the consumed resource amount and the remaining resource amount of the server.
  • the server resources are consumed without waste.
  • evaluating with a function it is possible to select the optimal server that consumes resources without waste. Then, it becomes possible to flexibly select a server for executing a game, an application program, or the like in which the amount of consumed resources differs for each process.
  • the load can be distributed to a server or the like in which a process cannot be executed due to a shortage of resources or a process may be queued. This can reduce the waiting time for process execution requests.
  • the load distribution method described in the present embodiment uses a program prepared in advance. This can be realized by executing the RAM 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-R ⁇ M, an MO, and a DVD, and is executed by being read from the recording medium by the computer. Further, the program may be a transmission medium that can be distributed via a network such as the Internet. Industrial applicability
  • the server “client” system, load distribution device, load distribution method, and 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 well-balanced manner.
  • This method is suitable for assigning processes, such as games, for which many users have requested execution to multiple servers.

Abstract

 複数のサーバ(101a,101b~101n)とクライアント(102)とがネットワークを介して接続され、クライアント(102)からのプロセス要求に基づいてプロセス処理サーバ(101b~101n)が処理をおこない、処理結果をクライアント(102)へ送信するサーバ・クライアント・システムにおいて、負荷分散装置(101a)が、クライアント(102)からプロセスに関する情報を受信するプロセス情報受信部(401)と、受信されたプロセスに関する情報に基づいて、複数のプロセス処理サーバ(101b~101n)の中からプロセスを処理させるサーバを決定する決定部(402)と、決定されたサーバに関する情報をクライアント(102)へ送信するサーバ情報送信部(403)と、を備え、クライアント(102)が、送信されたサーバに関する情報を受信するサーバ情報受信部(412)と、受信された情報にかかるプロセス処理サーバ(101b~101n)へ、プロセス処理要求に関する情報を送信するプロセス要求送信部(413)とを備える。

Description

サーバ · クライアント ■ システム、 負荷分散装置、 負荷分散方法および負荷分散 プログラム
技術分野
この発明は、 サーバに対するアクセスを分散させるサーバ 'クライアント ·シ 明
ステム、 負荷分散装置、 負荷分散方法および負荷分散プログラムに関し、 特に、 サーバの稼働状態を監視し、 評価することによって複数のサーバの中から最適な 書
サーバを選択するサーバ ' クライアント ' システム、 負荷分散装置、 負荷分散方 法および負荷分散プログラムに関する。
背景技術
従来、 クライアント上のアプリケーションプログラムからサーバに対しネット ワークを介してサーバプログラムの実行を要求するサーバ■クライアント型のシ ステムが普及している。 このシステムでは、 クライアントからのプログラム実行 の要求に対して、 プログラムの実行結巣であるサービスを提供するサーバが、 そ のサービスを提供するためのプログラムの処理単位となるプロセスを起動する。 サーバ上で、 W e bコンテンツ配信プログラムや業務ソフトウェアやゲームソフ トウエアなどのプロセスが起動されると、 要求したクライアントに対してテキス トデータや画像データなどのサービスが提供される。
このようなサーバ 'クライアント ' システムの処理を複数のサーバを利用して おこなう場合、 一部のサーバに偏って負荷がかかることを防ぐため、 クライアン トから送信される要求処理を負荷分散させる技術がある。 たとえば、 W e bコン テンッの配信をおこなう W e bサーバの場合、 クライアントからのアクセスを複 数用意したサーバに順番に処理を振り分けるラウンド口ビン方式や、 複数のサー バの中からセッション数が最小のサーバを選択するリーストコネクション方式な どの方法により、 プロセスを割り当てるためのサーバを選択している。
このラウンド口ビン方式やリーストコネクション方式を用いて負荷分散させる と、 実行されるプロセスが消費するリソース (たとえば、 CPUやメモリなど、 パーソナルコンピュータが備える資源) の消費量や、 サーバが備えるリソースの 量とは関係無くサーバの割り当てがおこなわれる。
第 1 9図は、 サーバが備えるリソース量とプロセスが消費するリソース量との 関係の一例を示す説明図である。 第 1 9図において、 サーバプログラムを実行す るためのサーバの C PUの消費量を X座標、 メモリの消費量を Y座標としている 。 第 1 9図に示す X座標上の Xtnaxは、 C P U消費量の最大値である 100%を表 し、 Y座標上の Ymaxは、 メモリ消費量の最大値である 100 %を表す。 そして、 CPUとメモリとがそれぞれ 100 %消費される理想的な位置を座標 1 902力 S 示している。 このサーバ上で、 CPUとメモリを消費するプロセス 1 901が実 行されると、 C PUの消費量が 100%より低いにも関わらずメモリの消費量が 100%となる。
また、 第 20図は、 サーバが備えるリソース量とプロセスが消費するリソース 量との関係の他の一例を示す説明図である。 第 20図においては、 第 1 9図と同 様に、 サーバプログラムを実行するためのサーバの CPUの消費量を X座標、 メ モリの消費量を Y座標としている。 また、 X座標上の Xmaxは、 CPU消費量の最 大値である 100%を表し、 Y座標上の Ymaxは、 メモリ消費量の最大値である 1 00 %を表す。 そして、 CPUとメモリとがそれぞれ 100%消費される理想的 な位置を座標 2002が示している。 このサーバ上で、 CPUとメモリを消費す るプロセス 2001が実行されると、 第 19図とは逆に、 メモリの消費量が 10 0%より低いにも関わらず CPUの消費量が 100%となる。
また、 負荷分散装置が、 複数のサーバのそれぞれのセッション数を把握し、 そ のセッシヨン数と各サーバごとのマシン性能によつて予め決めた重み付けとによ り、 複数のサーバの中から適切なサーバを選択しセッションを割り当てるシステ ムが存在する (たとえば特開 2002— 26906 1号公報を参照。 ) 。 しかしながら、 上述したラウンド口ビン方式やリーストコネクション方式によ る負荷分散では、 サーバが備えるリソースやプロセスが消費するリソースとは関 係なく、 クライアントとのセッション数などによつて負荷分散されてしまうこと になる。 これによつて、 実行要求されたプロセスがサーバで起動される際にリソ —スの過不足が判断されるため、 要求に対する応答に遅延時間ができ、 クライア ントに対して待ち時間が発生してしまうという問題があった。
一方、 サーバとして使用する装置の性能によつても各サーバが備えることがで きるリソースの量が異なるため、 ラウンドロビン方式やリーストコネクション方 式などのように、 単にセッション数のみで負荷分散する方式を使用した場合に、 負荷分散後のリソースの使用量が考慮されず、 リソースの残量が少ないサーバや 、 リソースの消費量に偏りがあるサーバにプロセスを割り当ててしまうという問 題があった。
また、 C P Uもしくはメモリのいずれかの消費量に偏りがあるサーバに対して プロセスを実行させると、 消費量の少ない方のリソースに空き領域があるにも関 わらず消費量の多い方のリソース領域のみが不足することによって、 新たなプロ セスを実行させることができなくなる。 このような、 リソースの消費量に偏りが あるサーバは、 リソースが均等に消費されたサーバに比べて実行可能なプロセス の数が少なくなつてしまうという問題があった。
この発明は、 上述した従来技術による問題点を解消するため、 プロセスの実行 を割り当てるサーバのリソースや稼働状態を数値評価することによって一力所な いしは複数力所に配備された複数のサーバの中から最適なサーバを選択し、 各サ ーバにてプロセスの実行を効率的におこなわせることが可能なサーバ 'クライァ ント · システム、 負荷分散装置、 負荷分散方法および負荷分散プログラムを提供 することを目的とする。 発明の開示
上記課題を解決するために、 この発明にかかるサーバ 'クライアント ■システ ムは、 複数のサーバと複数のクライアントとがネットワークを介して接続され、 前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、 処理結果を前記クライアントへ送信するサーバ 'クライアント ' システムにおい て、 前記サーバのうちの少なくともいずれか一つが、 前記クライアントから前記 プロセスに関する情報を前記ネットワークを介して受信するプロセス情報受信手 段と、 前記プロセス情報受信手段によって受信されたプロセスに関する情報に基 づいて、 前記複数のサーバの中から前記プロセスを処理させるサーバを決定する 決定手段と、 前記決定手段によつて決定されたサーバに関する情報を前記クラィ アントへ送信するサーバ情報送信手段と、 を備え、 前記クライアントが、 前記サ —バ情報送信手段によって送信されたサーバに関する情報を前記ネットワークを 介して受信するサーバ情報受信手段と、 前記サーバ情報受信手段によつて受信さ れた情報にかかるサーバへ、 前記プロセス処理要求に関する情報を送信するプロ セス要求送信手段と、 を備えたことを特徴とする。
また、 この発明の負荷分散装置は、 複数のサーバと複数のクライアントとがネ ットワークを介して接続され、 前記クライアントからのプロセス要求に基づいて 前記サーバが処理をおこない、 処理結果を前記クライアントへ送信するサーバ■ クライアント ·システムにおける前記サーバの負荷を分散する負荷分散装置であ つて、 前記クライアントから前記プロセスに関する情報を前記ネッ 卜ワークを介 して受信するプロセス情報受信手段と、 前記プロセス情報受信手段によって受信 されたプロセスに関する情報に基づいて、 前記複数のサーバの中から前記プロセ スを処理させるサーバを決定する決定手段と、 前記決定手段によって決定された サーバに関する情報を前記クライアントへ送信するサーバ情報送信手段と、 を備 えたことを特徴とする。
また、'この発明の負荷分散方法は、 複数のサーバと複数のクライアントとがネ ットワークを介して接続され、 前記クライアントからのプロセス要求に基づいて 前記サーバが処理をおこない、 処理結果を前記クライアントへ送信するサーバ■ クライアント ' システムにおける前記サーバの負荷を分散する負荷分散方法であ つて、 前記クライアントから前記プロセスに関する情報を前記ネットワークを介 して受信するプロセス情報受信工程と、 前記プロセス情報受信工程によって受信 されたプロセスに関する情報に基づいて、 前記複数のサーバの中から前記プロセ スを処理させるサーバを決定する決定工程と、 前記決定工程によって決定された サーバへ、 前記プロセス処理要求に関する情報を送信するプロセス要求送信工程 と、 を含んだことを特徴とする。
また、 この発明の負荷分散プログラムは、 複数のサーバと複数のクライアント とがネットワークを介して接続され、 前記クライアントからのプロセス要求に基 づいて前記サーバが処理をおこない、 処理結果を前記クライアントへ送信するサ —バ . クライアント . システムにおける前記サーバの負荷を分散する負荷分散プ ログラムであって、 前記クライアントから前記プロセスに関する情報を前記ネッ トワークを介して受信するプロセス情報受信工程と、 前記プロセス情報受信工程 によって受信されたプロセスに関する情報に基づいて、 前記複数のサーバの中か ら前記プロセスを処理させるサーバを決定する決定工程と、 を前記サーバに実行 させることを特徴とする。
ここで、 決定手段 (工程) は、 各サーバにおけるリソースのパラメータを軸と した空間上において、 前記プロセスのリソース消費量を各サーバの現リソース消 費量を表わす点に加えたことによって求められるリソース消費量の予想点の、 原 点とパラメータの使用可能な最大容量を結ぶ直線との第 1の距離を算出する第 1 の距離算出手段 (工程) と、 各サーバにおけるリソースのパラメータを軸として 空間上において、 前記プロセスのリソース消費量を、 各サーバの現リソース消費 量を表わす点に加えたことによって求められるリソース消費量の予想点の、 原点 との第 2の距離を算出する第 2の距離算出手段 (工程) と、 を備え (含み) 、 前 記第 1の距離および前記第 2の距離の一方ないしは両方の値に基づいて、 前記プ 口セスを処理させるサーバを決定するようにしてもよい。
また、 前記パラメータには、 前記サーバの C P Uの負荷量、 システムメモリの 負荷量、 グラフィック処理ユニットの負荷量、 ビデオメモリの負荷量およびネッ トワークインタフェースカードの負荷量の少なくともいずれか一つを含むように してもよい。 図面の簡単な説明
第 1図は、 この発明の本実施の形態にかかるサーバ 'クライアント . システム のシステム構成を示す概要図.であり、 第 2図は、 この発明の本実施の形態にかか るサーバ .クライアント 'システムの負荷分散装置および端末装置およびサーバ のハードウェア構成を示すブロック図であり、 第 3図は、 この発明の本実施の形 態にかかるサーバ 'クライアント ' システムの携帯電話機のハードウエア構成を 示すブロック図であり、 第 4図は、 この発明の本実施の形態にかかるサーバ -ク ライアント ' システムの機能的構成を示すプロック図であり、 第 5図は、 この発 明の本実施の形態にかかる負荷分散装置を用いた負荷分散方法の処理手順の概要 を示す説明図であり、 第 6図は、 この発明の本実施の形態にかかる理想的なプロ セスの割り当ての一例を示す説明図であり、 第 7図は、 この発明の本実施の形態 にかかる理想的なプロセスの割り当ての別の一例を示す説明図であり、 第 8図は 、 この発明の本実施の形態にかかるサーバ 'クライアント ' システムのサーバに おける最適なリソース消費の一例を表す説明図であり、 第 9図は、 この発明の本 実施の形態にかかるサーバ 'クライアント ■システムのサーバにおける最適なリ ソース消費の別の一例を表す説明図であり、 第 1 0図は、 この発明の本実施の形 態にかかるサーバ ·クライアント · システムのサーバにおける最適なリソース消 費の別の一例を表す説明図であり、 第 1 1図は、 この発明の本実施の形態にかか るリソースの消費例を示す説明図であり、 第 1 2図は、 この発明の本実施の形態 にかかる負荷分散装置によるサーバの評価方法の概要を示す説明図であり、 第 1 3図は、 この発明の本実施の形態にかかる割り当てサーバの評価方法の関数の一 例を示す説明図であり、 第 1 4図は、 この発明の本実施の形態にかかる負荷分散 装置によるサーバの評価および決定の処理手順の一例を示すフローチャートであ り、 第 1 5図は、 この発明の本実施の形態にかかる負荷分散装置によるサーバの 評価および決定の処理手順の一例を示す概要図であり、 第 1 6図は、 この発明の 本実施の形態にかかるプロセスの情報を保持するテーブルの一例を示す説明図で あり、 第 1 7図は、 この発明の本実施の形態にかかるサーバ .クライアント ■シ ステムのサーバの情報を保持するテーブルの一例を示す説明図であり、 第 1 8図 は、 この発明の本実施の形態にかかるサーバ■ クライアント · システムのサーバ の地域分散の一例を示す説明図であり、 第 1 9図は、 サーバが備えるリソース量 とプロセスが消費するリソース量との関係の一例を示す説明図であり、 第 2 0図 は、 サーバが備えるリソース量とプロセスが消費するリソース量との関係の別の 一例を示す説明図である。 発明を実施するための最良の形態
以下に添付図面を参照して、 この発明にかかるサーバ -クライアント · システ ム、 負荷分散装置、 負荷分散方法および負荷分散プログラムの好適な実施の形態 を詳糸田に説明する。
(システム構成)
まず、 この発明の本実施の形態にかかる負荷分散装置を含むサーバ ·クライア ント . システムのシステム構成について説明する。 第 1図は、 この発明の本実施 の形態にかかるサーバ 'クライアント 'システムのシステム構成を示す概要図で ある。 第 1図において、 サーバ 1 0 1 a〜l 0 1 nは、 端末装置 (クライアント ) 1 0 2あるいは電話局 1 0 5とがそれぞれ、 インターネットなどのネットヮー ク 1 0 0を介して接続し構成されている。 また、 電話局 1 0 5には無線基地局 1 0 4が接続され、 携帯電話機 1 0 3はこの無線基地局 1 0 4を介してサーバ 1 0 1 a〜: L 0 1 nと接続される。
サーバ 1 0 1 a〜l 0 1 nは、 たとえば、 P Cサーバと呼ばれるサーバ用途に 使用されるパーソナルコンピュータであり、 W e bコンテンツの配信やネットヮ ークゲーム配信などをおこなうサービス事業者により管理、 運営されている。 そ して、 P Cサーバに専用のアプリケーションソフトウエアをインストールするこ とにより負荷分散機能を備えた負荷分散装置となる。 負荷分散機能を備えたサー バはシステム全体内で 1つないしは複数台存在することが可能である。 ここでは 、 サーバ 1 O l aを負荷分散装置として以下説明をおこなう。
したがって、 サーバ 101 a以外のサーバ (プロセス処理サーバ) 101 b〜 101 nについても同様に専用のアプリケーションソフトウエアをインストール することによって負荷分散機能を備えた負荷分散装置となり得ることができ、 負 荷分散装置 101 aとして起動しているサーバ 101 aが障害により停止した場 合には、 サーバ 101 b〜101 nのいずれかが負荷分散装置 101 aとして切 り替わり、 代理をおこなうことができる。
負荷分散装置 101 aは、 後述するユーザが使用する端末装置 102ゃ携帯電 話機 103からプロセスの実行要求があった場合、 そのプロセスの実行をサーバ 101 b〜 10ュ nに対して割り振る。 サーバ 101 b〜: L O l nは、 要求され たプロセスを実行し、 その実行結果となるサービスをネットワーク 100を介し て後述する端末装置 102や携帯電話機 103に対して提供する。
端末装置 102は、 たとえばパーソナルコンピュータなどの情報端末装置であ り、 個人や企業などで使用されている。 また、 携帯電話機 103は、 たとえば N TTドコモ社の 「 iモード (R) 」 や、 a u社の 「 e z w e b (R) 」 のように 、 少なくともィンターネットへの接続が可能で、 ブラウザや J a V a (R) ァプ リケーションなどを用いてネットワーク 100へアクセスする情報通信機能を備 えた携帯電話機である。 そして、 無線基地局 104は、 電話局 105から受信し た通信データを携帯電話機 103へ無線電波にして送信し、 さらに、 携帯電話機 103から受信した無線電波を電話局 105に対して送信する。 電話局 105は 、 携帯電話機 103と負荷分散装置 101 aとサーバ 101 b〜l 01 nとの間 でデータ通信をおこなう際の回線交換をおこなう。
携帯電話機 103に対するシステムは、 携帯電話機の代わりに無線 LANァダ プタを装着 Z内蔵したノート PCや PDAとし、 携帯電話の無線基地局 104の 代わりに無線 LANの基地局とした場合、 いわゆるホットスポットサービスのた めのシステムと読み代えることもでき、 同様に本発明が有効に動作する形態であ る。
また、 負荷分散装置 101 aと、 サーバ 101 b〜l 01 nと、 端末装置 10 2あるいは携帯電話機 103との間でおこなうネットワーク 100を介した通信 においては、 S S L方式等を利用したセキュリティ機能や、 暗号化技術等を用い 、 秘密保持を確保するようにするとよい。
(ハードウエア構成)
つぎに、 この発明の本実施の形態にかかる端末装置およびサーバのハードゥエ ァ構成について説明する。 第 2図は、 この発明の本実施の形態にかかるサーバ - クライアント 'システムの負荷分散装置および端末装置およびサーバのハードウ エア構成を示すブロック図である。
第 2図において、 端末装置 102と負荷分散装置 101 aとサーバ 101 b〜 101 ηとは、 CPU201と、 ROM202と、 R AM 203と、 HDD (ハ ードディスクドライブ) 204と、 HD (ハードディスク) 205と、 FDD ( フレキシブルディスクドライブ) 206と、 着脱可能な記録媒体の一例としての FD (フレキシブノレディスク) 207と、 ディスプレイ 208と、 ネットワーク I /¥ (インタフェース) 209と、 キーボード 2 10と、 マウス 21 1と、 プ リンタ 21 2と、 CD— ROMドライブ 21 3と、 着脱可能な記録媒体の一例と しての CD— ROM 214と、 スピーカ 21 5とを備えている。 また、 各構成部 はバス 200によってそれぞれ接続されている。
ここで、 C P U 201は、 端末装置 102、 負荷分散装置 101 a、 サーバ 1 01 b〜l 01 nのそれぞれの全体の制御を司る。 ROM 202は、 基本入出力 プログラムや、 ブートプログラムなどのプログラムを記憶している。 RAM 20 3は、 C PU 201のワークエリアとして使用される。 HDD 204は、 CPU 20 1の制御にしたがって HD 205に対するデータのリード Zライ トを制御す る。 HD 205は、 HDD 204の制御で書き込まれたデータを記憶する。
FDD 206は、 C PU 201の制御にしたがって FD 207に対するデータ のリードノライトを制御する。 FD 207は、 FDD 206の制御で書き込まれ たデータを記憶する。 着脱可能な記録媒体として、 FD 207の他、 CD— RW 、 MO、 DVD (D i g i t a l Ve r s a t i l e D i s k) などであつ てもよレ、。 ディスプレイ 208は、 カーソル、 メニュー、 あるいは文書、 画像、 機能情報などのデータに関するウィンドウ (ブラウザ) を表示する。 たとえば、 CRT、 TFT液晶ディスプレイ、 プラズマディスプレイなどである。
ネットワーク I /F 209は、 ネットワーク 1 00に接続され、 このネットヮ ーク 10◦を介して端末装置 102に接続される。 そして、 ネットワーク IZF 209は、 ネットワーク 100と内部とのインタフェースを司り、 負荷分散装置 1 01 a, サーバ 101 b〜101 n、 端末装置 1 02からのデータの入出力を 制御する。 ネットワーク I /F 209は、 たとえば、 モデムや LANアダプタな どである。
キーボード 210は、 文字、 数値、 各種指示などの入力のためのキーを備え、 データ入力をおこなう。 マウス 21 1は、 カーソルの移動や範囲選択、 あるいは ウィンドウの移動やサイズの変更などをおこなう。 ポインティングデバイスとし て同様の機能を備えるものであれば、 トラックポール、 ジョイスティック、 およ びゲームパッドなどであってもよい。 そして、 プリンタ 21 2は、 文書データを 印刷する。 たとえば、 レーザプリンタ、 インクジェットプリンタなどである。 C D— ROMドライブ 21 3は、 C PU 201の制御にしたがって CD— ROM2 14に対するデータのリードを制御する。 CD— ROM214は、 着脱可能な記 録媒体である。 スピーカ 21 5 (ヘッドフォン、 ィャフォンを含む) は、 音声や 音楽などを出力する。
つぎに、 この発明の本実施の形態にかかる携帯電話機のハードウエア構成につ いて説明する。 第 3図は、 この発明の本実施の形態にかかるサーバ 'クライアン ト ■システムの携帯電話機のハードウェア構成を示すブロック図である。 第 3図 において、 携帯電話機 103は、 CPU301と、 ROM 302と、 RAM 30 3と、 ディスプレイ 304と、 操作キー 305と、 マイク 306と、 スピーカ 3 0 7と、 通信制御部 3 0 8と、 アンテナ 3 0 9と、 外部接続端子 3 1 0と、 外部 記憶装置 3 1 1とを備え、 アンテナ 3 0 9は無線基地局 1 0 4と通信接続してい る。 また、 各構成部はバス 3 0 0によってそれぞれ接続されている。
ここで、 C P U 3 0 1は、 携帯電話機 1 0 3全体の制御を司る。 R OM 3 0 2 は、 基本入出力プログラムや、 ブートプログラムなどのプログラムを記憶してい る。 R AM 3 0 3は、 C P U 3 0 1のワークエリアとして使用される。 ディスプ レイ 3 0 4は、 液晶ディスプレイであり、 文書、 画像、 機能情報などのデータに 関するウィンドウ (ブラウザ) を表示する。 操作キー 3 0 5は、 文字、 数字、 各 種指示などを入力する。 マイク 3 0 6は、 入力した音声を電気信号に変換する。 スピー力 3 0 7は、 入力した電気信号を音声に変換して出力する。 通信制御部 3 0 8は、 アンテナ 3 0 9を介して無線基地局 1 0 4と電波の送受信をし、 制御を おこなう。 外部接続端子 3 1 0は、 フラッシュメモリなどの外部記憶装置 3 1 1 との接続口となる。
(機能的構成)
つぎに、 この発明の本実施の形態にかかるサーバ■クライアント ■システムの 機能的構成について説明する。 第 4図は、 この発明の本実施の形態にかかるサー バ ·クライアント ·システムの機能的構成を示すブロック図である。 第 4図にお いて、 サーバ 'クライアント ·システムを構成する負荷分散装置 1 0 1 aは、 プ ロセス情報受信部 4 0 1と、 決定部 4 0 2と、 サーバ情報送信部 4 0 3とを備え ており、 さらに、 決定部 4 0 2には距離算出部 4 0 4が含まれる。 また、 サーバ - クライアント 'システムを構成するクライアント 1 0 2は、 プロセス情報送信 部 4 1 1と、 サーバ情報受信部 4 1 2と、 プロセス要求送信部 4 1 3とを備えて いる。
プロセス情報受信部 4 0 1は、 クライアント 1 0 2からプロセスに関する情報 をネットワーク 1 0 0を介して受信する。 また、 決定部 4 0 2は、 プロセス情報 受信部 4 0 1によって受信されたプロセスに関する情報に基づいて、 複数のプロ セス処理サーバ 1 0 1 b〜l 0 1 nの中からプロセスを処理させるサーバを決定 する。 ここで、 距離算出部 4 0 4は、 リソースのパラメータを軸とした空間上に おいて、 プロセスのリソース消費量の、 原点とパラメータの使用可能な最大容量 を結ぶ直線との距離を算出する。 そ'して、 距離算出部 4 0 4によって算出された 距離に基づいて、 プロセスを処理させるサーバを決定する。 また、 サーバ情報送 信部 4 0 3は、 決定部 4 0 2によって決定されたサーバに関する情報をクライア ント 1 0 2へ送信する。
一方、 プロセス情報送信部 4 1 1は、 プロセス要求をおこなう前に、 プロセス に関する情報をネットワーク 1 0 0を介して負荷分散装置 1 0 1 aに送信する。 また、 サーバ情報受信部 4 1 2は、 負荷分散装置 1 0 1 aのサーバ情報送信部 4 0 3によって送信されたサーバに関する情報をネットワーク 1 0 0を介して受信 する。 また、 プロセス要求送信部 4 1 3は、 サーバ情報受信部 4 1 2によって受 信された情報にかかるサーバ、 すなわち負荷分散装置 1 0 1 aの決定部 4 0 2に よって決定されたサーバ (プロセス処理サーバ 1 0 1 b〜l 0 1 nのいずれか) へ、 プロセス処理要求に関する情報を送信する。 そうして、 このプロセス要求に 基づいて上記サーバが処理をおこない、 処理結果をクライアント 1 0 2へ送信す ることになる。
(負荷分散の処理手順)
つぎに、 この発明の本実施の形態にかかる負荷分散装置 1 0 1 aを用いた負荷 分散方法の処理手順の概要について説明する。 第 5図は、 この発明の本実施の形 態にかかる負荷分散装置を用いた負荷分散方法の処理手順の概要を示す説明図で ある。 第 5図において、 負荷分散装置 1 0 1 aは、 端末装置 1 0 2 a〜l 0 2 n から要求されるプロセス (たとえば、 オンラインゲームなどのゲームプロセス) の実行を負荷分散し、 サーバ 1 0 1 b〜1 0 1 nを割り当てる。
端末装置 1 0 2 aを利用してオンラインゲームをおこなう場合、 端末装置 1 0 2 aから負荷分散装置 1 0 1 aに対し、 矢印 5 0 1に示すゲームプロセス実行が 要求される。 プロセス実行が要求された負荷分散装置 1 0 1 aは、 サーバ 1 0 1 b〜l 0 1 nの中からゲームプロセスを実行させるためのゲームサーバを評価す る。 ゲームサーバの評価は、 サーバ 101 b〜l 01 nの各々が備えるリソース に基づいておこなわれる。 そして、 負荷分散装置 101 aによる評価の結果、 矢 印 502に示すようにサーバ 101 bが負荷分散先として決定される。 ゲームサ ーバが決定されると、 負荷分散装置 101 aからゲームプロセス実行が要求され 、 サーバ 1◦ 1 bにてゲームプロセスが実行される。 これにより、 端末装置 10 2 aからゲームの利用を開始することができる。
上述した通り、 負荷分散装置 101 aは、 端末装置 102 a〜 102 ηからゲ ームプロセスが実行要求されることをきっかけとし、 サーバ 101 b〜l 01 η の中からこのゲームプロセスを実行する最適なものを選択する。 また、 上述した ようなオンラインゲームに限らず、 他のアプリケーションソフトウェアによるプ 口セスを実行させる際にも、 負荷分散装置 101 aを用いて負荷分散させること ができる。
つぎに、 この発明の本実施の形態にかかるサーバのリソース量とプロセスが消 費するリソース量との関係について説明する。 第 6図および第 7図は、 この発明 の本実施の形態にかかる理想的なプロセスの割り当ての一例を示す説明図である 。 第 6図において、 サーバ 101 b〜 101 ηの CPUの消費量を X座標、 メモ リの消費量を Y座標として示している。 このグラフは、 サーバ101 >〜10 1 nで実行されるプロセスによって使われるリソースの消費傾向を表す。
第 6図に示すグラフの特徴は、 サーバ 101 bが備えたものであるとして以下 説明をおこなう。 このグラフでは C PU消費量の最大値である 100%に当たる 量を 20という数値で表している。 これは、 後述する第 7図にて示すサーバ 1◦ 1 cが備える C PUの消費量との比を表す数値 (サーバ 101 cの CPUの消費 量は 10とする) であり、 サーバ 101 bはサーバ 101 cの 2倍の CPUを消 費できる性能を備えることを表す。
つぎに、 メモリ消費量の最大値である 100%に当たる量を 10という数値で 表している。 これは、 CPUの場合と同様、 後述する第 7図にて示すサーバ 10 1 cが備えるメモリの消費量との比を表す数値 (第 7図ではメモリの消費量は 2 0とする) であり、 サーバ 101 bはサーバ 101 cの 1/2倍のメモリを消費 できる性能を備えることを表す。
第 6図のグラフ内に示すプロセス 601は、 サーバ 101 b上で実行されるプ 口セスの CPUとメモリの消費量を表したものである。 このプロセス 601が実 行されることによって占有される CPUおよびメモリのそれぞれの消費量は、 C PUが 10とメモリ力 となり、 それぞれサーバ 101 bが備えるリソースの半 分を占める。
1つ目のプロセス 60 1が起動された状態は、 原点から C PUの消費量の 10 の位置とメモリの消費量の 5の位置までの矩形として表すことができ、 消費され る CPUとメモリの最大値は座標 602として表される (以下、 一つのプロセス によって消費される CPUとメモリの最大値からなる座標を 「消費リソース座標 」 という) 。 さらに、 2つ目のプロセス 601が実行されると、 1つ目のプロセ ス 601の座標 602を開始点とし、 階段状に表すことができる。 この 2つ目の プロセス 601が割り当てられることにより、 CPUとメモリの消費量がサーバ 101 bのそれぞれのリソースの最大値となり、 この最大値を示す座標が座標 6 03として表される。
このように、 プロセス 60 1が 2つ実行されると、 サーバ 101 bにおける C P Uおよびメモリの消費量はともに最大値となり、 他のプロセスを割り当てる残 りのリソースが C PUとメモリともに無くなり、 リソースが理想的に消費された 状態となる。
また第 7図において、 サーバ 101 b~l 01 nの C PUの消費量を X座標、 メモリの消費量を Y座標として示している。 このグラフは、 サーバ 101 b〜l 01 nで実行されるプロセスによって使われるリソースの消費傾向を表すもので める。
第 7図に示すグラフの特徴は、 サーバ 101 cが備えたものであるとして以下 説明をおこなう。 このグラフでは CPU消費量の最大値である 100%に当たる 量を 10という数値で表している。 これは、 前述した第 6図のサーバ 101 が 備える C PUの消費可能な量の 1/2倍を表し、 サーバ 101 bの CPUの消費 量の 1 Z 2倍の C P Uを消費できる性能を備えることを表す。
つぎに、 メモリ消費量の最大値である 100%に当たる量を 20という数値で 表している。 これは、 CPUの場合と同様、 前述した第 6図のサーバ 101 bが 備えるメモリの消費可能な量の 2倍を表し、 サーバ 101 bのメモリの消費量の 2倍のメモリを消費できる性能を備えることを表す。
第 7図のグラフ内に示すプロセス 701は、 サーバ 101 c上で実行されるプ 口セスの CPUとメモリの消費量を表したものである。 このプロセス 701が実 行されることによって占有される CPUおよびメモリのそれぞれの消費量は、 C PUが 5とメモリ力 S 10となり、 それぞれサーバ 101 cが備えるリソースの半 分を占める。
1つ目のプロセス 701が起動された状態は、 原点から C PUの消費量の 5の 位置とメモリの消費量の 10の位置までの矩形として表すことができ、 消費され る CPUとメモリの最大値は座標 702として表される。 さらに、 2つ目のプロ セス 701が実行されると、 1つ目のプロセス 701の座標 702を開始点とし 、 階段状に表すことができる。 この 2つ目のプロセス 701が割り当てられるこ とにより、 CPUとメモリの消費量がサーバ 101 cのそれぞれのリソースの最 大値となり、 この最大値を示す座標が座標 703として表される。
このように、 プロセス 70 1が 2つ実行されると、 サーバ 101 cにおける C PUおよびメモリの消費量はともに最大値となり、 他のプロセスを割り当てる残 りのリソースが CPUとメモリともに無くなり、 リソースが理想的に消費された 状態となる。
つぎに、 この発明の本実施の形態にかかるサーバにおける最適なリソース消費 について説明する。 第 8図〜第 10図は、 本実施の形態にかかるサーバ ·クライ アント 'システムのサーバにおける最適なリソース消費の一例を表す説明図であ る。 第 8図において、 じ !;の消費量を 座標、 メモリの消費量を Y座標として 示している。 第 8図および後述する第 9図、 第 10図では、 サーバ 101 c!〜 1 01 f のサーバがある場合、 それぞれのサーバによって消費可能なリソースの量 が異なることを示している。
まず、 第 8図のグラフの特徴は、 サーバ 101 dが備えたものとして説明をお こなう。 このグラフでは、 C PU消費量の最大値である 100%に当たる量を最 大値 801にて表している。 これは、 後述する第 9図の CPU消費量の最大値の 80%を表し、 ざらに、 第 10図の CPU消費量の最大値の 50%を表す。 そし て、 メモリ消費量の最大値である 100%に当たる量を最大値 802として表し ている。 これは、 後述する第 9図のメモリの消費量の最大値と同じ量を表し、 さ らに、 第 10図のメモリの消費量の最大値の 2倍となる 200 %を表す。
そして、 第 8図のグラフに示すように、 最初に起動されたプロセス 803が原 点の位置から記載され、 プロセス 803に続いて起動されるプロセスがプロセス 804〜 808まで時系列に階段状に記載されて、 最終的には C PU消費量の最 大値 80 1とメモリ消費量の最大値 802との交点となる座標 809に到達する 。 このことによって、 サーバ 101 dは CPUとメモリが理想的に消費された状 態となつている。
第 9図において、 グラフは、 じ? の消費量を 座標、 メモリの消費量を Y座 標として示している。 第 9図では第 8図と同様、 サーバ 101 d〜10 1 f のサ ーバがある場合、 それぞれのサーバにより消費できるリソースの量に違いがある ことを示している。
第 9図に示すグラフの特徴は、 サーバ 10 1 eが備えたものとして以下説明を おこなう。 このグラフでは C P U消費量の最大値である 100 %に当たる量を最 大値 901として表している。 これは、 前述した第 8図の CPU消費量の最大値 の 1 25%を表し、 さらに、 後述する第 10図の CPU消費量の最大値の 62. 5%を表す。
つぎに、 メモリ消費量の最大値である 100%に当たる量を最大値 902とし て表している。 これは、 前述した第 8図のメモリの消費量の最大値と同じ量を表 し、 さらに、 後述する第 10図のメモリの消費量の最大値の 2倍となる。 そして、 第 9図のグラフに示すように、 最初に起動されたプロセス 903が原 点の位置から記載され、 プロセス 903に続いて起動されるプロセスがプロセス 9 04〜908まで時系列に階段状に記載されていき、 最終的には CPU消費量 の最大値 901とメモリ消費量の最大値 902との交点となる座標 909に到達 する。 このことにより、 サーバ 101 eは CPUとメモリが理想的に消費された ^態となつている。
第 10図において、 CPUの消費量を X座標、 メモリの消費量を Y座標として 承している。 第 10図では第 8図、 第 9図と同様、 サーバ 1 O l d〜 101 f の サーバがある場合、 それぞれのサーバにより消費できるリソースの量に違いがあ ることを示している。
第 10図に示すグラフの特徴は、 サーバ 101 f が備えたものとして以下説明 をおこなう。 このグラフでは C PU消費量の最大値である 100%に当たる量を 最大値 1001として表している。 これは、 前述した第 8図の CPU消費量の最 大値の 200%を表し、 さらに、 第 9図の CPU消費量の最大値の 1 60%を表 す。 そして、 メモリ消費量の最大値である 100°/0に当たる量を最大値 1002 として示し、 この最大値 1002は、 前述した第 8図および第 9図のメモリの消 費量の最大値の 50%となっている。
そして、 第 10図のグラフに示すように、 最初に起動されたプロセス 1003 が原点の位置から記載され、 プロセス 1003に続いて起動されるプロセスがプ ロセス 1004〜 1008まで時系列に階段状に記載されていき、 最終的には C P U消費量の最大値 1 001とメモリ消費量の最大値 1002との交点となる座 標 1009に到達する。 このことにより、 サーバ 101 f は CPUとメモリが理 ¾S的に消費された状態となっている。
つぎに、 この発明の本実施の形態にかかるサーバのリソース消費例について説 明する。 第 11図は、 この発明の本実施の形態にかかるサーバのリソース消費例 を示す説明図である。 第 1 1図において、 X座標上の Xmaxは、 CPU消費量の最 大値となる 100%が示され、 Y座標上の Ymaxは、 メモリ消費量の最大値となる 10 0%が示されている。
折れ線 1 101は、 CPUおよびメモリのリソースを各プロセスの発生ごとに 割り 当て、 最終的に CPU消費量の最大値である Xmaxと、 メモリ消費量の最大値 である Ymaxとの交点の座標 1 102に到達した例を示す。 これにより、 折れ線 1 10 1力 CPUとメモリの消費量に無駄が無いプロセスの割り当てがおこなわ れた場合のグラフであることを示し、 リソースが理想的に消費された結果を表し てレヽる。
折れ線 1 103は、 CPUおよびメモリのリソースを各プロセスの発生ごとに 割り 当てた結果、 CPU消費量がその最大値である Xmaxに達する前にメモリ消費 量が最大値である Ymaxに到達した例を示している。 このことは、 折れ線 1 103 力 メモリの消費量に対して C PUの消費量に無駄ができた場合のグラフである ことを示し、 区間 1 105が示す量だけ使用可能な CPUが残ったことを示して いる。
折れ線 1 106は、 CPUおよびメモリのリソースを各プロセスの発生ごとに 割り 当てた結果、 メモリ消費量がその最大値である Ymaxに達する前に CPU消費 量が最大値である Xmaxに到達した例を示している。 このことは、 折れ線 1 106 i C PUの消費量に対してメモリの消費量に無駄ができた場合のグラフである ことを示し、 区間 1 108が示す量だけ使用可能なメモリが残ったことを示して いる。
従来の負荷分散装置によるプロセスの割り当て方は、 サーバのリソース消費量 を判断せずに負荷分散をおこなうため、 前述した折れ線 1 103, 1 106にて 示したような、 リソースが均等に消費されない状態となるのが通常である。 これ に对してリソースである CPUとメモリとが均等に消費されるようなプロセスの 割り当てがおこなわれると、 折れ線 1 101のように、 消費されない無駄なリソ ースが残ることを防止することができる。
(サーバの評価方法)
つぎに、 この発明の本実施の形態にかかる負荷分散装置によるサーバの評価方 法について説明する。 第 12図は、 この発明の本実施の形態にかかる負荷分散装 置によるサーバの評価方法の概要を示す説明図である。 第 1 2図において、 ダラ フ 1 202, 1 203は、 じ卩!;の消費量を 座標、 メモリの消費量を Y座標と して示している。 以下、 グラフ 1 202はサーバ 101 bのリソース消費の内容 を示し、 グラフ 1 203はサーバ 10 1 cのリソース消費の内容を示すものであ る。
まず、 グラフ 1 202はグラフ 1 203と比較して、 C P U消費量の最大値が 2倍とメモリ消費量の最大値が 1 Z 2倍のリソースを備えたサーバの特性を示し ている。 グラフ 1 202にはプロセス 1 204, 1 205が既に割り当てられ実 行されている。 一方、 グラフ 1 203はグラフ 1 202と比較して C PU消費量 の最大値が 1 / 2倍とメモリ消費量の最大値が 2倍のリソースを備えたサーバの 特性を示している。 グラフ 1 203にはプロセス 1 210, 1 2 1 1が既に割り 当てられ実行されている。 以下では、 プロセス 1 201の実行要求が発生した場 合、 プロセス 1 20 1を、 グラフ 1 202またはグラフ 1203のいずれの特性 を備えたサーバに負荷分散すると最適にリソースが消費されるかを判断する方法 を説明する。
グラフ 1 203にてプロセス 1 20 1を実行させた場合、 プロセス 1 21 1の 頂点 1 2 1 1 aからプロセス 1 201分のリソース消費量が加わることにより、 消費されるリソース全体を表す座標 (消費リソース座標) は座標 1 21 5となる 。 そして、 CPUおよびメモリの消費量の最大値との交点の座標 1 21 3と原点 とを結んだ直線をリソース消費最適線 1 21 2 (以下、 CPUおよびメモリの消 費量の最大値からなる交点の座標と、 原点とを結んだ直線をリソース消費最適線 と呼ぶ) とし、 座標 1 2 1 5からこのリソース消費最適線 1 21 2に対して垂線 1 214を引く。
一方、 グラフ 1 202にてプロセス 1 201を実行させた場合、 プロセス 1 2 05の頂点 1205 aからプロセス 1 201分のリソース消費量が加わることに より、 消費されるリソース全体を表す座標 (消費リソース座標) は座標 1209 となる。 そして、 C PUおよびメモリの消費量の最大値との交点の座標 1 207 と原点とを結んだ直線をリソース消費最適線 1 206とし、 座標 1 209からこ のリソース消費最適線 1 206に対して垂線 1 208を引く。
そして、 垂線 1 208と、 垂線 1214との長さを比較すると、 垂線 1208 の長さの方が短くなることが示される。 このことは、 プロセス 1 20 1を、 サー バ 1 01 cにて実行させるより、 サーバ 10 1 bにて実行させた方が、 サーバ 1 0 1 bのリソースであるメモリの消費量と CPUの消費量のバランスが均等に近 くなることを示している。 よって、 プロセス 1 201を実行させるサーバとして 、 グラフ 1 2◦ 3の特性を備えたサーバ 10 1 cが選択されず、 グラフ 1202 ' の特性を備えたサーバ 101 bが選択される。 サーバ 101 bにてプロセス 1 2 0 1が実行されると、 リソースが最適に消費されることになる。
このとき、 垂線 1 208と 1 214の長さが等しく、 どちらのサーバが選択さ れた場合も同様にリソースがより適切に消費されると判断できる場合も存在し得 る。 このような場合には、 消費リソース座標 1 209、 1 21 5と原点との距離 1 216と 1 2 1 7を比較し、 その長さの短いサーバを割り当てる。 このように することで、 リソース消費最適線との距離が同様のサーバが存在した場合により リソース消費量が小さいサーバを割り当てることが可能となる。 加えて、 リソー ス消費量とリソース消費最適線からの距離の両方を同時に加味したい場合は垂線 (1 208、 1 2 14) と原点との距離 (1 216、 121 7) を乗じた面積 ( 1 208 X 1 2 1 6、 1 214 X 1 21 7) がより小さい値を持つサーバを選択 することによって実現できる。
つぎに、 この発明の本実施の形態にかかる割り当てサーバの評価方法の関数に ついて f 明する。 第 1 3図は、 この発明の本実施の形態にかかる割り当てサーバ の評価方法の関数の一例を示す説明図である。 第 1 3図において、 X座標上の X maxは、 C P U消費量の最大値となる 1 00 %が表され、 Y座標上の Ymaxは、 メ モリ消費量の最大値となる 100%が表されている。 そして、 リソースのパラメ ータを軸とした空間上で原点とパラメータの使用可能な最大容量、 すなわち Xma xと Ymaxとの交点の座標を (xmax, y m a x) とし、 (xmax, y ma x) と原点 (0 , 0) とを結んだ直線をリソース消費最適線 1 30 1とする。 なお、 第 1 3図に 示すグラフの特徴は、 サーバ 1 0 1 bが備えたものとして以下説明をおこなう。 まず、 1つ目に実行中のプロセス 1 30 2は、 プロセス 1 3 0 2によって消費 されるメモリの消費量と CPUの消費量とを縦横の各辺の長さとした原点からの 矩形として示される。 これは、 各プロセスが消費するリソースを表す矩形とした ものである。 このプロセス 1 30 2によって表される矩形の原点からの対角の頂 点は座標 1 30 2 aとして示される。
実行中の 2つ目のプロセス 1 30 3は、 座標 1 30 2 aを開始点とし、 プロセ ス 1 3 0 3によって消費されるメモリの消費量と C PUの消費量とを縦横の各辺 の長さとした矩形として示すことができる。 この矩形の開始点である座標 1 3 0 2 aからの対角の頂点は座標 1 3 0 3 aとして示される。
そして、 新たに割り当てる 3つ目のプロセスが、 プロセス 1 3 04である場合 、 座標 1 3 0 3 aを開始点とし、 〇?リの使用量を0^、 メモリの使用量を c yと した矩形として第 1 3図のように示される。 矩形の開始点である座標 1 30 3 a の対角を示す頂点は座標 1 3 04 aとして示される。
つぎに、 座標 1 3 04 aからリソース消費最適線 1 3 0 1に対して下ろす垂線 1 30 9の距離を求める。 まず、 第 1 3図のグラフ上に示される Xおよび yの位 置の値は以下の式 (1) 、 式 (2) にて表される。
y = f xy (x) = ( y ma ./ m il x) X x ■ · ■ (1)
X = f y x (Υ ) = ( X ma x/ y ma x) X y ■ ■ ■ (2)
前述したように、 1つ目のプロセス 1 3 0 2と 2つ目のプロセス 1 3 03とが 消費する消費リソース座標は座標 1 3 0 3 aによって示されている。 そして、 3 つ目のプロセスが消費する消費リソース座標は座標 1 304 aとして示している 。 この座標 1 3 04 aの座標は (x1; y i) = (x。+ c x, y。+ c y) として表 される。
—方、 縦軸と並行な座標 1 304 aを通る直線と、 リソース消費最適線 1 3 0 1との交点を座標 1 3 0 5とする。 また、 横軸と並行な座標 1 3 04 aを通る直 線と、 リソース消費最適線 1 3 0 1との交点を座標 1 306とする。 座標 1 30 4 aと座標 1 3 0 5とを結ぶ直線を直線 1 30 7とし、 直線 1 30 7の長さは以 下の式 (3) にて与えられる。
Δ y = I f xy (X l) - y i I - - - (3)
また、 座標 1 3 04 aと座標 1 30 6とを結ぶ直線を直線 1 308とし、 直線 1 3 0 8の長さは以下の式 (4) で与えられる。
Δ x = I f y x (y!) - X ! I ■ · · (4)
座標 1 3 04 aからリソース消費最適線 1 3 0 1へ引く垂線を垂線 1 30 9と し、 垂線 1 30 9の長さは以下の式 (5) にて与えられる。
d i s xy= Δ χ Δ y /Λ (Δ Χ 2 + Δ y ζ) ■ · · (5)
この d i s xyが、 座標 1 3 04 aのリソース消費最適線 1 3 0 1からの距離で あり、 負荷分散装置 1 ◦ 1 aが複数のサーバの中からプロセスを実行させるため のサーバを決定するときに評価する値となる。
そして、 つぎに、 前述した C PUとメモリ以外にも他のパラメータを含む n次 元関数の場合の消費リソース座標からリソース消費最適線への距離を求める'式の 説明をおこなう。 まず、 リソースとして用いるパラメータが n個 (X i) (1≤ i ≤n) の n次ユークリッド空間上で求めることができるリソース消費最適線は、 2次元の場合を用いて以下の式 (6) にて表される ( 1≤ i ≤ n ) 。
i + l = f x i x ( i + l) mo d n ( X i ) = ( X い + 1) mo d n m x / X i ma x) X X i
• · · (6)
現在のサーバのリソースの消費量を (X i。) ( 1 '≤ i ≤ n ) 、 プロセスのリソ ースの使用量を ( ) (1≤ i ≤n) としたとき、
X ί 1 = X i 0 + C i · ■ · 、 7 )
このとき、 式 (8) を、
A X (i + l) m。d n= I f x i x (i +1) m。 d n ( X ί l) ― (ί + l) m。d n l |
• · · (8) とし (l≤ i≤n) 、 n次元ユークリッド空間上での点 (X ) (l≤ i ^n) と リソース消費最適線 1 301との距離は以下の式 (9) のように表記できる。 =Π lA½+1)mod n) I ( ∑ 1)mod η)2)· - - (9) =1 =1
したがって、 負荷分散装置 101 aは、 負荷分散の対象となるサーバ 101 b 〜101 nのそれぞれの式 (5) あるいは式 (9) にて示される距離 (d i s) を算出し、 その距離が最も短いサーバに対してプロセスの実行処理を割り当てる また、 n次元ユークリッド空間上での点 (X ) (1≤ i≤n) と原点との距 離 1 3 10は式 (1 0) のように表記できる。
Figure imgf000025_0001
したがって垂線の長さ d i sが等しいサーバの中から 1つを選択する場合には d i a gの値が小さいものを選択し、 プロセスの実行処理を割り当てる。 さらに 垂線の長さ d i sと原点との距離 d i a gを同時に評価したい場合には d i s X d i a gの値が最も小さいサーバに対して処理を割り当てる。
なお、 前述した C PUとメモリ以外のリソースとは、 たとえば、 GPUやビデ オメモリ、 ネットワークインタフェースカードなどである。 GPUは、 3Dグラ フィックを利用するゲームにてレンダリングゃジオメ トリ演算をハードウェアに ておこなうためのグラフィックチップである。 また、 ビデオメモリは、 GPUが 画像処理の演算をおこなう際に使用する GPU内に備えるメモリである。 また、 ネットワークインタフェースカードは、 例えばイーサネットアダプタであり、 1 O OB a s e、 l O O O B a s e _ T X等を終端するものである。
つぎに、 この発明の本実施の形態にかかる負荷分散装置によるサーバの評価お よび決定の処理の内容について説明する。 第 14図は、 この発明の本実施の形態 にかかる負荷分散装置によるサーバの評価および決定の処理手順の一例を示すフ ローチャートである。 第 14図のフローチャートにおいて、 まず、 負荷分散装置 10 1 aがサーバ 101 b〜l 01 nを評価するときに用いるパラメータを設定 する (ステップ S 1401) 。 パラメータは、 たとえば、 CPUの消費量や、 メ モリの消費量や、 GPUの消費量や、 GPUの備えるビデオメモリの消費量や、 ネットワークインタフェースカードの帯域消費量などである。
つぎに、 複数のプロセスの実行時にそれぞれが使用するリソースの使用量を、 各パラメータごとに定義して設定する (ステップ S 1402) 。 そして、 サーバ 101 b〜 101 nごとに、 ステップ S 1402にて定義したパラメータである リソースの最大値の設定をおこなう (ステップ S 1403) 。
つぎに、 ステップ S 140 1にて設定した各パラメータのリソース消費量につ いて、 サーバ 101 b〜l 01 nごとに取得し、 監視する (ステップ S 1404 ) 。 クライアントである端末装置 102や携帯電話機 103からプロセス実行の 要求が有ったか否かを判断する (ステップ S 1405) 。 プロセス実行の要求が 無かった場合 (ステップ S 1405 : No) にはステップ S 1404に戻り、 サ ーバ 101 b〜l 01 nの各サーバごとに消費されたリソースの消費量を監視す る (ステップ S 1404) 処理を引き続きおこなう。
—方、 クライアントである端末装置 102からプロセス実行の要求が有った場 合 (ステップ S 1405 : Y e s ) には、 このプロセスを実行するためのサーバ の候補をサーバ 10 1 b〜l 01 nの中から選択する (ステップ S 1406) 。 これは、 ステップ S 1401にて設定したパラメータのいずれについてもその使 用量が最大値を超えないサーバをサーバ 10 1 b〜l 0 I nの中から選択するも のである。 そして、 ステップ S 1406にて選択された候捕の中から、 さらに、 先述した第 1 3図の消費リソース座標 1 304 aからリソース消費最適線 1 30 1に下ろす垂線 1 309の距離を求めることで評価をおこない、 距離が一番短い 、 たとえば、 サーバ 101 bを負荷分散先として決定する (ステップ S 1407 また、 S 1406のサーバ候補の選択では前述のように消費リソース座標 1 3 0 4 a力、らのリソース消費最適線 1 3 0 1に下ろす垂線 1 3 0 9の長さに加え、 消費リソース座標 1 3 0 4 aと原点との距離 1 3 1 0を合わせて評価することが できる。 垂線 1 3 0 9の長さが等しいサーバが存在した場合には原点との距離 1 3 1 0が小さいサーバを選択することでよりリソース消費量の小さいサーバを選 択できる。 あるいは垂線 1 3 0 9の長さと原点との距離 1 3 1 0をかけ合わせた 値の最も小さいサーバを選択することで、 最適なリソース消費を実現し、 かつリ ソース消費量が小さいサーバにプロセスを割り当てることができる。
負荷分散装置 1 0 1 aは、 ステップ S 1 4 0 7にて決定した負荷分散先のサー ノ 1 0 1 bに対し、 プロセスの実行要求をおこなう (ステップ S 1 4 0 8 ) 。 そ して、 クライアントである端末装置 1 0 2に対してプロセスが実行されたことを 示すため、 負荷分散先のサーバ 1 0 1 bにアクセスするための情報である I Pァ ドレスやサービスポート番号などの通知をおこなう (ステップ S 1 4 0 9) 。 サ ーバ 1 0 1 bへアクセスするための情報を通知された端末装置 1 0 2は、 サーバ 1 0 1 bへ直接アクセスすることが可能となり、 処理を終了する。
つぎに、 この発明の本実施の形態にかかる負荷分散装置によるサーバの評価お よび決定の処理手順の内容について説明する。 第 1 5図は、 この発明の本実施の 形態にかかる負荷分散装置によるサーバの評価および決定の処理手順の一例を示 す概要図である。 第 1 5図において、 負荷分散装置 1 0 1 aは、 端末装置 1 0 2 a〜 1 0 2 nから要求されるプロセスの実行を、 サーバ 1 0 1 b ~ 1 0 1 nに対 して負荷分散することが示される。 第 1 5図において、 負荷分散装置 1 0 l aは 、 以下の手順により処理をおこなう。
( 1 ) 負荷分散をおこなう際の評価に用いるパラメータを設定する。
( 2) 各サーバにて実行されるプロセスが消費する各パラメータごとの使用量 を定義し、 設定する。 この設定は、 新しいプロセスが追加されるたびにおこなう 。 たとえば、 C P U, メモリ、 G PU、 ビデオメモリ、 の 4つのパラメータを使 用する場合、 実行されるプロセスが 3 Dゲームであれば、 C PUとメモリにカロえ 、 G PUとビデオメモリについてもリソースが消費される。 また、 実行されるプ 口セスが 2.Dゲームであれば、 GPUとビデオメモリのリソースは消費されない 。 このようにプロセスの内容によって消費されるリソースは異なる。
( 3) 各サーバごとに備える各パラメータの最大値の設定をおこなう。 この設 定は、 管理者などにより負荷分散装置 1 0 1 aに対し手作業にて設定してもよい し、 あるいは、 各サーバをネットワーク 1 00を介して順にモニタリングし、 設 定値を取得させるようにしてもよい。 また、 ゲームや他のアプリケーションサー バなど、 その使用目的に応じて多様なサーバ 1 0 1 b〜l 0 1 nが設置される可 能性があるため、 個々のパラメータに最大容量を設定できるようにする。 この処 理は矢印 1 50 1 aにて示される。
(4) パラメータとして設定したリソースについて、 サーバ 1 0 1 b〜 1 0 1 nの各サーバごとに消費された量を監視する。 この処理は、 矢印 1 50 1 aにて 示されるもので、 負荷分散装置 1 0 1 aからサーバ 1 0 1 b〜l 0 1 nに対して 順にモニタリングをおこない、 消費量を取得する。
( 5) クライアントである端末装置 1 0 2 aからプロセス実行の要求を受け付 ける。 それと同時に、 受け付けたプロセスが使用する各リソースの量を取得する
。 この処理は矢印 1 5 0 2にて示される。
( 6) 負荷分散装置 1 0 1 aは、 プロセスを実行するためのサーバの候補をサ ーバ 1 0 1 b〜 1 0 1 nの中から選択する。 実行要求を受け付けたプロセスが使 用するリソースの消費量が、 各サーバのリソースの最大値を超えていないかをチ エックし、 超えていないものを候補として選択する。
( 7) 負荷分散装置 1 0 l aは、 (6) で選択された候補の中から、 さらに、 先述した第 1 3図の消費リソース座標 1 304 aからリソース消費最適線 1 30 1に下ろす垂線 1 3 0 9の距離あるいは消費リソース座標 1 3 04 aと原点との 距離 1 3 1 0を求めることで評価をおこない、 垂線の長さが一番短い、 あるいは 垂線の長さが同じ場合は原点からの距離 1 3 1 0が短い、' あるいは垂線の長さと 原点からの距離を乗じた値が最も小さい、 たとえば、 サーバ 1 0 l bを負荷分散 先として決定する。 ( 8 ) 負荷分散装置 1 0 l aは、 ステップ S 1 4 0 7にて決定した負荷分散先 のサーバ 1 0 1 bに対し、 プロセスの実行要求をおこなう。 このとき、 サーバ 1 0 1 bが実行要求を認証済みクライアントからのアクセスのみ受け付ける場合に は、 端末装置 1 0 2 aから I D、 I Pアドレス、 サービスポート番号、 暗号化の 鍵、 トークンなどもサーバ 1 0 1 bへ送信する。 この処理は、 矢印 1 5 0 1 aに て示される。
( 9 ) クライアントである端末装置 1 0 2 aに対してプロセスが実行されたこ とを示すため、 負荷分散先のサーバ 1 0 1 bの情報の通知をおこなう。 この情報 とは、 端末装置 1 0 2 aがサーバ 1 0 1 b へアクセスするときに必要とする。 た とえば、 端末装置 1 0 2 aがサーバ 1 0 1 b へ直接アクセスする際には、 サーバ 1 0 1 bの I Pアドレス、 ポート番号、 認証 '暗号化に関わる鍵やトークンを指 す。 この処理は、 矢印 1 5 0 2にて示される。
( 1 0 ) サーバ 1 0 1 b へアクセスするための情報を通知された端末装置 1 0 2 aは、 サーバ 1 0 1 bへアクセスすることが可能となる。 (9 ) にて通知を受 けた情報に基づき、 端末装置 1 0 2 aからサーバ 1 0 1 bへアクセスすることが 可能となる。 ナーバ 1 0 1 b側では、 認証されたクライアントからのアクセスか 否かを I Pアドレスや I Dやトークンなどが一致しているかによって確認する。 暗号化鍵が受け渡しされている場合には通信が喑号化される。 この処理は、 矢印 1 5 0 3にて示される。
(プロセスの情報の内容)
つぎに、 この究明の本実施の形態にかかる負荷分散装置が保持するプロセスの 情報について説明する。 第 1 6図は、 この発明の本実施の形態にかかるプロセス の情報を保持するテーブルの一例を示す説明図である。 第 1 6図において、 プロ セス情報テープノレ 1 6 0 0は、 プロセスの情報を保持するためのデータ内容を格 納しており、 プロセスを一意に識別するための I Dと、 プロセスの名称であるプ ロセス名と、 プロセスが実行の際に使用する C P Uの使用量と、 プロセスが実行 の際に使用するメモリの使用量との各項目からなる。 I Dのデータ属性はテキスト型、 あるいは数値だけで表すことができる場合に は整数型などとする。 プロセス名のデータ属性はテキス ト型などとし、 C P Uの 使用量と、 メモリの使用量のデータ属性は、 浮動小数点型などの属性として定義 する。
まず、 I Dが 1 0 0のレコードが示すプロセスのデータ内容は、 プロセス名が プロセス 1、 〇?!1の使用量が0 . 1 5、 メモリの使用量が 0 . 2である。 つぎ に、 I Dが 1 1 0のレコードが示すプロセスのデータ内容は、 プロセス名がプロ セス 2、 C P Uの使用量が 0 . 2、 メモリの使用量が 0 . 4であり、 C P Uとメ モリの使用量については I Dが 1 0 0の場合も同様である。 これは、 I Dが 1 0 0あるいは 1 1 0のプロセスをそれぞれ実行した場合に、 実行されたサーバにて 消費される C P Uとメモリの消費量の値が、 それぞれテーブルに登録された C P Uとメモリの使用量の数値分だけ増加することを示す。
負荷分散装置 1 0 1 aは、 端末装置 1 0 2からプロセスの実行の要求を受ける と、 プロセス情報テーブル 1 6 0 0のプロセス情報を利用し、 負荷を分散するた めのサーバを選択する。 なお、 分散するためのサーバ 1 0 1 b〜 1 0 1 nの数が 少ない場合などは、 上述したテーブルのようなデータベースを使ったテーブル管 理をせず、 テキストフアイルなどによる参照用のフアイルに記述しておく方が手 間が少ない場合がある。 そのような場合は、 テーブル内容を必要に応じて参照用 ファイルとして作成し、 そのフォーマツトも任意に決めることができるものとす る。
(テーブルの情報)
つぎに、 この発明の本実施の形態にかかる負荷分散装置が保持するサーバ情報 について説明する。 第 1 7図は、 この発明の本実施の形態にかかるサーバ ·クラ イアント ■システムのサーバの情報を保持するテーブルの一例を示す説明図であ る。 第 1 7図において、 サーバ情報テーブル 1 7 0 0は、 サーバの情報を保持す るためのデータを格納しており、 サーバを一意に識別するための接続先サーバ名 と、 各サーバで使用中の C P Uの使用率と、 各サーバで使用中のメモリの使用率 との各項目からなる。
接続先サーバ名のデータ属性はテキスト型、 あるいは、 数値だけで表される場 合には整数型などとする。 C P Uの使用率およびメモリの使用率のデータ属性は 、 浮動小数点型とする。 ここで、 サーバ情報テーブル 1 7 0 0に示される C PU あるいはメモリの使用率とは、 サーバ 1 0 1 a, 1 0 1 b , 1 0 1 cのそれぞれ で既に使用されている C PUあるいはメモリの割合を数値として表したものであ る。 なお、 サーバ 1 0 1 b, 1 0 1 c , 1 0 1 dにおける C PUおよびメモリの 使用率の最大値は 1. 0 (= 1 0 0%) とする。 負荷分散装置 1 0 1 aは、 これ らの値を各サーバから定期的にモニタリングしてテーブルにセットしたり、 ある いは、 負荷分散をおこなう際に必要に応じて取得したりしてもよい。 そして、 以 下では、 第 1 6図に示した I Dが 1 0 0のプロセス 1を、 サーバ 1 0 1 b, 1 0 1 c, 1 0 1 dのいずれのサーバに負荷分散するかについての評価をおこなう。 まず、 サーバ情報テーブル 1 7 0 0の 1段目に示す接続先サーバ名が 1 0 1 b のレコードは、 既に使用されている C PUの使用率が 0. 9で、 メモリの使用率 は 0. 8 8である。 このサーバ 1 0 1 bは C PUおよびメモリともに使用率が高 く、 第 1 6図に示したプロセス 1の C PUの使用量およびメモリの使用量を加算 すると、 それぞれ最大 の 1. 0 (= 1 0 0 %) を超えるため、 既にプロセス 1 を実行させるためのリソースの空きが無いことが分かる。
2段目に示す接続サーバ名が 1 0 1 cのレコードは、 〇?11の使用率が0. 5 で、 メモリの使用率が 0. 2である。 このサーバ 1 0 1 cに、 第 1 6図に示した プロセス 1の C PUの使用量およびメモリの使用量を加算した場合、 C PUの使 用率が 0. 6 5、 メモリの使用率が 0. 4となるため、 ともに 1. 0 (= 1 0 0 %) 未満であり、 プロセス 1を実行させるためのリソースの空きがあることが分 かる。
3段目に示す接続サーバ名が 1 0 1 dのレコードは、 C PUの使用率が 0. 3 で、 メモリの使用率が 0. 2である。 このサーバ 1 0 I dに、 第 1 6図に示した プロセス 1の C PUの使用量およびメモリの使用量を加算した場合、 C PUの使 用率が 0. 45、 メモリの使用率が 0. 4となるため、 ともに 1. 0 (= 1 00 %) 未満であり、 プロセス 1を実行させるためのリソースの空きがあることが分 かる。
さらに、 式 (5) を用いて、 これらサーバ 1 0 1 cとサーバ 1 0 1 dの消費リ ソース座標からリソース消費最適線へ下ろす垂線の距離 d i sをそれぞれ求める と、 サーバ 1 0 1 cでの距離 fま約 0. 1 7 7となり、 サーバ 1 04 cでの距離は 約 0. 0 3 5となる。 これにより、 負荷分散装置 1 0 1 aは、 距離の短いサーバ 1 0 1 dを最適なサーバとして選択し、 割り当てる。
また、 消費リソース座標と原点との距離 d i a gについては、 式 (1 0) より サーバ 1 0 1 cが約 0. 76 3、 サーバ 1 0 1 dが約 0. 6 0 2となり、 両者の 積 ( d i s X d i a g) の値 ίまサーバ 1 0 1 cの場合約 0. 1 3 5、 サーバ 1 0 I dの場合約 0. 0 2 1となり、 リソース消費最適線の長さ、 消費リソース座標 と原点との距離の両者を同時に考慮した場合でもサーバ 1 0 1 dを最適なサーバ に選択し、 割り当てる。
なお、 負荷を分散するためのサーバが、 サーバ 1 0 1 b, 1 0 1 c , 1 0 1 d といった数が少ない場合には、 上述のようなデータベースを使ったテーブル管理 をせず、 テキストフアイルなどによる参照用のフアイルに記述し、 更新させる方 が手間が少ない場合がある。 そのような場合は、 第 1 7図に示したテーブル内容 を必要に応じてテキストファイルとして書き出してもよく、 そのフォーマツトは 任意に決めて作成してよいものとする。 また、 図示していないが、 上述した CP Uゃメモリの使用率だけでなく、 各サーバにアクセスするための I Pァドレスや ポート番号などの項目も必要に応じてセットしてもよレ、。
(サーバの地域分散の内容)
つぎに、 この発明の本実施の形態にかかる地域ごとに管理されるサーバの負荷 分散について説明する。 第 1 8図は、 この発明の本実施の形態にかかるサーバ - クライアント ·システムのサーバの地域分散の一例を示す説明図である。 第 1 8 図において、 地域 Aには端末装置 1 0 2 aと、 負荷分散装置 1 80 1 aと、 セン タ 1 80 3に設置されるサーバ 1 80 3 a〜 1 8 0 3 nとが設置され、 地域 Bに は端末装置 1 0 2 bと、 負荷分散装置 1 80 1 bと、 センタ 1 8 04に設置され るサーバ 1 804 a〜 1 804 ηとが設置され、 店舗 Cには端末装置 1 0 2 cと 、 負荷分散装置 1 8 0 1 cと、 センタ 1 80 5に設置されるサーバ 1 8 0 5 a〜 1 80 5 nとが設置される。 これらにより、 地域あるいは店舗ごとに分散された 各装置を用いた複合 1¾勺なサーバ ·クライアント ■ システムの一例を示す。
地域 Aに設置される端末装置 1 0 2 aからのプロセス実行要求の流れを示す 1 i n e A 1は、 ユーザナビゲーション 1 8 0 2により 1 i n eA2を通じて負荷 分散装置 1 80 1 aに送信される。 ここで、 ユーザナビゲーシヨン 1 8 0 2とは 、 クライアントの I Pアドレスから地域を判別してルーティングしたり、 ロー力 ルの DNSサーバのァドレスから各地域を判別してルーティングをおこなうシス テムをいう。 これにより、 クライアントの各地域を特定し、 クライアントに最も 近い (ネットワーク的にデータ伝送の遅延が小さい) 地域に設置されたサーバを 優先的に割り当てることができる。 そして、 1 i n e A 2を通じて負荷分散装置 1 80 1 aに送信されたプロセスの実行要求は、 1 i n e A3を通じて同じ地域 Aに設置されるサーバ 1 80 3 aに負荷分散し、 プロセスの実行要求を送信する また、 地域 Bに設置される端末装置 1 0 2 bからのプロセス実行要求を示す 1 i n e B 1は、 ユーザナビゲーション 1 80 2により 1 i n e B 2を通じて負荷 分散装置 1 80 1 bに送信される。 ここで、 通常は地域 B内に設置されたサーバ 1 804 a〜 1 804 nのいずれかにプロセスの実行要求が送信される。 しかし 、 負荷分散装置 1 8 0 1 aと負荷分散装置 1 8 0 1 bとが、 配下のサーバ群のリ ソース監視情報を交換するような仕組みとした場合、 1 i n e B 3を通じて他の 地域 Aに設置されたサーバ 1 8 0 3 aに対して負荷分散させることができるよう になる。 また、 負荷分散装置 1 8 0 1 bによって地域 A、 Bおよび店舗 Cの全て のサーバのリソースを監視させれば、 地域 Aに設置されたサーバ 1 8 0 3 a以外 にも他の全てのサーバの中から負荷分散させるサーバを選択させることができる ようになる。
また、 店舗 Cに設置される端末装 S 1 0 2 cからのプロセス実行要求を示す 1 i n e C 1は、 ユーザナビゲーション 1 8 0 2により l i n e C 2を通じて負荷 分散装置 1 8 0 1 cに送信される。 負荷分散装置 1 8 0 1 cでは、 店舗 C内のサ ーバ 1 8 0 5 a〜 1 8 0 5 nの中から負荷分散可能なものを評価する。 し力 し、 端末装置 1 0 2 cと同じ店舗 C内に害 ijり当て可能なリソースを備えたサーバが無 い場合は、 1 i n e C 3を通じて隣の地域 Bにあるサーバ 1 8 0 4 nに負荷分散 させ、 充当させるようにすることができる。
また、 ゲームなどを含む多くのインターネットアプリケーションへのアクセス は、 時刻に応じてアクセス頻度が変動することが知られている。 例えば夜 1 0時 にアクセスのピークを迎え、 ピークの前後の例えば夜 9時、 1 1時のアクセス頻 度がピーク時よりも何割か小さいアプリケーションを想定する。 東西の時差を考 慮した場合、 前後 1時間の地域に配備されたサーバは、 ピーク時間帯を迎えてい る地域のサーバのリソースが枯渴していた場合に、 余剰リソースとしてピーク時 間帯のクライアントからのプロセス処理要求を受け付け処理するといつた東西地 域負荷分散が可能となる。 赤道上でも平均的な 1時間時差は 1 7 0 0 k m弱であ り、 伝播遅延によるラウンドトリップタイムは約 1 7 m sである。 ゲームなど、 頻繁にサーバ、 クライアント間の通信が行われるアプリケーションにおいても充 分に活用できる遅延であり、 時刻に ってピークを迎えるアプリケーションを有 効に負荷分散できる。
なお、 実行要求されたプロセスが Γ肖費するリソース容量さえ残っていれば、 負 荷分散先となるサーバは地域を問わずどこに設置されていても構わない。 このこ とにより、 一般的にあまりリソースの消費が激しくない W e bサーバとして使用 されているホスティングサーバや、 各地にあるネットワークカフェなどに設置さ れた複数の P Cサーバなどのリソースを部分的に借り受け、 負荷分散させるため のサーバとして契約することにより、 冗長性を持った負荷分散をおこなうことが できるようになる。 以上説明したように、 本実施の形態によれば、 端末装置 1 0 2から実行要求の あったプロセスの実行時のリ ソース消費量を用いて評価することにより、 そのプ 口セスが実行可能なサーバをサーバ 1 0 1 b〜 l 0 1 nの中から選択することが できるようになる。 また、 実行させるプロセスが新規追加あるいは修正されるご とに、 最新のリソース消費量を登録することにより、 プロセスの実行を常に最適 なサーバに割り当てることができるようになる。 そして、 実行要求のあったプロ セスのリソース消費量と、 常に監視しているサーバ 1 0 1 b〜 1 0 1 nが備えて いるリソースの残量とを用いてサーバを選択するため、 プロセスが消費するリソ ース量とサーバのリソース残量とがミスマッチすることを防止することができる 。
また、 実行要求のあったプロセスのリソース消費量と、 常に監視しているサー バ 1 0 1 b〜 1 0 1 11の備えるリソースの残量とを用い、 サーバのリソースが無 駄なく消費される関数にて評価することにより、 リソースが無駄なく消費される 最適なサーバを選択することができるようになる。 そして、 消費されるリソース の量がプロセスごとに異なるゲームやアプリケーションプログラムなどを実行さ せるサーバを、 複数の中から柔軟に選択することができるようになる。
また、 備えるリソースの量が一様でない複数のサーバの中から、 実行させたい プロセスが消費するリソースに合ったリソースの残量を持つサーバを柔軟に選択 することができるようになる。 これによつて、 理想的なサーバリソースの消費を おこなうことができ、 複数のサーバ全体の同時処理プロセス (ゲーム数など) が 最大化でき、 各サーバの各リ ソースパラメータについて、 無駄なく容量を使い切 ることができる。
また、 本実施の形態の負荷分散装置 1 0 1 aを使用すると、 リソースの残量が 不足してプロセスが実行できない、 あるいは、 プロセスがキューィングされてし まう可能性があるサーバなどに負荷分散されることを防ぐことができるので、 プ ロセスの実行要求に対する待ち時間を減少させることができる。
なお、 本実施の形態で説明した負荷分散方法は、 あらかじめ用意されたプログ ラムをパーソナル · コンピュータやワークステーション等のコンピュータで実行 することにより実現することができる。 このプログラムは、 ハードディスク、 フ レキシブルディスク、 C D— R〇M、 MO、 D V D等のコンピュータで読み取り 可能な記録媒体に記録され、 コンピュータによつて記録媒体から読み出されるこ とによって実行される。 またこのプログラムは、 ィンターネット等のネットヮ一 クを介して配布することが可能な伝送媒体であってもよい。 産業上の利用可能性
以上のように、 この発明にかかるサーバ ' クライアント ■システム、 負荷分散 装置、 負荷分散方法および負荷分散プログラムは、 負荷分散をおこなう先のサー バのリソースをバランスよく消費させるために有用であり、 特に、 ゲームなど多 くのユーザから実行要求のあるプロセスを複数のサーバに割り当てる場合に適し ている。

Claims

請 求 の 範 囲
1 . 複数のサーバと複数のクライアン トとがネットワークを介して接続され、 前 記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、 処 理結果を前記クライアントへ送信するサーバ ·クライアント ' システムにおいて 前記サーバのうちの少なくともいずれか一つが、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して 受信するプロセス情報受信手段と、
前記プロセス情報受信手段によって受信されたプロセスに関する情報に基づい て、 前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定 手段と、
前記決定手段によって決定されたサーバに関する情報を前記クライアントへ送 信するサーバ情報送信手段と、
を備え、
前記クライアントは、
前記サーバ情報送信手段によつて送信されたサーバに関する情報を前記ネット ワークを介して受信するサーバ情報受信手段と、
前記サーバ情報受信手段によつて受信された情報にかかるサーバへ、 前記プロ セス処理要求に関する情報を送信するプロセス要求送信手段と、
を備えたことを特徴とするサーバ 'クライアント ·システム。
2 . 前記決定手段は、
各サーバにおけるリソースのパラメータを軸とした空間上において、 前記プロ セスのリソース消費量を各サーバの現リソース消費量を表わす点に加えたことに よって求められるリソース消費量の予想点の、 原点とパラメータの使用可能な最 大容量を結ぶ直線との第 1の距離を算出する第 1の距離算出手段と、 各サーバにおけるリソースのパラメータを軸として空間上において、 前記プロ セスのリソース消費量を、 各サーバの現リソース消費量を表わす点に加えたこと によって求められるリソース消費量の予想点の、 原点との第 2の距離を算出する 第 2の距離算出手段と、
を備 、
前記第 1の距離および前記第 2の距離の一方ないしは両方の値に基づいて、 前 記プロセスを処理させるサーバを決定することを特徴とする請求の範囲第 1項に 記載のサーバ ' クライアント - システム。
3 . 前記パラメータには、 前言己サーバの C P Uの負荷量、 システムメモリの負荷 量、 グラフィック処理ュニッ トの負荷量、 ビデオメモリの負荷量およびネットヮ 一クインターフェースカードの負荷量の少なくともいずれか一つを含むことを特 徴とする請求の範囲第 2項に記載のサーバ ·クライアント ' システム。
4 . 複数のサーバと複数のクライアントとがネットワークを介して接続され、 前 記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、 処 理結果を前記クライアントへ送信するサーバ ·クライアント ■システムにおける 前記サーバの負荷を分散する負荷分散装置であって、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して 受信するプロセス情報受信手段と、
前記プロセス情報受信手段によって受信されたプロセスに関する情報に基づい て、 前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定 手段と、
前記決定手段によって決定されたサーバに関する情報を前記クライアントへ送 信するサーバ情報送信手段と、
を備えたことを特徴とする負荷分散装置。
5 . 前記決定手段は、
各サーバにおけるリソースのパラメータを軸とした空間上において、 前記プロ セスのリソース消費量を各サーバの現リソース消費量を表わす点に加えたことに よって求められるリソース消費量の予想点の、 原点とパラメータの使用可能な最 大容量を結ぶ直線との第 1の距離を算出する第 1の距離算出手段と、
各サーバにおけるリソースのパラメータを軸として空間上において、 前記プロ セスのリソース消費量を、 各サーバの現リソース消費量を表わす点に加えたこと によって求められるリソース消費量の予想^:の、 原点との第 2の距離を算出する 第 2の距離算出手段と、
を備え、
前記第 1の距離および前記第 2の距離の一方ないしは両方の値に基づいて、 前 記プロセスを処理させるサーバを决定することを特徴とする請求の範囲第 4項に 記載の負荷分散装置。
6 . 前記パラメータには、 前記サーバの C P Uの負荷量、 システムメモリの負荷 量、 グラフィック処理ュ-ットの負荷量、 ヒ、、デオメモリの負荷量およびネットヮ 一クインターフェースカードの負荷量の少なくともいずれか一つを含むことを特 徴とする請求の範囲第 5項に記載の負荷分散装置。
7 . 複数のサーバと複数のクライアントと力 ネットワークを介して接続され、 前 記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、 処 理結果を前記クライアントへ送信するサ一/ ·クライアント · システムにおける 前記サーバの負荷を分散する負荷分散方法であって、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して 受信するプロセス情報受信工程と、
前記プロセス情報受信工程によって受信されたプロセスに関する情報に基づい て、 前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定 工程と、
前記決定工程によって決定されたサーバへ、 前記プロセス処理要求に関する情 報を送信するプロセス要求送信工程と、
を含んだことを特徴とする負荷分散方法。
8 . 前記決定工程は、
各サーバにおけるリソースのノ、°ラメータを軸とした空間上において、 前記プロ セスのリソース消費量を各サーノ の現リソース消費量を表わす点に加えたことに よって求められるリソース消費量の予想点の、 原点とパラメータの使用可能な最 大容量を結ぶ直線との第 1の距離を算出する第 1の距離算出工程と、
各サーバにおけるリソースのノ、°ラメータを軸として空間上において、 前記プロ セスのリソース消費量を、 各サーバの現リソース消費量を表わす点に加えたこと によって求められるリソース消費量の予想点の、 原点との第 2の距離を算出する 第 2の距離算出工程と、
を含み、
前記第 1の距離および前記第 2の距離の一方ないしは両方の値に基づいて、 前 記プロセスを処理させるサーバを決定することを特徴とする請求の範囲第 7項に 記載の負荷分散方法。
9 . 前記パラメータには、 前記サーバの C P Uの負荷量、 システムメモリの負荷 量、 グラフィック処理ュニットの負荷量、 ビデオメモリの負荷量およびネッ トヮ 一クインターフェースカードの負荷量の少なくともいずれか一つを含むことを特 徴とする請求の範囲第 8項に記載の負荷分散方法。
1 0 . 複数のサーバと複数のクライアントとがネットワークを介して接続され、 前記クライアントからのプロセス要求に基づいて前記サーバが処理をおこない、 処理結果を前記クライアントへ送信するサーバ ·クライアント ■システムにおけ る前記サーバの負荷を分散する負荷分散プログラムであって、
前記クライアントから前記プロセスに関する情報を前記ネットワークを介して 受信するプロセス情報受信工程と、
前記プロセス情報受信工程によって受信されたプロセスに関する情報に基づい て、 前記複数のサーバの中から前記プロセスを処理させるサーバを決定する決定 工程と、
を前記サーバに実行させることを特徴とする負荷分散プログラム。
1 1 . 前記決定工程は、
各サーバにおけるリソースのパラメータを軸とした空間上において、 前記プロ セスのリソース消費量を各サーバの現リソース消費量を表わす点に加えたことに よって求められるリソース消費量の予想点の、 原点とパラメータの使用可能な最 大容量を結ぶ直線との第 1の距離を算出する第 1の距離算出工程と、
各サーバにおけるリソースのパラメータを軸として空間上において、 前記プロ セスのリソース消費量を、 各サーバの現リソース消費量を表わす点に加えたこと によって求められるリソース消費量の予想点の、 原点との第 2の距離を算出する 第 2の距離算出工程と、
を含み、
前記第 1の距離および前記第 2の距離の一方ないしは両方の値に基づいて、 前 記プロセスを処理させるサーバを決定することを特徴とする請求の範囲第 1 0項 に記載の負荷分散プログラム。
1 2 . 前記パラメータには、 前記サーバの C P Uの負荷量、 システムメモリの負 荷量、 グラフィック処理ユニットの負荷量、 ビデオメモリの負荷量およびネット ワークインターフェースカードの負荷量の少なくともいずれか一つを含むことを 特徴とする請求の範囲第 1 1項に記載の負荷分散プログラム。
PCT/JP2003/016252 2003-12-18 2003-12-18 サーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラム WO2005062176A1 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
PCT/JP2003/016252 WO2005062176A1 (ja) 2003-12-18 2003-12-18 サーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラム
US10/583,358 US7992152B2 (en) 2003-12-18 2003-12-18 Server/client system, load distribution device, load distribution method, and load distribution program
JP2005512315A JP3970902B2 (ja) 2003-12-18 2003-12-18 サーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラム
EP03780885.4A EP1696324B1 (en) 2003-12-18 2003-12-18 Server/client system, load distribution device, load distribution method, and load distribution program
CNB2003801108545A CN100555226C (zh) 2003-12-18 2003-12-18 服务器/客户端系统,负荷分散装置,负载分散方法
ES03780885.4T ES2585178T3 (es) 2003-12-18 2003-12-18 Sistema servidor/cliente, dispositivo de distribución de carga, procedimiento de distribución de carga y programa de distribución de carga
CNB2003801108564A CN100537361C (zh) 2003-12-18 2003-12-18 蛋产品制备组件
KR1020067011881A KR100874421B1 (ko) 2003-12-18 2003-12-18 서버·클라이언트 시스템, 부하 분산 장치, 부하 분산 방법 및 부하 분산 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/016252 WO2005062176A1 (ja) 2003-12-18 2003-12-18 サーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラム

Publications (1)

Publication Number Publication Date
WO2005062176A1 true WO2005062176A1 (ja) 2005-07-07

Family

ID=34708582

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/016252 WO2005062176A1 (ja) 2003-12-18 2003-12-18 サーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラム

Country Status (7)

Country Link
US (1) US7992152B2 (ja)
EP (1) EP1696324B1 (ja)
JP (1) JP3970902B2 (ja)
KR (1) KR100874421B1 (ja)
CN (2) CN100537361C (ja)
ES (1) ES2585178T3 (ja)
WO (1) WO2005062176A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008033852A (ja) * 2006-08-01 2008-02-14 Hitachi Ltd リソース管理システム及びその方法
JP2009134640A (ja) * 2007-11-30 2009-06-18 Hitachi Ltd リソース割当方法、リソース割当プログラム、および、運用管理装置
KR100915424B1 (ko) * 2006-12-08 2009-09-03 주식회사 타오네트웍스 서비스 처리 시스템
WO2013077034A1 (ja) * 2011-11-21 2013-05-30 株式会社ソニー・コンピュータエンタテインメント 情報処理システム、情報処理方法、プログラム及び情報記憶媒体

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7903571B1 (en) * 2004-07-09 2011-03-08 Hewlett-Packard Develpment Company, L.P. System and method for improving multi-node processing
US7693840B1 (en) * 2004-07-30 2010-04-06 Sprint Communications Company L.P. Method and system for distribution of common elements
US8423670B2 (en) * 2006-01-25 2013-04-16 Corporation For National Research Initiatives Accessing distributed services in a network
US7743140B2 (en) * 2006-12-08 2010-06-22 International Business Machines Corporation Binding processes in a non-uniform memory access system
JP5176877B2 (ja) * 2008-10-31 2013-04-03 富士通株式会社 構成定義情報生成プログラム、構成定義情報生成装置、構成定義情報生成方法および監視プログラム
JP5347648B2 (ja) * 2009-03-30 2013-11-20 富士通株式会社 プログラム、情報処理装置及び状態出力方法
US8504556B1 (en) * 2010-03-08 2013-08-06 Amazon Technologies, Inc. System and method for diminishing workload imbalance across multiple database systems
JP5471702B2 (ja) * 2010-03-26 2014-04-16 富士通株式会社 通信装置、通信システムおよび状態監視方法
KR101544480B1 (ko) * 2010-12-24 2015-08-13 주식회사 케이티 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
KR101946004B1 (ko) 2012-01-11 2019-02-11 삼성전자주식회사 마이크로프로세서 칩, 데이터 센터, 및 컴퓨팅 시스템
US8959482B2 (en) * 2012-08-21 2015-02-17 International Business Machines Corporation Enabling multi-tenancy for a commerce server
JP6015381B2 (ja) * 2012-11-26 2016-10-26 日本電気株式会社 通信システム
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
US20150242597A1 (en) * 2014-02-24 2015-08-27 Google Inc. Transferring authorization from an authenticated device to an unauthenticated device
JP2017102777A (ja) * 2015-12-03 2017-06-08 富士通株式会社 負荷分散処理サーバ、負荷分散処理方法、及び、システム
CN109711554B (zh) * 2018-09-07 2021-06-04 天翼电子商务有限公司 一种基于基础设施大数据的应用弹性管理装置
US11704617B2 (en) * 2019-06-20 2023-07-18 Stripe, Inc. Systems and methods for modeling and analysis of infrastructure services provided by cloud services provider systems
US11151150B2 (en) * 2019-09-13 2021-10-19 Salesforce.Com, Inc. Adjustable connection pool mechanism
US11165857B2 (en) 2019-10-23 2021-11-02 Salesforce.Com, Inc. Connection pool anomaly detection mechanism

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0384339A2 (en) 1989-02-24 1990-08-29 Digital Equipment Corporation Broker for computer network server selection
JPH10198643A (ja) * 1997-01-09 1998-07-31 Hitachi Ltd 分散計算機システム
JPH10307783A (ja) * 1997-05-07 1998-11-17 N T T Data:Kk サイトアクセス制御システム及び記録媒体
JP2000047890A (ja) * 1998-07-31 2000-02-18 Hitachi Ltd 分散オブジェクト管理システムとそのオブジェクト選択方法およびその処理プログラムを記録した記録媒体
JP2000112908A (ja) * 1998-10-06 2000-04-21 Toshiba Corp 負荷分散dnsシステム
EP1170663A2 (en) * 2000-07-05 2002-01-09 Matsushita Electric Industrial Co., Ltd. Job distributed processing method and distributed processing system
JP3472540B2 (ja) * 2000-09-11 2003-12-02 日本電信電話株式会社 サーバ選択装置、サーバ選択方法、及びサーバ選択プログラムを記録した記録媒体

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341477A (en) * 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
JPH0793262A (ja) 1993-09-27 1995-04-07 Nec Corp アプリケーションツール実行管理システム
US6463454B1 (en) * 1999-06-17 2002-10-08 International Business Machines Corporation System and method for integrated load distribution and resource management on internet environment
US6938256B2 (en) 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
JP2002269061A (ja) 2001-03-08 2002-09-20 Ntt Comware Corp クライアントサーバシステム、中継サーバ、接続先サーバの決定方法
US7320131B1 (en) * 2001-06-06 2008-01-15 Cisco Technology, Inc. Methods and apparatus for selecting a server to process a request
KR100450605B1 (ko) 2001-12-07 2004-09-30 임민열 웹-어플리케이션 서버 및 그의 동적 컨텐츠 제공 방법
US7461166B2 (en) 2003-02-21 2008-12-02 International Business Machines Corporation Autonomic service routing using observed resource requirement for self-optimization

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0384339A2 (en) 1989-02-24 1990-08-29 Digital Equipment Corporation Broker for computer network server selection
JPH10198643A (ja) * 1997-01-09 1998-07-31 Hitachi Ltd 分散計算機システム
JPH10307783A (ja) * 1997-05-07 1998-11-17 N T T Data:Kk サイトアクセス制御システム及び記録媒体
JP2000047890A (ja) * 1998-07-31 2000-02-18 Hitachi Ltd 分散オブジェクト管理システムとそのオブジェクト選択方法およびその処理プログラムを記録した記録媒体
JP2000112908A (ja) * 1998-10-06 2000-04-21 Toshiba Corp 負荷分散dnsシステム
EP1170663A2 (en) * 2000-07-05 2002-01-09 Matsushita Electric Industrial Co., Ltd. Job distributed processing method and distributed processing system
JP3472540B2 (ja) * 2000-09-11 2003-12-02 日本電信電話株式会社 サーバ選択装置、サーバ選択方法、及びサーバ選択プログラムを記録した記録媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1696324A4 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008033852A (ja) * 2006-08-01 2008-02-14 Hitachi Ltd リソース管理システム及びその方法
KR100915424B1 (ko) * 2006-12-08 2009-09-03 주식회사 타오네트웍스 서비스 처리 시스템
JP2009134640A (ja) * 2007-11-30 2009-06-18 Hitachi Ltd リソース割当方法、リソース割当プログラム、および、運用管理装置
JP4523965B2 (ja) * 2007-11-30 2010-08-11 株式会社日立製作所 リソース割当方法、リソース割当プログラム、および、運用管理装置
WO2013077034A1 (ja) * 2011-11-21 2013-05-30 株式会社ソニー・コンピュータエンタテインメント 情報処理システム、情報処理方法、プログラム及び情報記憶媒体
US10232252B2 (en) 2011-11-21 2019-03-19 Sony Interactive Entertainment Inc. Information processing system, information processing method, program, and information storage medium

Also Published As

Publication number Publication date
EP1696324A4 (en) 2008-04-16
KR100874421B1 (ko) 2008-12-16
ES2585178T3 (es) 2016-10-04
CN100537361C (zh) 2009-09-09
EP1696324B1 (en) 2016-04-06
US7992152B2 (en) 2011-08-02
JP3970902B2 (ja) 2007-09-05
US20070118630A1 (en) 2007-05-24
KR20070001911A (ko) 2007-01-04
JPWO2005062176A1 (ja) 2007-07-19
CN1886731A (zh) 2006-12-27
EP1696324A1 (en) 2006-08-30
CN100555226C (zh) 2009-10-28
CN1886306A (zh) 2006-12-27

Similar Documents

Publication Publication Date Title
JP3987880B2 (ja) サーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラム
WO2005062176A1 (ja) サーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラム
US8838769B2 (en) Method and system for providing remote access to applications
KR101662328B1 (ko) Ims 네트워크를 통한 멀티미디어 서비스의 최적화를 위한 방법 및 시스템
TW200826706A (en) Wireless network handover apparatus, method, application program, and computer readable medium for dynamic handover
MX2008013946A (es) Provision global de millones de usuarios con unidades de despliegue.
CN108600344A (zh) 一种网络访问请求调度方法、装置和存储介质
CN107426323A (zh) 一种基于分布式的资源服务与可视化监控系统及方法
JP2006079386A (ja) ストレージエリアネットワーク管理システム及び管理装置とボリューム割当て方法並びにコンピュータ・ソフトウエア
US20050060360A1 (en) Method, system and program product for managing system resources
CN112269628A (zh) 资源调度系统及方法
CN112686528B (zh) 用于分配客服资源的方法、装置、服务器和介质
US10691700B1 (en) Table replica allocation in a replicated storage system
WO2012025000A1 (zh) 蓝牙服务的管理方法和装置
US20020002616A1 (en) Method and apparatus for providing multimedia service in network environment
CN103248668B (zh) 虚拟桌面服务参数的协商方法、装置及系统
JP2019041241A (ja) 振り分けシステム
JP2009130673A (ja) コールセンター管理サーバ及び通話制御方法及び通話制御プログラム
CN113098841A (zh) 一种登录云电脑的排队方法及计算机设备和可读存储介质
WO2022188509A1 (zh) 分布式环境下的任务处理方法、装置、电子设备和介质
US20240073111A1 (en) Cloud Service Deployment Method of Cloud Platform and Related Device
CN114816782A (zh) 信息处理方法、服务器及平台
CN112948141A (zh) 一种基于消息中间件的数据处理方法、装置和系统

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200380110854.5

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP KR US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2005512315

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2003780885

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020067011881

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2007118630

Country of ref document: US

Ref document number: 10583358

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2003780885

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 10583358

Country of ref document: US