1. Field of the Invention
The present invention relates to a computer system in which computer resources must be reallocated along with a variation in load. In particular, the present invention is concerned with an optimal method of allocating the resources.
2. Description of the Related Art
As far as recent computer systems are concerned, the load on a computer system rapidly increases under specific conditions including a user-specific situation and a market movement, or in other words, in the cases of shopping on the Web, transaction on a stock exchange, and online banking. On this occasion, a response time increases or the system may go down. On the other hand, it is not cost-efficient to make sufficient computer resources available all the time in case of a temporary increase in load. There is a demand for a mechanism of avoiding degradation of a service level caused by a sharp variation in load.
Known as one of such mechanisms is a method of adding resources if necessary or releasing resources, which are not needed any longer, in preparation for any other purpose (for example, HotRod Demo. released from IBM Corp.).
In the above case, a server periodically manages past load information as time-sequential information, predicts load using the time-sequential information and pre-prepared rules, and validates or invalidates auxiliary hardware if necessary.
According to the foregoing related art, the server periodically manages past load information as time-sequential information, predicts load using the time-sequential information and pre-prepared rules, and validates or invalidates auxiliary hardware if necessary.
In order to appropriately predict load according to a specific function or algorithm, it is necessary to designate parameters properly. The designation is time-consuming. Moreover, even if the parameters are thus designated, they may soon become useless due to a change in an environment.
In order to solve the above problems, a mode described below is proposed.
Specifically, a computer system includes a server that receives messages sent from respective terminals, performs handlings associated with the received messages, and reallocates resources along with a variation in load deriving from the reception of messages. Herein, the computer system comprises: an input counting means for classifying the messages received from the respective terminals on the basis of an input classification table, and transmitting messages, which are classified into each category, as time-sequential input information; and a resource control means for predicting a minimum usage of each resource according to the time-sequential input information, time-sequential load information that represents a change in load on each resource, and load prediction rules in which a predicted value of a variation in load occurring in the server in a predetermined time due to the reception of messages is recorded.
The message counting unit 1100 is connected to the first to fourth terminals 1010 to 1040 and connected to the front-end server 1310 over the network 1501. The message counting unit 1100 includes an input counting facility 1200 (which will be detailed later), and can access the input classification information 1210 and time-sequential input information 1220 that are stored in external storage devices 1210 and 1220. Incidentally, hereinafter, what is referred to as a facility will be a software program to be run by a processor included in each unit. Alternatively, the facilities may be realized as dedicated hardware devices. Noted is that although each of the facilities may be described as an entity that performs an action, the processor that runs the facility (program) or the dedicated hardware realizing the facility actually performs the action.
The front-end server 1310 includes a resource control facility 1410 (which will be detailed later), and can access time-sequential load information 1411, load prediction rules 1412, and a configuration modification history 1413 that are stored in external storage devices. Likewise, the application server 1320 includes a resource control facility 1420, and can access time-sequential load information 1421, load prediction rules 1422, and a configuration modification history 1423. Similarly, the database server 1330 includes a resource control facility 1430 and can access time-sequential load information 1431, load prediction rules 1432, and a configuration modification history 1433.
The input counting facility 1200 counts the number of user entries 11 made at the terminals 1010 to 1040. The input counting facility 1200 references past time-sequential input information 18, which is recorded in the time-sequential input information 1220, and additionally registers the information 19 on the new entries.
Moreover, the user entries 11 are transferred as messages 12, of which formats are held intact, to the front-end server 1310, and then handled. When the front-end server 1310 handles the messages, the front-end server 1310 transfers, if necessary, a request 13 to the application server 1320. When the application server 1320 handles the messages, the application server 1320 transfers, if necessary, a request 14 to the database server 1330. The results 15 of handling of the messages by the database server 1330 are returned to the application server 1320. The results 16 of handling of the messages by the application server 1320 are returned to the front-end server 1310. The results of handling of the messages by the front-end server 1310 are transmitted as responses 17 to the respective terminals 1010 to 1040. While these message handlings are executed, the loads on the servers 1310, 1320, and 1330 vary.
The resource control facility 1410 included in the front-end server 1310 predicts a load value to be imposed on the system in the future on the basis of the time-sequential load information 1411 and the load prediction information 20 recorded in the time-sequential input information 1220. For the prediction of the load, the front-end server 1310 uses the dedicated load prediction rules 1412. Based on the results of the prediction, the resource control facility 1410 modifies the usages of resources included in the front-end server 1310. The resource control facility 1410 verifies whether the modification of the usages of resources has been made appropriately. Based on the result of the verification, the load prediction rules 1412 are corrected.
Incidentally, the resource control facility 1420 included in the application server 1320 and the resource control facility 1430 included in the database server 1330 reference and handle data in the same manner as the resource control facility 1410 included in the front-end server 1310 does.
Next, referring to
The CPU use rate table 4100 comprises a column for a date 4110, a column for a time instant 4120, and a column for a load value (CPU use rate) 4130. Likewise, the memory usage table 4200 comprises a column for a date 4210, a column for a time instant 4220, and a column for a load value (memory usage) 4230.
A table 5010 listing time-sequential information indicates a transition of the number of arriving messages per unit time for each kind of input message. The time-sequntial information table 5010 comprises rows 5011 each including a kind of input message and the numbers of messages arriving during respective time zones of one hour long.
The input message analysis/classification feature 6010 analyses and classifies input messages. The time-sequential input message information counting feature 6020 counts the number of messages of each kind, and records the count values as the time-sequential information 1220 like the one shown in
The resource control facility 1410, 1420, or 1430 included in the server 1310, 1320, or 1330 comprises a time-sequential load information production feature 6110, a load prediction feature 6120, a resource allocation determination feature 6130, a system configuration modification feature 6140 for reallocation of resources, and a load prediction rule correction feature 6150.
The time-sequential load information production feature 6110 collects, counts, records pieces of server load information, and produces the time-sequential load information shown in
Next, referring to
Referring to
Finally, the message counting unit 1100 counts the number of input messages for each category, and records the count values together with the request input time instants in the time-sequential input information 1220 in the same manner as that shown in
Resource control flows to be followed by the three servers 1310, 1320, and 1330 are identical to one another. Hereinafter, the resource control flow will be described by taking the resource control facility 1410 included in the front-end server for instance.
To begin with, load information on the front-end server 1310 is collected and recorded in the time-sequential information 1411 as shown in
When resource control has been extended through load prediction in the past, the load prediction rule correction feature 6150 is used to correct the load prediction rules 1412 (step 8120).
Thereafter, based on the time-sequential input information 1220 shown in
Thereafter, usages of resources required for treating the predicted load are calculated, and a request for the usages of resources is issued to the resource control facility 1410 (step 8140).
The system configuration modification feature modifies the system configuration so as to meet the request (step 8150).
Hereinafter, the foregoing steps (steps 8110 to 8150) are repeated in order to extend control for retaining the usages of resources at appropriate values.
First, the usages of resources presented to the system configuration modification feature 6140 are compared with the current usages of the resources included in the system (step 9050).
If the usages of resources disagree with the current usages thereof, the system configuration is modified so that it will match the calculated usages of resources (step 9060). The contents of the modification are recorded in the configuration modification history 1413 (step 9070).
First, the time-sequential load information 1411 and configuration modification history 1413 are collated with each other (step 8080). If load is verified not to be maintained appropriately after modification of the system configuration, the load prediction rules 1412 are corrected based on the time-sequential load information 1411 and configuration modification history 1413 as well as the time-sequential input information 1220 (step 9090).
Likewise, twenty-first to twenty-third CPUs 1321 to 1323 are allocated to the application server 1320, and twenty-first to twenty-third auxiliary CPUs 1421 to 1423 are made available. Thirty-first to thirty-third CPUs 1331 to 1333 are allocated to the database server 1330, and thirty-first to thirty-third auxiliary CPUs 1431 to 1433 are made available.
A first message 1101 classified as the first kind of input “input 1” specified as a category in the input message classification table 300 is transmitted from each of the first to fourth terminals 1010 to 1040 to the input counting facility 1200 included in the message counting unit 1100. A second message 1102 classified as the second kind of input “input 2” is transmitted from the fourth terminal 1040 to the input counting facility 1200 included in the message counting unit 1100. The input counting facility 1200 records the numbers of arriving messages in the table 5010. The servers 1310, 1320, and 1330 execute message handling, and a transition of the load on CPUs is recorded in the CPU use rate table 4100.
Assume that the number of input messages of the second kind “Input 2” having arrived over the last one minute has increased to be larger by 30 messages than the number of input messages received over one minute before the last one minute.
Under the circumstances, the resource control facilities 1410 and 1420 included in the front-end server and application server receive information on a current situation from the input counting facility 1200. The load prediction rules 1412 and 1422 bring the conclusion that an increase in load occurs in the front-end server 1310 and application server 1320. Consequently, the number of CPUs to be allocated to the front-end server 1310 is increased by 1, and the number of CPUs to be allocated to the application server 1320 is increased by 2. Specifically, the eleventh auxiliary CPU 1411 included in the front-end server is activated as a thirteenth CPU 1313. The twenty-first and twenty-second auxiliary CPUs 1421 and 1422 included in the application server are activated as twenty-fourth and twenty-fifth CPUs 1324 and 1325 respectively.
Thereafter, if the fact that the load on the front-end server 1310 does not increase is verified a sufficient number of times, a load prediction rule correction feature 6150-1 included in the front-end server corrects the load prediction rules 1412 relevant to the front-end server 1310. Consequently, under the conditions presented in the foregoing case, the prediction that the load on CPUs allocated to the front-end server 1310 will increase will not be made.
The resource control facilities 1410 and 1420 receive information on a current situation from the input counting facility 1200. The load prediction rules 1412 and 1422 bring the conclusion that the load will decrease. Accordingly, the number of CPUs to be allocated to the front-end server 1310 is decreased by 1, and the number of CPUs to be allocated to the application server 1320 is decreased by 2. Specifically, the thirteenth CPU 1313 included in the front-end server is inactivated and put to standby as the eleventh auxiliary CPU 1411. Moreover, the twenty-fourth and twenty-fifth CPUs 1324 and 1325 included in the application server are inactivated and put to standby as the twenty-first and twenty-second auxiliary CPUs 1421 and 1422 respectively.
Thereafter, if an event that the load on the front-end server 1310 returns to the peak is observed some times, the load prediction rule correction feature 6150-1 corrects the load prediction rules 1412 relevant to the front-end server 1310. Thereafter, if the conditions presented in the case are met, the prediction that the load on CPUs will remain low and get stabilized will not be made.
Next, referring to
To begin with,
Assume that the numbers of CPUs to be allocated to the front-end server 1310 and application server 1320 respectively are increased under the same preconditions as those for the case shown in
Assume that the numbers of CPUs to be allocated to the front-end server 1310 and application server 1320 respectively are decreased under the same preconditions as those for the case shown in
Next, referring to
Assume that the numbers of CPUs to be allocated to the front-end server 1310 and application server 1320 are increased under the same preconditions as those described in conjunction with
Assume that the numbers of CPUs to be allocated to the front-end server 1310 and application server 1320 are decreased under the same preconditions as those described in conjunction with
Consequently, precision in predicting the load on a system improves. A service level provided for users and indicated with a response time of the system or the like can be reliably retained at a satisfactory level.
As described so far, according to the present embodiment, a computer system comprises a plurality of servers and acts in consideration of a variation in load. A receiving-side server predicts future load on the basis of the contents and kinds of messages received from terminals, the attributes of senders, the number of arriving messages or a variation in the number of arriving messages, and load prediction rules. The receiving-side server then preserves required computer resources. Thereafter, the receiving-side server receives and handles messages. At this time, the receiving-side server measures the load actually. imposed, compares the result of load prediction with a variation in the actually imposed load, and corrects the rules, which are used to predict load, according to the result of the comparison. Eventually, the precision in predicting load improves.
Since the present invention includes the aforesaid components, the present invention can provide a computer system capable of effectively allocating resources despite a variation in load, and retaining a service level, which is indicated with a response time or the like, at a predetermined value.
Number | Date | Country | Kind |
---|---|---|---|
2003-364816 | Oct 2003 | JP | national |