US20060206900A1 - Apparatus and program for controlling loads - Google Patents
Apparatus and program for controlling loads Download PDFInfo
- Publication number
- US20060206900A1 US20060206900A1 US11/174,508 US17450805A US2006206900A1 US 20060206900 A1 US20060206900 A1 US 20060206900A1 US 17450805 A US17450805 A US 17450805A US 2006206900 A1 US2006206900 A1 US 2006206900A1
- Authority
- US
- United States
- Prior art keywords
- load
- multiplicity
- resource
- server
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5022—Workload threshold
Definitions
- This invention relates to a load control apparatus and load control program for controlling a load on a server and, more particularly, to a load control apparatus and load control program for controlling a load on a server by adjusting the multiplicity of processing.
- Load control is exercised for efficiently operating large-scale computer systems. This load control includes overload control and underload control.
- overload control is exercised to reduce the load to a value smaller than or equal to the threshold.
- underload control is exercised to raise the load so that it will approach the threshold.
- overload control is usually exercised.
- overload control the upper limit value of the load factor of each resource which users can use is set in advance, and a load on each resource is controlled so that it will not exceed the upper limit value.
- a plurality of server processes are started to handle the requests from the terminal units.
- the number of server processes simultaneously started is referred to as a multiplicity.
- requests from a plurality of terminal units may be made in a specific period of time.
- a load factor in each server process rises.
- the server computer automatically increases a multiplicity.
- Increasing a multiplicity reduces a load in each server process. This prevents the processing load on the server computer from exceeding a predetermined load factor.
- I/O processing capability is smaller than the CPU's processing capability. Even if the multiplicity of the processing is increased at the time of a processing load on a resource other than the CPU caused by carrying out the business exceeding an upper limit value, the CPU must wait for I/O. Because of such wait time, it takes a longer time to handle each piece of business. Therefore, efficiency in processing in the entire system is not improved.
- An object of the present invention is to provide a load control apparatus and load control program capable of making a server perform processing at a multiplicity most suitable for improving processing efficiency.
- a load control apparatus for controlling a load on a server which performs multiplex processing.
- This load control apparatus comprises a load information acquisition section for acquiring load information regarding loads on a CPU resource and other resources on the server; a multiplicity determination section for calculating, on the basis of the load information, an increase in load on each resource caused by increasing a multiplicity of a process which is being performed by the server, and for determining, on the basis of the load information, a multiplicity by which a load on each of all the resources becomes smaller than or equal to an upper limit value set in advance; and a multiplicity control section for changing the multiplicity of the process which is being performed by the server to the multiplicity determined by the multiplicity determination section.
- FIG. 1 gives an overview of an embodiment of the present invention.
- FIG. 2 shows an example of the system configuration of the embodiment of the present invention.
- FIG. 3 shows an example of the hardware configuration of a performance management server used in the embodiment of the present invention.
- FIG. 4 is a block diagram showing a function for managing performance.
- FIG. 5 shows an example of the data structure of a performance information log.
- FIG. 6 shows an example of the data structure of a load control object batch table.
- FIG. 7 shows information regarding a CPU resource and an I/O resource included in a resource load management table.
- FIG. 8 shows information regarding a communication resource included in the resource load management table.
- FIG. 9 shows information regarding a process resource included in the resource load management table.
- FIG. 10 is a flow chart showing the procedure for a load parameter setting process.
- FIG. 11 shows an example of the data structure of a load simulation table.
- FIG. 12 is a flow chart showing the procedure for an I/O load control process.
- FIG. 13 is a schematic view showing processing capability which can be assigned to one batch process.
- FIG. 14 is a flow chart showing the procedure for a communication load control process.
- FIG. 15 is a schematic view showing the storage capacity of a communication buffer which can be assigned to one batch process.
- FIG. 16 is a schematic view showing a multiplicity adjustment process.
- FIG. 17 shows entire processing time taken if no interval is set.
- FIG. 18 shows entire processing time taken if an interval is set.
- FIG. 1 gives an overview of an embodiment of the present invention.
- a load control apparatus 1 controls a load on a server 2 which performs multiplex processing.
- the load control apparatus 1 comprises a load information acquisition section 1 a , a multiplicity determination section 1 b , and a multiplicity control section 1 c .
- the load information acquisition section 1 a acquires load information regarding loads on a CPU resource and other resources (for example, at least one of hardware resources, such as an I/O resource and a communication resource, and software resources, such as a process resource) on the server 2 .
- the multiplicity determination section 1 b calculates an increase in load on each resource caused by increasing the multiplicity of a process which is being performed by the server 2 , and determines a multiplicity by which a load on each of all resources becomes smaller than or equal to an upper limit value set in advance.
- the multiplicity control section 1 c changes the multiplicity of the process which is being performed by the server 2 to the multiplicity determined by the multiplicity determination section 1 b.
- the load information acquisition section 1 a acquires load information regarding loads on the CPU resource and the other resources on the server 2 .
- the multiplicity determination section 1 b calculates an increase in load on each resource caused by increasing the multiplicity of the process which is being performed by the server 2 , and determines a multiplicity by which a load on each of all the resources becomes smaller than or equal to an upper limit value set in advance.
- the multiplicity control section 1 c changes the multiplicity of the process which is being performed by the server 2 to the multiplicity determined by the multiplicity determination section 1 b.
- an interval may be set for I/O access when a load caused by I/O access, communication, or the like reaches an upper limit value. Setting an interval for I/O access reduces wait time for the I/O access and therefore improves processing efficiency.
- I/O processing wait time is shortened. As a result, the CPU can simultaneously perform all of the processes started, resulting in efficient processing.
- an interval is not adjusted. An interval is adjusted in order to prevent I/O wait time from becoming longer.
- I/O wait time corresponding to the load is short and does not change appreciably. Accordingly, there is no need to set an interval.
- FIG. 2 shows an example of the system configuration of the embodiment of the present invention.
- a performance management server 100 is connected to application servers 210 , 220 , and 230 via a local area network (LAN) 10 for management.
- the application servers 210 , 220 , and 230 provide various services to clients 21 , 22 , etc. via a network 20 .
- the application servers 210 , 220 , and 230 send their resource load information to the performance management server 100 .
- each of the application servers 210 , 220 , and 230 changes the multiplicity of service-providing affairs and an I/O interval in response to a request from the performance management server 100 .
- the performance management server 100 manages the performance of the application servers 210 , 220 , and 230 and adjusts a balance among loads on the application servers 210 , 220 , and 230 . To be concrete, the performance management server 100 instructs the application server 210 , 220 , or 230 which has processing capability to spare to increase a multiplicity and set a proper interval.
- FIG. 3 shows an example of the hardware configuration of the performance management server used in the embodiment of the present invention.
- the whole of the performance management server 100 is controlled by a CPU 101 .
- a random access memory (RAM) 102 a hard disk drive (HDD) 103 , a graphics processing unit 104 , an input interface 105 , and a communication interface 106 are connected to the CPU 101 via a bus 107 .
- RAM random access memory
- HDD hard disk drive
- the RAM 102 temporarily stores at least part of an operating system (OS) or an application program executed by the CPU 101 .
- the RAM 102 also stores various pieces of data which the CPU 101 needs to perform a process.
- the HDD 103 stores the OS and application programs.
- a monitor 11 is connected to the graphics processing unit 104 .
- the graphics processing unit 104 displays an image on a screen of the monitor 11 .
- a keyboard 12 and a mouse 13 are connected to the input interface 105 .
- the input interface 105 sends a signal sent from the keyboard 12 or the mouse 13 to the CPU 101 via the bus 107 .
- the communication interface 106 is connected to the LAN 10 .
- the communication interface 106 exchanges data with the application servers 210 , 220 , and 230 via the LAN 10 .
- the processing function of the embodiment of the present invention can be realized by adopting the above-mentioned hardware configuration.
- FIG. 3 an example of the hardware configuration of the performance management server 100 is shown.
- the application servers 210 , 220 , and 230 and the clients 21 , 22 , etc. can be realized by adopting the same hardware configuration.
- FIG. 4 is a block diagram showing a function for managing performance.
- the application server 210 includes a performance information providing section 211 and business applications 212 a , 212 b , and 212 c.
- the performance information providing section 211 acquires load information regarding a CPU, I/O, a network, and processes for the application server 210 and sends it to the performance management server 100 .
- the performance information providing section 211 acquires pieces of information, such as a business processing group name, resource usage (load factor), resource use time, and process performance time, for each of the business applications 212 a , 212 b , and 212 c and sends them to the performance management server 100 as performance information. Services are provided to the clients 21 , 22 , etc. by the business applications 212 a , 212 b , and 212 c .
- Each of the business applications 212 a , 212 b , and 212 c can start a plurality of processes and perform them simultaneously.
- FIG. 4 shows the function of the application server 210 .
- the application servers 220 and 230 have the same function.
- the performance management server 100 includes performance information acquisition sections 110 , 110 a , and 110 b corresponding to the application servers 210 , 220 , and 230 respectively, performance information logs 120 , 120 a , and 120 b corresponding to the application servers 210 , 220 , and 230 respectively, load control object batch tables 131 , 132 , and 133 corresponding to the application servers 210 , 220 , and 230 respectively, resource load management tables 141 , 142 , and 143 corresponding to the application servers 210 , 220 , and 230 respectively, and automatic load control sections 150 , 150 a , and 150 b corresponding to the application servers 210 , 220 , and 230 respectively.
- the performance information acquisition sections 110 , 110 a , and 110 b acquire performance information from the corresponding application servers 210 , 220 , and 230 and store it in the corresponding performance information logs 120 , 120 a , and 120 b .
- the performance information logs 120 , 120 a , and 120 b are storage media for storing the performance information acquired from the corresponding application servers 210 , 220 , and 230 .
- Load control is exercised only for long batch processes (batch processes which takes predetermined time or more to perform).
- the reason for excluding a batch process which is completed in a short period of time from the object of load control is as follows.
- a load on a system caused by a batch process which is completed in a short period of time is originally small, so there is no need to control a multiplicity.
- an online process is also excluded from the load control.
- An online process is performed in response to a request from a client. Resources must be assigned to it with some margin left. Therefore, it is not appropriate to determine one multiplicity from the current processing load.
- the resource load management tables 141 , 142 , and 143 are databases for managing a load on each resource (CPU, I/O, communication, or process). The details of the resource load management tables 141 , 142 , and 143 will be described later.
- the automatic load control sections 150 , 150 a , and 150 b calculate optimum multiplicities and intervals for the corresponding application servers 210 , 220 , and 230 on the basis of the performance information stored in the corresponding performance information logs 120 , 120 a , and 120 b .
- the automatic load control sections 150 , 150 a , and 150 b then inform the corresponding application servers 210 , 220 , and 230 of the multiplicities and intervals they calculated.
- the automatic load control section 150 includes a performance information setting section 151 , a load parameter setting section 152 , and a process control section 153 .
- the performance information setting section 151 refers to the performance information log 120 and the load control object batch table 131 and specifies business applications (long batch processes) for which load control is to be exercised from among business applications currently executed. The performance information setting section 151 then acquires load information regarding the business applications for which load control is to be exercised from the performance information log 120 and sets it in the resource load management table 141 .
- the load parameter setting section 152 refers to the resource load management table 141 and calculates an optimum multiplicity and interval for each of the business applications.
- the load parameter setting section 152 then updates the resource load management table 141 by using the calculated optimum multiplicity and interval.
- the process control section 153 sends the new contents to an application server which executes the business applications.
- the other automatic load control sections 150 a and 150 b (not shown) have the same function as that of the automatic load control section 150 .
- FIG. 5 shows an example of the data structure of the performance information log.
- pieces of performance information 121 , 122 , 123 , etc. according to affairs using each resource are registered in the performance information log 120 .
- a business processing group name, a multiplicity, a process name, process performance time, a resource name, resource usage (load factor), resource use time, the number of resource use, and the like are included in each of the pieces of performance information 121 , 122 , 123 , etc.
- FIG. 6 shows an example of the data structure of the load control object batch table.
- the group numbers of batch processes (long batch process) which take predetermined time or more to perform on the application server 210 are registered and the maximum multiplicity of each long batch process is set.
- the maximum multiplicity of each long batch process performed on each application server is set, imbalance in multiplicity among the application servers which perform business processing is taken into consideration and a maximum multiplicity in the entire system is distributed.
- Long batch processes are registered in the load control object batch table 131 in descending order of priority.
- FIG. 7 shows information regarding a CPU resource and an I/O resource included in the resource load management table.
- FIG. 8 shows information regarding a communication resource included in the resource load management table.
- FIG. 9 shows information regarding a process resource included in the resource load management table.
- Resource Name Upper Limit Value of Resource Usage (Load Factor), Business Type, Business Processing Group Name, Process Name, Resource Usage (Load Factor), Number of Resource Use, Resource Use Time, Interval, and Multiplicity columns are included in the resource load management table 141 .
- the name of a resource in the application server to be managed is set in the Resource Name column.
- “CPU,” “I/O,” “communication,” or “process” is registered in the Resource Name column.
- a CPU resource is managed as one resource in one application server. For example, even if the application server includes multiple CPUs, they are managed as one CPU resource in the resource load management table 141 .
- I/O devices such as a storage device
- I/O resources are registered in the Resource Name column as I/O resources. Identification numbers are given to the I/O resources registered in the Resource Name column to identify them in the application server.
- the upper limit value of the usage or load factor of each resource in an online process or a long batch process managed by the load control object batch table 131 is set in the Upper Limit Value of Resource Usage (Load Factor) column.
- the load factor of each resource in a process other than an online process and a long batch process is calculated on the basis of an actual value in an existing system or an estimate.
- the upper limit value of the load factor of each of the CPU resource and the I/O resources is indicated by the ratio (percentage) of resource usage to maximum processing capability.
- the upper limit value of the load factor of each of the communication resources is indicated by the number of output buffers used. With online process (in which online processing is performed) resources, the upper limit value of a process load assigned to online processing is set.
- 100 percent of each batch process resource may be used, so the upper limit value of a load factor is not set.
- the upper limit value of the usage (load factor) of an I/O resource or a communication resource shared among the applications is set, imbalance in load on the application server 210 which performs business processing is taken into consideration and the resource on the application server 210 is distributed.
- 270% is set as the upper limit value of the load factor of the CPU resource.
- the application server includes three CPUs.
- the maximum processing capability of one CPU is 100%.
- the upper limit value of the resource usage (load factor) of each batch process is indicated by “-” (blank). This means that an upper limit value is not set, that is to say, 100 percent of each batch process resource can be used.
- the business type of a business processing group registered in the Business Processing Group Name column is set in the Business Type column.
- online processing is indicated by “ON”
- batch processing is indicated by “BATCH”.
- the name of a business processing group which conducts each piece of business is set in the Business Processing Group Name column.
- the name “ON GROUP #1” (1 is an integer greater than or equal to one) is given to a business processing group which performs online processing.
- the name “BATCH GROUP #k” (k is an integer greater than or equal to one) is given to a business processing group which performs batch processing.
- the name of a process in which each piece of business is conducted is set in the Process Name column.
- the name “ON PROCESS #m” (m is an integer greater than or equal to one) is given to a process in which online processing is performed.
- the name “BATCH PROCESS #n” (n is an integer greater than or equal to one) is given to a process in which batch processing is performed.
- the usage or load factor of each resource used in each process is set in the Resource Usage (Load Factor) column.
- the Resource Usage (Load Factor) column corresponding to a process in which a resource is not used is blank.
- the number of times an I/O resource or a communication resource is used in each process is set in the Number of Resource Use column.
- An interval set for each batch group when an I/O resource or a communication resource is used is set in the Interval column.
- a multiplicity in the current business processing group is set in the Multiplicity column.
- Data is set in advance in the Resource Name, Upper Limit Value of Resource Usage (Load Factor), Business Type, Business Processing Group Name, and Process Name columns by a system manager.
- An initial value is set in the Multiplicity column by the system manager.
- the performance management server 100 begins automatic load control, the performance information setting section 151 properly sets data in the Resource Usage (Load Factor), Number of Resource Use, and Resource Use Time columns.
- the load parameter setting section 152 sets data in the Interval and Multiplicity columns.
- Automatic load control is exercised by adopting the above system configuration.
- the procedure for automatic load control exercised by the automatic load control section 150 corresponding to the application server 210 will now be described in detail.
- the performance information acquisition section 110 acquires performance information from the application server 210 and stores it in the performance information log 120 .
- the performance information setting section 151 refers to the load control object batch table 131 and sets performance information regarding a batch group (long batch group) for which load control is to be exercised in the resource load management table 141 .
- the load parameter setting section 152 is started at predetermined time intervals.
- the load parameter setting section 152 started calculates proper load parameters (multiplicity and interval) on the basis of the performance information set in the resource load management table 141 and sets these parameters in the resource load management table 141 .
- Time intervals at which the load parameter setting section 152 is started is determined on the basis of, for example, average batch processing time. That is to say, if the average batch processing time is three minutes, then the load parameter setting section 152 is started at intervals of three minutes.
- FIG. 10 is a flow chart showing the procedure for a load parameter setting process. The process shown in FIG. 10 will now be described in order of step number.
- the load parameter setting section 152 calculates an online multiplicity in each online group.
- load factor of online process is the sum of the load factors of processes simultaneously performed in a target online group (values in the Resource Usage (Load Factor) column of online processes corresponding to a process resource in the resource load management table 141 ) and upper limit value of load of online process is a value in the Upper Limit Value of Resource Usage (Load Factor) column of the online group corresponding to the process resource in the resource load management table 141 (the upper limit value of resource usage (load factor) in one process in the online group).
- the load parameter setting section 152 calculates a multiplicity in a batch group (batch multiplicity).
- Step S 13 The load parameter setting section 152 repeatedly performs an I/O load control process on all I/O resources the upper limit values of the load factors of which are exceeded. The details of the I/O load control process will be described later.
- Step S 14 The load parameter setting section 152 repeatedly performs a communication load control process on all communication resources the upper limit values of the load factors of which are exceeded. The details of the communication load control process will be described later.
- Step S 15 The process control section 153 controls the starting or stopping of a process performed by the application server 210 and an interval on the basis of load parameters (multiplicity and interval) set in the resource load management table 141 .
- the process control section 153 refers to the resource load management table 141 . If the multiplicity of a business processing group increases compared with what it was before the load parameter setting process, then the process control section 153 sends a request to start a process for handling the business processing group to the application server which performs the business processing group. If the multiplicity of a business processing group decreases compared with what it was before the load parameter setting process, then the process control section 153 sends a request to stop a process for handling the business processing group to the application server which performs the business processing group.
- the application server suspends a batch process. In this case, the application server does not stop the batch process completely. The application server resumes performing the batch process suspended when a batch process which is being performed is completed or when a request to start a process is made because of an increase in multiplicity.
- the application server stops an online process at the time when the online process gets unused.
- a load simulation table which indicates the relationship between a multiplicity and resource usage (load factor) for each processing group is generated in the load parameter setting section 152 .
- FIG. 11 shows an example of the data structure of a load simulation table.
- a load simulation table 152 a includes Business Processing Group Name, Multiplicity, CPU Load Factor, I/O #1 Load Factor, I/O #2 Load Factor, . . . , Communication #1 Load Factor, . . . columns for each business processing group.
- the name of processing group which is being performed by the application server is set in the Business Processing Group Name column.
- batch groups long batch groups managed by the load control object batch table 131 are set in the Business Processing Group Name column in descending order of priority.
- a current multiplicity of each processing group is set in the Multiplicity column as an initial value.
- zero is set in the Multiplicity column as an initial value.
- a current CPU load factor per batch process in each processing group is set in the CPU Load Factor column as an initial value.
- a current I/O load factor per batch process in each processing group is set in each of the I/O #1 Load Factor, I/O #2 Load Factor, . . . columns as an initial value.
- a current communication load factor per batch process in each processing group is set in each of the Communication #1 Load Factor, . . . columns as an initial value.
- the load parameter setting section 152 selects the batch groups registered in the load simulation table 152 a in order of mention (priority).
- the load parameter setting section 152 increments the multiplicity of a batch group selected by one.
- the load parameter setting section 152 calculates a CPU load factor and I/O load factors and sets them in the corresponding CPU Load Factor, I/O #1 Load Factor, I/O #2 Load Factor, . . . columns corresponding to the batch group selected.
- the load parameter setting section 152 multiplies the CPU load factor per batch process by the incremented multiplicity to calculate the CPU load factor.
- the I/O load factors can be calculated in the same way.
- the load parameter setting section 152 determines whether the upper limit value of the usage (load factor) of each resource is exceeded. If the upper limit value of the usage (load factor) of each resource is not exceeded, then the load parameter setting section 152 settles the incremented multiplicity of the batch group selected. If the upper limit value of the usage (load factor) of at least one resource is exceeded, then the load parameter setting section 152 does not increment the multiplicity of the batch group selected. In this case, incrementing the multiplicity of the batch group selected is canceled.
- the load parameter setting section 152 refers to the load control object batch table 131 and determines whether the incremented multiplicity has reached the maximum multiplicity of the batch group. If the incremented multiplicity has reached the maximum multiplicity of the batch group, then the load parameter setting section 152 does not increment the multiplicity of the batch group selected any more.
- the above process is performed on the batch groups the load parameter setting section 152 selects in order.
- the load parameter setting section 152 selects the batch groups which are registered in the load simulation table 152 a and the multiplicities of which can be incremented in order of mention and examines whether to increment their multiplicities.
- the load parameter setting section 152 does not increment the multiplicities of all of the batch groups registered in the load simulation table 152 a any more, then the load parameter setting section 152 terminates the multiplicity calculation process.
- Multiplicities registered in the Multiplicity column in the load simulation table 152 a at the time when the load parameter setting section 152 terminates the multiplicity calculation process are the multiplicities of the corresponding batch groups.
- FIG. 12 is a flow chart showing the procedure for the I/O load control process. The process shown in FIG. 12 will now be described in order of step number.
- Step S 21 The load parameter setting section 152 selects one I/O resource from the resource load management table 141 .
- the load parameter setting section 152 refers to the resource load management table 141 and determines whether the sum of the resource usage (load factors) of all business processing groups in which the selected I/O resource is used is greater than the upper limit value of resource usage (load factor). If the sum of the resource usage (load factors) of all business processing groups in which the selected I/O resource is used is greater than the upper limit value of resource usage (load factor), then step S 23 is performed. If the sum of the resource usage (load factors) of all business processing groups in which the selected I/O resource is used is not greater than the upper limit value of resource usage (load factor), then step S 28 is performed.
- I/O processing time is I/O resource use time corresponding to a batch process in which the I/O resource selected from the resource load management table 141 in step S 21 is used and therefore I/O processing time values differ among different batch processes
- upper limit value of I/O load is the upper limit value of resource usage (load factor) corresponding to the I/O resource selected from the resource load management table 141
- online group I/O load factor is the sum of the load factors (values in the Resource Usage (Load Factor) column) of all online processes corresponding to the I/O resource selected from the resource load management table 141
- sum of batch multiplicities is the total number of batch processes (for which the Resource Usage (Load Factor) column is not blank) in which the I/O resource selected is being used of batch processes corresponding to the I/O resource selected from the resource load management table 141 .
- (upper limit value of I/O load ⁇ online group I/O load factor)” in equation (2) indicates I/O processing capability (processing capability which can be assigned to batch processing) obtained by subtracting the load factors of online groups from the upper limit value of an I/O load.
- processing capability processing capability which can be assigned to batch processing
- sum of batch multiplicities processing capability (numeric value indicative of ratio obtained if 100 percent of the I/O processing capability is considered to be one) which can be assigned to one batch process is found out.
- FIG. 13 is a schematic view showing processing capability which can be assigned to one batch process.
- a processing load smaller than or equal to the upper limit value of an I/O load of I/O processing capability 30 can be applied.
- Processing capability 31 for online processes is subtracted from the processing capability corresponding to the upper limit value of an I/O load and processing capabilities 32 and 33 which can be assigned to batch processes remain.
- processing capability is equally assigned to batch processes even if they belong to different batch groups.
- an I/O interval for a batch process in each batch group is calculated. That is to say, processing time per I/O processing in a batch process is “I/O processing time+I/O interval”.
- equation (2) is obtained.
- Step S 24 The load parameter setting section 152 recalculates CPU load factors in the batch processes in which the selected I/O resource is used. To be concrete, the load parameter setting section 152 calculates the ratio of process performance time to CPU time for each of the batch processes corresponding to the I/O resource selected from the resource load management table 141 to obtain the load factor of the CPU resource. The process performance time is recalculated on the basis of the interval determined in step S 23 and the number of times the resource is used.
- Step S 25 The load parameter setting section 152 recalculates I/O load factors in the batch processes in which the selected I/O resource is used. To be concrete, the load parameter setting section 152 calculates the ratio of process performance time to I/O time for each of the batch processes corresponding to the I/O resource selected from the resource load management table 141 to obtain the load factor of the I/O resource. The process performance time is recalculated on the basis of the interval determined in step S 23 and the number of times the resource is used.
- the load parameter setting section 152 recalculates the usage of communication resources in the batch processes in which the selected I/O resource is used. To be concrete, the load parameter setting section 152 calculates the ratio of process performance time to communication time for each of the batch processes corresponding to the I/O resource selected from the resource load management table 141 and considers the number of communication buffers corresponding to this ratio as the usage of the communication resources. The process performance time is recalculated on the basis of the interval determined in step S 23 and the number of times the resource is used.
- Step S 27 The load parameter setting section 152 sets the usage (load factor) of each resource calculated in step S 24 through S 26 in the Resource Usage (Load Factor) column in the resource load management table 141 .
- Step S 28 The load parameter setting section 152 determines whether an I/O resource which has not yet been selected exists. If an I/O resource which has not yet been selected exists, then step S 21 is performed. If all I/O resources have been selected and the I/O load control process is completed, then the process terminates.
- FIG. 14 is a flow chart showing the procedure for the communication load control process. The process shown in FIG. 14 will now be described in order of step number.
- Step S 31 The load parameter setting section 152 selects one communication resource from the resource load management table 141 .
- the load parameter setting section 152 refers to the resource load management table 141 and determines whether the sum of the resource usage (load factors) of all business processing groups in which the selected communication resource is used is greater than the upper limit value of resource usage (load factor). If the sum of the resource usage (load factors) of all business processing groups in which the selected communication resource is used is greater than the upper limit value of resource usage (load factor), then step S 33 is performed. If the sum of the resource usage (load factors) of all business processing groups in which the selected communication resource is used is not greater than the upper limit value of resource usage (load factor), then step S 38 is performed.
- communication processing time is communication resource use time corresponding to a batch process in which the communication resource selected from the resource load management table 141 in step S 31 is used and therefore communication processing time values differ among different batch processes
- upper limit value of communication load is the upper limit value of resource usage (load factor) corresponding to the communication resource selected from the resource load management table 141
- number of buffers used in online group is the sum of the load factors (values in the Resource Usage (Load Factor) column) of all online processes corresponding to the communication resource selected from the resource load management table 141
- sum of batch multiplicities is the total number of batch processes (for which the Resource Usage (Load Factor) column is not blank) in which the communication resource selected is being used of batch processes corresponding to the communication resource selected from the resource load management table 141 .
- the term “(upper limit value of communication load ⁇ number of buffers used in online groups)” in equation (4) indicates the storage capacity of communication buffers for communication (the number of buffers which can be assigned to batch processing) obtained by subtracting the number of buffers used in online groups from the upper limit value of a communication load.
- the ratio of the storage capacity of communication buffers (numeric value indicative of ratio obtained if the total storage capacity of all communication buffers is considered to be one) which can be assigned to one) which can be assigned to one batch process is found out.
- FIG. 15 is a schematic view showing the storage capacity of a communication buffer which can be assigned to one batch process.
- a portion of the entire storage capacity of a communication buffer 40 corresponding to the upper limit value of a communication load can be used in processes.
- An online process area 43 is subtracted from the storage capacity corresponding to the upper limit value of a communication load and batch process areas 41 and 42 remain.
- the communication buffer is equally assigned to batch processes even if they belong to different batch groups.
- a communication interval for a batch process in each batch group is calculated. That is to say, processing time per communication processing in a batch process is “communication processing time+communication interval”.
- equation (4) is obtained.
- Step S 34 The load parameter setting section 152 recalculates CPU load factors in the batch processes in which the selected communication resource is used. To be concrete, the load parameter setting section 152 calculates the ratio of process performance time to CPU time for each of the batch processes corresponding to the communication resource selected from the resource load management table 141 to obtain the load factor of the CPU resource. The process performance time is recalculated on the basis of the interval determined in step S 33 and the number of times the resource is used.
- Step S 35 The load parameter setting section 152 recalculates I/O load factors in the batch processes in which the selected communication resource is used. To be concrete, the load parameter setting section 152 calculates the ratio of process performance time to I/O time for each of the batch processes corresponding to the communication resource selected from the resource load management table 141 to obtain the load factor of the I/O resource. The process performance time is recalculated on the basis of the interval determined in step S 33 and the number of times the resource is used.
- Step S 36 The load parameter setting section 152 recalculates the usage of communication resources in the batch processes in which the selected communication resource is used. To be concrete, the load parameter setting section 152 calculates the ratio of process performance time to communication time for each of the batch processes corresponding to the communication resource selected from the resource load management table 141 and considers the number of communication buffers corresponding to this ratio as the usage of the communication resources. The process performance time is recalculated on the basis of the interval determined in step S 33 and the number of times the resource is used.
- Step S 37 The load parameter setting section 152 sets the load factor of each resource calculated in step S 34 through S 36 in the Resource Usage (Load Factor) column in the resource load management table 141 .
- Step S 38 The load parameter setting section 152 determines whether a communication resource which has not yet been selected exists. If a communication resource which has not yet been selected exists, then step S 31 is performed. If all communication resources have been selected and the communication load control process is completed, then the process terminates.
- An optimum multiplicity and interval are calculated in the above-mentioned way every certain period of time and the multiplicity of batch processing and an interval per resource use (I/O access or communication) in each batch process are changed.
- the multiplicity of batch processing is changed properly. Accordingly, when, for example, a load by online processing decreases, processing capability assigned to the batch processing increases. As a result, the multiplicity of the batch processing can be increased.
- FIG. 16 is a schematic view showing a multiplicity adjustment process.
- A in FIG. 16 shows a schedule of batch processing before a change in multiplicity.
- B in FIG. 16 shows a schedule of the batch processing after the change in multiplicity.
- a horizontal axis indicates time and each rectangle indicates a process performed.
- the multiplicity of the batch processing is four before the change in multiplicity.
- the number of batch processes which are not yet performed is twelve. Therefore, if the batch processing is continued without the multiplicity being changed, it takes three batch processing periods to complete all of the batch processes which are not yet performed. If the multiplicity of the batch processing is changed at multiplicity adjustment timing to six, it takes two batch processing periods to complete all of the batch processes which are not yet performed.
- the processing load on a CPU, I/O, or communication resource becomes excessive. If the processing load on the CPU resource is excessive, the multiplicity is decreased. In many cases, however, the processing load on an I/O or communication resource becomes excessive before the processing load on the CPU resource becomes excessive. In this case, by adjusting an interval, the processing load on the I/O or communication resource can be reduced. Therefore, the processing load does not exceed the maximum load factor and there is no need to decrease the multiplicity.
- service time time which elapsed after a request to perform a process is made and before the process is completed
- real time includes time for which the CPU performs a batch process and time for which I/O access is performed in response to an I/O request made in the batch process
- wait time is time which elapsed after requests to perform a process are made to the CPU resource and I/O resources and before the process is performed.
- wait time ( ⁇ /(1 ⁇ )) ⁇ real time (7)
- ⁇ is referred to as traffic density and indicates how many processes are piled up.
- ⁇ traffic density
- ⁇ is an average request arrival rate (the average number of request arrivals per unit time) and ⁇ is an average request handling rate (the average number of handled requests per unit time).
- ( ⁇ /(1 ⁇ )) indicates the average number of requests to perform a process which stay in a system. That is to say, time taken to handle all requests that stay in a system at the time when a new request to perform a process is made is wait time.
- ⁇ should be decreased or ⁇ should be increased.
- ⁇ is determined by the processing capability of hardware. Accordingly, ⁇ should be decreased.
- ⁇ is an average request arrival rate.
- ⁇ corresponds to the frequency with which an I/O request is made in a batch process. Accordingly, a request for I/O access should be outputted from the batch process an interval after processing by the CPU. By doing so, the value of ⁇ can be decreased. If the value of ⁇ becomes smaller, then the value of ⁇ becomes smaller and wait time reduces.
- One file on a magnetic disk is accessed in the batch process. This file is also accessed from another batch process performed by the CPU. For the sake of calculative simplicity, it is assumed that online processing is not performed. If an interval is not set, the load factor of an I/O resource is 75%. Moreover, it is assumed that many I/O bound processes (in which data is sent to I/O devices) are performed and that a CPU wait does not occur.
- CPU time includes wait time (“0,” in this example) and is time the CPU takes to perform one batch process
- CPU processing time is time for which the CPU resource is used in one batch process
- I/O processing time is time for which an I/O resource is used in one batch process.
- the entire processing time is approximately equal to total I/O time.
- FIG. 17 shows entire processing time taken if no interval is set.
- the relationship between batch processes performed by the CPU and time and the relationship between a batch process in which I/O access is performed and time are shown.
- the ten batch processes simultaneously performed are numbered from 1 to 10 and a time zone where each batch process is performed is indicated by its number.
- interval 470 (milliseconds).
- this one processing period is long. By setting an interval, however, I/O wait time is reduced and entire processing time is shortened.
- the entire processing time is approximately equal to total I/O time.
- FIG. 18 shows entire processing time taken if an interval is set.
- the relationship between batch processes performed by the CPU and time and the relationship between a batch process in which I/O access is performed and time are shown.
- the ten batch processes simultaneously performed are numbered from 1 to 10 and a time zone where each batch process is performed is indicated by its number.
- the entire processing time is reduced from 3,600 seconds to 2,250 seconds. This means that about 37 percent of the I/O load can be reduced.
- the multiplicity of the batch processing is increased only when margins of processing loads on all of the CPU source, the I/O sources, and the communication sources are left. This enables the server to perform processes at a multiplicity which is most suitable from the viewpoint of processing efficiency.
- a processing load caused by I/O processing or communication processing exceeds an upper limit value, a request for I/O processing or communication processing is outputted after the elapse of an interval. By adjusting this interval, a load caused by I/O processing can be reduced and the processing efficiency of the entire system can be improved.
- the above functions can be realized with a computer.
- a program in which the contents of the functions the load control apparatus should have are described is provided.
- This program can be recorded on a computer readable record medium.
- a computer readable record medium can be a magnetic recording device, an optical disk, a magneto-optical recording medium, a semiconductor memory, or the like.
- a magnetic recording device can be a hard disk drive (HDD), a flexible disk (FD), a magnetic tape, or the like.
- An optical disk can be a digital versatile disk (DVD), a digital versatile disk random access memory (DVD-RAM), a compact disk read only memory (CD-ROM), a compact disk recordable (CD-R)/rewritable (CD-RW), or the like.
- a magneto-optical recording medium can be a magneto-optical disk (MO) or the like.
- portable record media such as DVDs or CD-ROMs, on which it is recorded are sold.
- the program is stored in advance on a hard disk in a server computer and is transferred from the server computer to another computer via a network.
- the computer When the computer executes this program, it will store the program, which is recorded on a portable record medium or which is transferred from the server computer, on, for example, its hard disk. Then the computer reads the program from its hard disk and performs processes in compliance with the program. The computer can also read the program directly from a portable record medium and perform processes in compliance with the program. Furthermore, each time the program is transferred from the server computer, the computer can perform processes in turn in compliance with the program it receives.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
A load control apparatus that enables a server to perform a process at a multiplicity most suitable for improving processing efficiency. A load information acquisition section acquires load information regarding loads on a CPU resource and other resources on the server. On the basis of the load information, a multiplicity determination section calculates an increase in load on each resource caused by increasing the multiplicity of the process which is being performed by the server, and determines a multiplicity by which a load on each of all the resources becomes smaller than or equal to an upper limit value set in advance. A multiplicity control section changes the multiplicity of the process which is being performed by the server to the multiplicity determined by the multiplicity determination section.
Description
- This application is based upon and claims the benefits of priority from the prior Japanese Patent Application No. 2005-067522, filed on Mar. 10, 2005, the entire contents of which are incorporated herein by reference.
- (1) Field of the Invention
- This invention relates to a load control apparatus and load control program for controlling a load on a server and, more particularly, to a load control apparatus and load control program for controlling a load on a server by adjusting the multiplicity of processing.
- (2) Description of the Related Art
- Load control is exercised for efficiently operating large-scale computer systems. This load control includes overload control and underload control.
- When a load is greater than a threshold (upper limit value), overload control is exercised to reduce the load to a value smaller than or equal to the threshold. When the load is smaller than the threshold, underload control is exercised to raise the load so that it will approach the threshold.
- At present overload control is usually exercised. With overload control, the upper limit value of the load factor of each resource which users can use is set in advance, and a load on each resource is controlled so that it will not exceed the upper limit value.
- For example, with a server computer which performs various processes in response to requests from terminal units, a plurality of server processes are started to handle the requests from the terminal units. The number of server processes simultaneously started is referred to as a multiplicity. In such a system, requests from a plurality of terminal units may be made in a specific period of time. In this case, a load factor in each server process rises. As a result, if the load factor in each server process exceeds a predetermined upper limit value, the server computer automatically increases a multiplicity. Increasing a multiplicity (increasing the number of server processes simultaneously performed) reduces a load in each server process. This prevents the processing load on the server computer from exceeding a predetermined load factor.
- Systems in which overload control and underload control are exercised are also provided. For example, a technique for determining the usage of a central processing unit (CPU) in a server, and increasing a multiplicity in the server in the case of the usage of the CPU being greater than a preset upper limit value or decreasing the multiplicity in the server in the case of the usage of the CPU being smaller than the preset lower limit value is proposed (see Japanese Unexamined Patent Publication No. 2001-160040).
- With the technique disclosed in the above Japanese Unexamined Patent Publication No. 2001-160040, however, processing loads on resources other than the CPU are not taken into consideration. Accordingly, even if the multiplicity of processing is increased at the time of a load on a resource other than the CPU being excessive, a load in each of processes performed in parallel may not be reduced.
- That is to say, if business involving frequently performing an I/O (data input-output) process, such as access to a hard disk, is carried out, I/O processing capability is smaller than the CPU's processing capability. Even if the multiplicity of the processing is increased at the time of a processing load on a resource other than the CPU caused by carrying out the business exceeding an upper limit value, the CPU must wait for I/O. Because of such wait time, it takes a longer time to handle each piece of business. Therefore, efficiency in processing in the entire system is not improved.
- The present invention was made under the background circumstances described above. An object of the present invention is to provide a load control apparatus and load control program capable of making a server perform processing at a multiplicity most suitable for improving processing efficiency.
- In order to achieve the above object, a load control apparatus for controlling a load on a server which performs multiplex processing is provided. This load control apparatus comprises a load information acquisition section for acquiring load information regarding loads on a CPU resource and other resources on the server; a multiplicity determination section for calculating, on the basis of the load information, an increase in load on each resource caused by increasing a multiplicity of a process which is being performed by the server, and for determining, on the basis of the load information, a multiplicity by which a load on each of all the resources becomes smaller than or equal to an upper limit value set in advance; and a multiplicity control section for changing the multiplicity of the process which is being performed by the server to the multiplicity determined by the multiplicity determination section.
- The above and other objects, features and advantages of the present invention will become apparent from the following description when taken in conjunction with the accompanying drawings which illustrate preferred embodiments of the present invention by way of example.
-
FIG. 1 gives an overview of an embodiment of the present invention. -
FIG. 2 shows an example of the system configuration of the embodiment of the present invention. -
FIG. 3 shows an example of the hardware configuration of a performance management server used in the embodiment of the present invention. -
FIG. 4 is a block diagram showing a function for managing performance. -
FIG. 5 shows an example of the data structure of a performance information log. -
FIG. 6 shows an example of the data structure of a load control object batch table. -
FIG. 7 shows information regarding a CPU resource and an I/O resource included in a resource load management table. -
FIG. 8 shows information regarding a communication resource included in the resource load management table. -
FIG. 9 shows information regarding a process resource included in the resource load management table. -
FIG. 10 is a flow chart showing the procedure for a load parameter setting process. -
FIG. 11 shows an example of the data structure of a load simulation table. -
FIG. 12 is a flow chart showing the procedure for an I/O load control process. -
FIG. 13 is a schematic view showing processing capability which can be assigned to one batch process. -
FIG. 14 is a flow chart showing the procedure for a communication load control process. -
FIG. 15 is a schematic view showing the storage capacity of a communication buffer which can be assigned to one batch process. -
FIG. 16 is a schematic view showing a multiplicity adjustment process. -
FIG. 17 shows entire processing time taken if no interval is set. -
FIG. 18 shows entire processing time taken if an interval is set. - Embodiments of the present invention will now be described with reference to the drawings.
-
FIG. 1 gives an overview of an embodiment of the present invention. Aload control apparatus 1 according to an embodiment of the present invention controls a load on aserver 2 which performs multiplex processing. Theload control apparatus 1 comprises a loadinformation acquisition section 1 a, amultiplicity determination section 1 b, and amultiplicity control section 1 c. The loadinformation acquisition section 1 a acquires load information regarding loads on a CPU resource and other resources (for example, at least one of hardware resources, such as an I/O resource and a communication resource, and software resources, such as a process resource) on theserver 2. On the basis of the load information, themultiplicity determination section 1 b calculates an increase in load on each resource caused by increasing the multiplicity of a process which is being performed by theserver 2, and determines a multiplicity by which a load on each of all resources becomes smaller than or equal to an upper limit value set in advance. Themultiplicity control section 1 c changes the multiplicity of the process which is being performed by theserver 2 to the multiplicity determined by themultiplicity determination section 1 b. - In the above
load control apparatus 1, the loadinformation acquisition section 1 a acquires load information regarding loads on the CPU resource and the other resources on theserver 2. On the basis of the load information, themultiplicity determination section 1 b then calculates an increase in load on each resource caused by increasing the multiplicity of the process which is being performed by theserver 2, and determines a multiplicity by which a load on each of all the resources becomes smaller than or equal to an upper limit value set in advance. Themultiplicity control section 1 c changes the multiplicity of the process which is being performed by theserver 2 to the multiplicity determined by themultiplicity determination section 1 b. - As a result, when the multiplicity is increased, a processing load on each resource on the server does not become excessive and the process can be performed at a multiplicity that is most suitable from the viewpoint of processing efficiency.
- In addition to adjusting the multiplicity of the process, an interval may be set for I/O access when a load caused by I/O access, communication, or the like reaches an upper limit value. Setting an interval for I/O access reduces wait time for the I/O access and therefore improves processing efficiency.
- As stated above, when the load on the I/O resource exceeds the upper limit value, an interval is adjusted and multiplicity control (the starting, stopping, or the like of a process performed) is not exercised. By adjusting the interval and reducing the load caused by an I/O process, however, the frequency with which a process waiting for I/O processing appears in the server can be decreased and the number of processes which can simultaneously be performed can be increased. As a result, the same effect of improvement in processing efficiency that is obtained by increasing a multiplicity can be realized.
- That is to say, when an I/O load is excessive, a long I/O wait occurs. The CPU does not perform a process waiting for I/O. Therefore, even if three processes, for example, are simultaneously performed, a multiplicity may be two from the viewpoint of efficiency in processing by the CPU resource.
- If at this time the I/O load is reduced by adjusting an interval, then I/O processing wait time is shortened. As a result, the CPU can simultaneously perform all of the processes started, resulting in efficient processing.
- When the load on the I/O resource is smaller than or equal to the upper limit value, an interval is not adjusted. An interval is adjusted in order to prevent I/O wait time from becoming longer. However, when the load on the I/O resource is smaller than or equal to the upper limit value, I/O wait time corresponding to the load is short and does not change appreciably. Accordingly, there is no need to set an interval.
- The embodiment of the present invention will now be described in detail. In the following embodiment, it is assumed that an interval is controlled for access to an I/O resource or a communication resource.
-
FIG. 2 shows an example of the system configuration of the embodiment of the present invention. Aperformance management server 100 is connected to 210, 220, and 230 via a local area network (LAN) 10 for management. Theapplication servers 210, 220, and 230 provide various services toapplication servers 21, 22, etc. via aclients network 20. The 210, 220, and 230 send their resource load information to theapplication servers performance management server 100. In addition, each of the 210, 220, and 230 changes the multiplicity of service-providing affairs and an I/O interval in response to a request from theapplication servers performance management server 100. - The
performance management server 100 manages the performance of the 210, 220, and 230 and adjusts a balance among loads on theapplication servers 210, 220, and 230. To be concrete, theapplication servers performance management server 100 instructs the 210, 220, or 230 which has processing capability to spare to increase a multiplicity and set a proper interval.application server -
FIG. 3 shows an example of the hardware configuration of the performance management server used in the embodiment of the present invention. The whole of theperformance management server 100 is controlled by aCPU 101. A random access memory (RAM) 102, a hard disk drive (HDD) 103, agraphics processing unit 104, aninput interface 105, and acommunication interface 106 are connected to theCPU 101 via a bus 107. - The
RAM 102 temporarily stores at least part of an operating system (OS) or an application program executed by theCPU 101. TheRAM 102 also stores various pieces of data which theCPU 101 needs to perform a process. TheHDD 103 stores the OS and application programs. - A
monitor 11 is connected to thegraphics processing unit 104. In accordance with instructions from theCPU 101, thegraphics processing unit 104 displays an image on a screen of themonitor 11. Akeyboard 12 and amouse 13 are connected to theinput interface 105. Theinput interface 105 sends a signal sent from thekeyboard 12 or themouse 13 to theCPU 101 via the bus 107. - The
communication interface 106 is connected to theLAN 10. Thecommunication interface 106 exchanges data with the 210, 220, and 230 via theapplication servers LAN 10. - The processing function of the embodiment of the present invention can be realized by adopting the above-mentioned hardware configuration. In
FIG. 3 , an example of the hardware configuration of theperformance management server 100 is shown. The 210, 220, and 230 and theapplication servers 21, 22, etc. can be realized by adopting the same hardware configuration.clients - The processing functions of the
210, 220, and 230 and theapplication servers performance management server 100 will now be described. -
FIG. 4 is a block diagram showing a function for managing performance. Theapplication server 210 includes a performanceinformation providing section 211 and 212 a, 212 b, and 212 c.business applications - The performance
information providing section 211 acquires load information regarding a CPU, I/O, a network, and processes for theapplication server 210 and sends it to theperformance management server 100. To be concrete, the performanceinformation providing section 211 acquires pieces of information, such as a business processing group name, resource usage (load factor), resource use time, and process performance time, for each of the 212 a, 212 b, and 212 c and sends them to thebusiness applications performance management server 100 as performance information. Services are provided to the 21, 22, etc. by theclients 212 a, 212 b, and 212 c. Each of thebusiness applications 212 a, 212 b, and 212 c can start a plurality of processes and perform them simultaneously.business applications -
FIG. 4 shows the function of theapplication server 210. The 220 and 230 have the same function. Theapplication servers performance management server 100 includes performance 110, 110 a, and 110 b corresponding to theinformation acquisition sections 210, 220, and 230 respectively, performance information logs 120, 120 a, and 120 b corresponding to theapplication servers 210, 220, and 230 respectively, load control object batch tables 131, 132, and 133 corresponding to theapplication servers 210, 220, and 230 respectively, resource load management tables 141, 142, and 143 corresponding to theapplication servers 210, 220, and 230 respectively, and automaticapplication servers 150, 150 a, and 150 b corresponding to theload control sections 210, 220, and 230 respectively.application servers - The performance
110, 110 a, and 110 b acquire performance information from theinformation acquisition sections 210, 220, and 230 and store it in the corresponding performance information logs 120, 120 a, and 120 b. The performance information logs 120, 120 a, and 120 b are storage media for storing the performance information acquired from thecorresponding application servers 210, 220, and 230.corresponding application servers - Processes for which load control is to be exercised and the maximum multiplicity of each of the processes are defined in the load control object batch tables 131, 132, and 133. Load control is exercised only for long batch processes (batch processes which takes predetermined time or more to perform).
- The reason for excluding a batch process which is completed in a short period of time from the object of load control is as follows. A load on a system caused by a batch process which is completed in a short period of time is originally small, so there is no need to control a multiplicity. In the present invention an online process is also excluded from the load control. An online process is performed in response to a request from a client. Resources must be assigned to it with some margin left. Therefore, it is not appropriate to determine one multiplicity from the current processing load.
- The resource load management tables 141, 142, and 143 are databases for managing a load on each resource (CPU, I/O, communication, or process). The details of the resource load management tables 141, 142, and 143 will be described later.
- The automatic
150, 150 a, and 150 b calculate optimum multiplicities and intervals for theload control sections 210, 220, and 230 on the basis of the performance information stored in the corresponding performance information logs 120, 120 a, and 120 b. The automaticcorresponding application servers 150, 150 a, and 150 b then inform theload control sections 210, 220, and 230 of the multiplicities and intervals they calculated. To perform these processes, the automaticcorresponding application servers load control section 150 includes a performanceinformation setting section 151, a loadparameter setting section 152, and aprocess control section 153. - The performance
information setting section 151 refers to the performance information log 120 and the load control object batch table 131 and specifies business applications (long batch processes) for which load control is to be exercised from among business applications currently executed. The performanceinformation setting section 151 then acquires load information regarding the business applications for which load control is to be exercised from the performance information log 120 and sets it in the resource load management table 141. - The load
parameter setting section 152 refers to the resource load management table 141 and calculates an optimum multiplicity and interval for each of the business applications. The loadparameter setting section 152 then updates the resource load management table 141 by using the calculated optimum multiplicity and interval. - When multiplicities and intervals for the business applications registered in the resource load management table 141 are updated, the
process control section 153 sends the new contents to an application server which executes the business applications. - The other automatic
150 a and 150 b (not shown) have the same function as that of the automaticload control sections load control section 150. - The contents of various pieces of data stored in the
performance management server 100 will now be described in detail. -
FIG. 5 shows an example of the data structure of the performance information log. In this example, pieces of 121, 122, 123, etc. according to affairs using each resource are registered in the performance information log 120. A business processing group name, a multiplicity, a process name, process performance time, a resource name, resource usage (load factor), resource use time, the number of resource use, and the like are included in each of the pieces ofperformance information 121, 122, 123, etc.performance information -
FIG. 6 shows an example of the data structure of the load control object batch table. In the load control object batch table 131, the group numbers of batch processes (long batch process) which take predetermined time or more to perform on theapplication server 210 are registered and the maximum multiplicity of each long batch process is set. When the maximum multiplicity of each long batch process performed on each application server is set, imbalance in multiplicity among the application servers which perform business processing is taken into consideration and a maximum multiplicity in the entire system is distributed. Long batch processes are registered in the load control object batch table 131 in descending order of priority. - The data structure of the resource load management tables will now be described with reference to
FIGS. 7 through 9 .FIG. 7 shows information regarding a CPU resource and an I/O resource included in the resource load management table.FIG. 8 shows information regarding a communication resource included in the resource load management table.FIG. 9 shows information regarding a process resource included in the resource load management table. - Resource Name, Upper Limit Value of Resource Usage (Load Factor), Business Type, Business Processing Group Name, Process Name, Resource Usage (Load Factor), Number of Resource Use, Resource Use Time, Interval, and Multiplicity columns are included in the resource load management table 141.
- The name of a resource in the application server to be managed is set in the Resource Name column. To be concrete, “CPU,” “I/O,” “communication,” or “process” is registered in the Resource Name column. A CPU resource is managed as one resource in one application server. For example, even if the application server includes multiple CPUs, they are managed as one CPU resource in the resource load management table 141.
- All I/O devices (such as a storage device) that can be accessed from the application server are registered in the Resource Name column as I/O resources. Identification numbers are given to the I/O resources registered in the Resource Name column to identify them in the application server.
- All communication lines that are connected to the application server are registered in the Resource Name column as communication resources. Identification numbers are given to the communication resources registered in the Resource Name column to identify them in the application server.
- All processes that are assigned to online processing or batch processing are registered in the Resource Name column as process resources. Identification numbers are given to the process resources registered in the Resource Name column to identify them in the application server.
- The upper limit value of the usage or load factor of each resource in an online process or a long batch process managed by the load control object batch table 131 is set in the Upper Limit Value of Resource Usage (Load Factor) column. The load factor of each resource in a process other than an online process and a long batch process is calculated on the basis of an actual value in an existing system or an estimate. The upper limit value of the load factor of each of the CPU resource and the I/O resources is indicated by the ratio (percentage) of resource usage to maximum processing capability. The upper limit value of the load factor of each of the communication resources is indicated by the number of output buffers used. With online process (in which online processing is performed) resources, the upper limit value of a process load assigned to online processing is set. 100 percent of each batch process resource may be used, so the upper limit value of a load factor is not set. When the upper limit value of the usage (load factor) of an I/O resource or a communication resource shared among the applications is set, imbalance in load on the
application server 210 which performs business processing is taken into consideration and the resource on theapplication server 210 is distributed. - In the example shown in
FIG. 7 , 270% is set as the upper limit value of the load factor of the CPU resource. In this case, the application server includes three CPUs. The maximum processing capability of one CPU is 100%. - In the example shown in
FIG. 9 , the upper limit value of the resource usage (load factor) of each batch process is indicated by “-” (blank). This means that an upper limit value is not set, that is to say, 100 percent of each batch process resource can be used. - The business type of a business processing group registered in the Business Processing Group Name column is set in the Business Type column. In
FIGS. 7 through 9 , online processing is indicated by “ON” and batch processing is indicated by “BATCH”. - The name of a business processing group which conducts each piece of business is set in the Business Processing Group Name column. With batch groups, long batch groups managed by the load control object batch table 131 are set in the Business Processing Group Name column. The name “ON
GROUP # 1” (1 is an integer greater than or equal to one) is given to a business processing group which performs online processing. The name “BATCH GROUP #k” (k is an integer greater than or equal to one) is given to a business processing group which performs batch processing. - The name of a process in which each piece of business is conducted is set in the Process Name column. The name “ON PROCESS #m” (m is an integer greater than or equal to one) is given to a process in which online processing is performed. The name “BATCH PROCESS #n” (n is an integer greater than or equal to one) is given to a process in which batch processing is performed.
- The usage or load factor of each resource used in each process is set in the Resource Usage (Load Factor) column. The Resource Usage (Load Factor) column corresponding to a process in which a resource is not used is blank.
- The number of times an I/O resource or a communication resource is used in each process is set in the Number of Resource Use column.
- CPU time or process performance time after the time when load information was acquired the last time in each batch process is set in the Resource Use Time column. In addition, time for which an I/O resource or a communication resource is used per unit processing in each batch process is set in the Resource Use Time column.
- An interval set for each batch group when an I/O resource or a communication resource is used is set in the Interval column.
- A multiplicity in the current business processing group is set in the Multiplicity column.
- Data is set in advance in the Resource Name, Upper Limit Value of Resource Usage (Load Factor), Business Type, Business Processing Group Name, and Process Name columns by a system manager. An initial value is set in the Multiplicity column by the system manager. When the
performance management server 100 begins automatic load control, the performanceinformation setting section 151 properly sets data in the Resource Usage (Load Factor), Number of Resource Use, and Resource Use Time columns. In addition, the loadparameter setting section 152 sets data in the Interval and Multiplicity columns. - Automatic load control is exercised by adopting the above system configuration. The procedure for automatic load control exercised by the automatic
load control section 150 corresponding to theapplication server 210 will now be described in detail. - First, in the
performance management server 100 the performanceinformation acquisition section 110 acquires performance information from theapplication server 210 and stores it in the performance information log 120. The performanceinformation setting section 151 refers to the load control object batch table 131 and sets performance information regarding a batch group (long batch group) for which load control is to be exercised in the resource load management table 141. - The load
parameter setting section 152 is started at predetermined time intervals. The loadparameter setting section 152 started calculates proper load parameters (multiplicity and interval) on the basis of the performance information set in the resource load management table 141 and sets these parameters in the resource load management table 141. - Time intervals at which the load
parameter setting section 152 is started is determined on the basis of, for example, average batch processing time. That is to say, if the average batch processing time is three minutes, then the loadparameter setting section 152 is started at intervals of three minutes. -
FIG. 10 is a flow chart showing the procedure for a load parameter setting process. The process shown inFIG. 10 will now be described in order of step number. - [Step S11] The load
parameter setting section 152 calculates an online multiplicity in each online group. An online multiplicity is calculated by
online multiplicity=(load factor of online process+upper limit value of load of online process)/upper limit value of load of online process (1) - where load factor of online process is the sum of the load factors of processes simultaneously performed in a target online group (values in the Resource Usage (Load Factor) column of online processes corresponding to a process resource in the resource load management table 141) and upper limit value of load of online process is a value in the Upper Limit Value of Resource Usage (Load Factor) column of the online group corresponding to the process resource in the resource load management table 141 (the upper limit value of resource usage (load factor) in one process in the online group).
- [Step S12] The load
parameter setting section 152 calculates a multiplicity in a batch group (batch multiplicity). - [Step S13] The load
parameter setting section 152 repeatedly performs an I/O load control process on all I/O resources the upper limit values of the load factors of which are exceeded. The details of the I/O load control process will be described later. - [Step S14] The load
parameter setting section 152 repeatedly performs a communication load control process on all communication resources the upper limit values of the load factors of which are exceeded. The details of the communication load control process will be described later. - [Step S15] The
process control section 153 controls the starting or stopping of a process performed by theapplication server 210 and an interval on the basis of load parameters (multiplicity and interval) set in the resource load management table 141. - To be concrete, the
process control section 153 refers to the resource load management table 141. If the multiplicity of a business processing group increases compared with what it was before the load parameter setting process, then theprocess control section 153 sends a request to start a process for handling the business processing group to the application server which performs the business processing group. If the multiplicity of a business processing group decreases compared with what it was before the load parameter setting process, then theprocess control section 153 sends a request to stop a process for handling the business processing group to the application server which performs the business processing group. - If the multiplicity of a batch group is decreased, the application server suspends a batch process. In this case, the application server does not stop the batch process completely. The application server resumes performing the batch process suspended when a batch process which is being performed is completed or when a request to start a process is made because of an increase in multiplicity.
- If the multiplicity of an online group is decreased, the application server stops an online process at the time when the online process gets unused.
- The batch multiplicity calculation process will now be described. To calculate a batch multiplicity, a load simulation table which indicates the relationship between a multiplicity and resource usage (load factor) for each processing group is generated in the load
parameter setting section 152. -
FIG. 11 shows an example of the data structure of a load simulation table. A load simulation table 152 a includes Business Processing Group Name, Multiplicity, CPU Load Factor, I/O # 1 Load Factor, I/O # 2 Load Factor, . . . ,Communication # 1 Load Factor, . . . columns for each business processing group. - The name of processing group which is being performed by the application server is set in the Business Processing Group Name column. With batch groups, long batch groups managed by the load control object batch table 131 are set in the Business Processing Group Name column in descending order of priority.
- With online groups, a current multiplicity of each processing group is set in the Multiplicity column as an initial value. With batch groups, zero is set in the Multiplicity column as an initial value. A current CPU load factor per batch process in each processing group is set in the CPU Load Factor column as an initial value. A current I/O load factor per batch process in each processing group is set in each of the I/
O # 1 Load Factor, I/O # 2 Load Factor, . . . columns as an initial value. A current communication load factor per batch process in each processing group is set in each of theCommunication # 1 Load Factor, . . . columns as an initial value. - The load
parameter setting section 152 selects the batch groups registered in the load simulation table 152 a in order of mention (priority). The loadparameter setting section 152 increments the multiplicity of a batch group selected by one. After incrementing the multiplicity of the batch group, the loadparameter setting section 152 calculates a CPU load factor and I/O load factors and sets them in the corresponding CPU Load Factor, I/O # 1 Load Factor, I/O # 2 Load Factor, . . . columns corresponding to the batch group selected. - For example, after incrementing the multiplicity of the batch group selected, the load
parameter setting section 152 multiplies the CPU load factor per batch process by the incremented multiplicity to calculate the CPU load factor. The I/O load factors can be calculated in the same way. - After calculating the load factor of each resource, the load
parameter setting section 152 determines whether the upper limit value of the usage (load factor) of each resource is exceeded. If the upper limit value of the usage (load factor) of each resource is not exceeded, then the loadparameter setting section 152 settles the incremented multiplicity of the batch group selected. If the upper limit value of the usage (load factor) of at least one resource is exceeded, then the loadparameter setting section 152 does not increment the multiplicity of the batch group selected. In this case, incrementing the multiplicity of the batch group selected is canceled. - If the load
parameter setting section 152 settles the incremented multiplicity of the batch group selected, then the loadparameter setting section 152 refers to the load control object batch table 131 and determines whether the incremented multiplicity has reached the maximum multiplicity of the batch group. If the incremented multiplicity has reached the maximum multiplicity of the batch group, then the loadparameter setting section 152 does not increment the multiplicity of the batch group selected any more. - The above process is performed on the batch groups the load
parameter setting section 152 selects in order. When examination of whether to increment the multiplicity of a batch group registered last in the load simulation table 152 a is completed, again the loadparameter setting section 152 selects the batch groups which are registered in the load simulation table 152 a and the multiplicities of which can be incremented in order of mention and examines whether to increment their multiplicities. - If the load
parameter setting section 152 does not increment the multiplicities of all of the batch groups registered in the load simulation table 152 a any more, then the loadparameter setting section 152 terminates the multiplicity calculation process. Multiplicities registered in the Multiplicity column in the load simulation table 152 a at the time when the loadparameter setting section 152 terminates the multiplicity calculation process are the multiplicities of the corresponding batch groups. - The I/O load control process will now be described in detail. In the following description, it is assumed that an I/O load on the application server corresponding to the resource load management table 141 is controlled.
-
FIG. 12 is a flow chart showing the procedure for the I/O load control process. The process shown inFIG. 12 will now be described in order of step number. - [Step S21] The load
parameter setting section 152 selects one I/O resource from the resource load management table 141. - [Step S22] The load
parameter setting section 152 refers to the resource load management table 141 and determines whether the sum of the resource usage (load factors) of all business processing groups in which the selected I/O resource is used is greater than the upper limit value of resource usage (load factor). If the sum of the resource usage (load factors) of all business processing groups in which the selected I/O resource is used is greater than the upper limit value of resource usage (load factor), then step S23 is performed. If the sum of the resource usage (load factors) of all business processing groups in which the selected I/O resource is used is not greater than the upper limit value of resource usage (load factor), then step S28 is performed. - [Step S23] The load
parameter setting section 152 calculates an I/O interval for each of batch processes in which the selected I/O resource is used. To be concrete, an I/O interval is calculated by
I/O interval=(I/O processing time÷((upper limit value of I/O load−online group I/O load factor)÷sum of batch multiplicities))−I/O processing time (2) - where I/O processing time is I/O resource use time corresponding to a batch process in which the I/O resource selected from the resource load management table 141 in step S21 is used and therefore I/O processing time values differ among different batch processes, upper limit value of I/O load is the upper limit value of resource usage (load factor) corresponding to the I/O resource selected from the resource load management table 141, online group I/O load factor is the sum of the load factors (values in the Resource Usage (Load Factor) column) of all online processes corresponding to the I/O resource selected from the resource load management table 141, and sum of batch multiplicities is the total number of batch processes (for which the Resource Usage (Load Factor) column is not blank) in which the I/O resource selected is being used of batch processes corresponding to the I/O resource selected from the resource load management table 141.
- The term “(upper limit value of I/O load−online group I/O load factor)” in equation (2) indicates I/O processing capability (processing capability which can be assigned to batch processing) obtained by subtracting the load factors of online groups from the upper limit value of an I/O load. By dividing the processing capability which can be assigned to batch processing by “sum of batch multiplicities,” processing capability (numeric value indicative of ratio obtained if 100 percent of the I/O processing capability is considered to be one) which can be assigned to one batch process is found out.
-
FIG. 13 is a schematic view showing processing capability which can be assigned to one batch process. InFIG. 13 , a processing load smaller than or equal to the upper limit value of an I/O load of I/O processing capability 30 can be applied.Processing capability 31 for online processes is subtracted from the processing capability corresponding to the upper limit value of an I/O load and 32 and 33 which can be assigned to batch processes remain. In this embodiment, processing capability is equally assigned to batch processes even if they belong to different batch groups.processing capabilities - On the basis of the processing capability which can be assigned to one batch process and which is obtained in this way, an I/O interval for a batch process in each batch group is calculated. That is to say, processing time per I/O processing in a batch process is “I/O processing time+I/O interval”. An I/O interval is determined so that the ratio of the I/O processing time to the processing time per I/O processing in a batch process will correspond to the processing capability which can be assigned to one batch process. This can be expressed as
I/O processing time÷(I/O processing time+I/O interval)=processing capability which can be assigned to one batch process (3) - By solving equation (3) about I/O interval, equation (2) is obtained.
- To return, the rest of the process shown in
FIG. 12 will now be described. - [Step S24] The load
parameter setting section 152 recalculates CPU load factors in the batch processes in which the selected I/O resource is used. To be concrete, the loadparameter setting section 152 calculates the ratio of process performance time to CPU time for each of the batch processes corresponding to the I/O resource selected from the resource load management table 141 to obtain the load factor of the CPU resource. The process performance time is recalculated on the basis of the interval determined in step S23 and the number of times the resource is used. - [Step S25] The load
parameter setting section 152 recalculates I/O load factors in the batch processes in which the selected I/O resource is used. To be concrete, the loadparameter setting section 152 calculates the ratio of process performance time to I/O time for each of the batch processes corresponding to the I/O resource selected from the resource load management table 141 to obtain the load factor of the I/O resource. The process performance time is recalculated on the basis of the interval determined in step S23 and the number of times the resource is used. - [Step S26] The load
parameter setting section 152 recalculates the usage of communication resources in the batch processes in which the selected I/O resource is used. To be concrete, the loadparameter setting section 152 calculates the ratio of process performance time to communication time for each of the batch processes corresponding to the I/O resource selected from the resource load management table 141 and considers the number of communication buffers corresponding to this ratio as the usage of the communication resources. The process performance time is recalculated on the basis of the interval determined in step S23 and the number of times the resource is used. - [Step S27] The load
parameter setting section 152 sets the usage (load factor) of each resource calculated in step S24 through S26 in the Resource Usage (Load Factor) column in the resource load management table 141. - [Step S28] The load
parameter setting section 152 determines whether an I/O resource which has not yet been selected exists. If an I/O resource which has not yet been selected exists, then step S21 is performed. If all I/O resources have been selected and the I/O load control process is completed, then the process terminates. - The communication load control process will now be described in detail. In the following description, it is assumed that a communication load on the application server corresponding to the resource load management table 141 is controlled.
-
FIG. 14 is a flow chart showing the procedure for the communication load control process. The process shown inFIG. 14 will now be described in order of step number. - [Step S31] The load
parameter setting section 152 selects one communication resource from the resource load management table 141. - [Step S32] The load
parameter setting section 152 refers to the resource load management table 141 and determines whether the sum of the resource usage (load factors) of all business processing groups in which the selected communication resource is used is greater than the upper limit value of resource usage (load factor). If the sum of the resource usage (load factors) of all business processing groups in which the selected communication resource is used is greater than the upper limit value of resource usage (load factor), then step S33 is performed. If the sum of the resource usage (load factors) of all business processing groups in which the selected communication resource is used is not greater than the upper limit value of resource usage (load factor), then step S38 is performed. - [Step S33] The load
parameter setting section 152 calculates a communication interval for each of batch processes in which the selected communication resource is used. To be concrete, a communication interval is calculated by
communication interval=(communication processing time ÷((upper limit value of communication load−number of buffers used in online groups)÷sum of batch multiplicities))−communication processing time (4) - where communication processing time is communication resource use time corresponding to a batch process in which the communication resource selected from the resource load management table 141 in step S31 is used and therefore communication processing time values differ among different batch processes, upper limit value of communication load is the upper limit value of resource usage (load factor) corresponding to the communication resource selected from the resource load management table 141, number of buffers used in online group is the sum of the load factors (values in the Resource Usage (Load Factor) column) of all online processes corresponding to the communication resource selected from the resource load management table 141, and sum of batch multiplicities is the total number of batch processes (for which the Resource Usage (Load Factor) column is not blank) in which the communication resource selected is being used of batch processes corresponding to the communication resource selected from the resource load management table 141.
- The term “(upper limit value of communication load−number of buffers used in online groups)” in equation (4) indicates the storage capacity of communication buffers for communication (the number of buffers which can be assigned to batch processing) obtained by subtracting the number of buffers used in online groups from the upper limit value of a communication load. By dividing the processing capability which can be assigned to batch processing by “sum of batch multiplicities,” the ratio of the storage capacity of communication buffers (numeric value indicative of ratio obtained if the total storage capacity of all communication buffers is considered to be one) which can be assigned to one batch process is found out.
-
FIG. 15 is a schematic view showing the storage capacity of a communication buffer which can be assigned to one batch process. InFIG. 15 , a portion of the entire storage capacity of acommunication buffer 40 corresponding to the upper limit value of a communication load can be used in processes. Anonline process area 43 is subtracted from the storage capacity corresponding to the upper limit value of a communication load and 41 and 42 remain. In this embodiment, the communication buffer is equally assigned to batch processes even if they belong to different batch groups.batch process areas - On the basis of the storage capacity of the communication buffer which can be assigned to one batch process and which is obtained in this way, a communication interval for a batch process in each batch group is calculated. That is to say, processing time per communication processing in a batch process is “communication processing time+communication interval”. A communication interval is determined so that the ratio of the communication processing time to the processing time per communication processing in a batch process will correspond to the ratio of storage capacity of the communication buffer which can be assigned to one batch process. This can be expressed as
communication processing time÷(communication processing time+communication interval)=ratio of storage capacity of communication buffer which can be assigned to one batch process (5) - By solving equation (5) about communication interval, equation (4) is obtained.
- To return, the rest of the process shown in
FIG. 14 will now be described. - [Step S34] The load
parameter setting section 152 recalculates CPU load factors in the batch processes in which the selected communication resource is used. To be concrete, the loadparameter setting section 152 calculates the ratio of process performance time to CPU time for each of the batch processes corresponding to the communication resource selected from the resource load management table 141 to obtain the load factor of the CPU resource. The process performance time is recalculated on the basis of the interval determined in step S33 and the number of times the resource is used. - [Step S35] The load
parameter setting section 152 recalculates I/O load factors in the batch processes in which the selected communication resource is used. To be concrete, the loadparameter setting section 152 calculates the ratio of process performance time to I/O time for each of the batch processes corresponding to the communication resource selected from the resource load management table 141 to obtain the load factor of the I/O resource. The process performance time is recalculated on the basis of the interval determined in step S33 and the number of times the resource is used. - [Step S36] The load
parameter setting section 152 recalculates the usage of communication resources in the batch processes in which the selected communication resource is used. To be concrete, the loadparameter setting section 152 calculates the ratio of process performance time to communication time for each of the batch processes corresponding to the communication resource selected from the resource load management table 141 and considers the number of communication buffers corresponding to this ratio as the usage of the communication resources. The process performance time is recalculated on the basis of the interval determined in step S33 and the number of times the resource is used. - [Step S37] The load
parameter setting section 152 sets the load factor of each resource calculated in step S34 through S36 in the Resource Usage (Load Factor) column in the resource load management table 141. - [Step S38] The load
parameter setting section 152 determines whether a communication resource which has not yet been selected exists. If a communication resource which has not yet been selected exists, then step S31 is performed. If all communication resources have been selected and the communication load control process is completed, then the process terminates. - An optimum multiplicity and interval are calculated in the above-mentioned way every certain period of time and the multiplicity of batch processing and an interval per resource use (I/O access or communication) in each batch process are changed. The multiplicity of batch processing is changed properly. Accordingly, when, for example, a load by online processing decreases, processing capability assigned to the batch processing increases. As a result, the multiplicity of the batch processing can be increased.
-
FIG. 16 is a schematic view showing a multiplicity adjustment process. (A) inFIG. 16 shows a schedule of batch processing before a change in multiplicity. (B) inFIG. 16 shows a schedule of the batch processing after the change in multiplicity. In each schedule, a horizontal axis indicates time and each rectangle indicates a process performed. - In this example, the multiplicity of the batch processing is four before the change in multiplicity. The number of batch processes which are not yet performed is twelve. Therefore, if the batch processing is continued without the multiplicity being changed, it takes three batch processing periods to complete all of the batch processes which are not yet performed. If the multiplicity of the batch processing is changed at multiplicity adjustment timing to six, it takes two batch processing periods to complete all of the batch processes which are not yet performed.
- If the multiplicity of the batch processing is increased too much, then the processing load on a CPU, I/O, or communication resource becomes excessive. If the processing load on the CPU resource is excessive, the multiplicity is decreased. In many cases, however, the processing load on an I/O or communication resource becomes excessive before the processing load on the CPU resource becomes excessive. In this case, by adjusting an interval, the processing load on the I/O or communication resource can be reduced. Therefore, the processing load does not exceed the maximum load factor and there is no need to decrease the multiplicity.
- The reason why adjusting an interval leads to a reduction of the load on a resource can be explained by a queuing theory. The effect of reducing processing time will now be described with the case where an I/O interval is adjusted as an example.
- If an operation process by the CPU and I/O access are performed, service time (time which elapsed after a request to perform a process is made and before the process is completed) is
one processing period=real time+wait time (6) - where real time includes time for which the CPU performs a batch process and time for which I/O access is performed in response to an I/O request made in the batch process, and wait time is time which elapsed after requests to perform a process are made to the CPU resource and I/O resources and before the process is performed.
- If an M/M/1 model (in which requests reach randomly, service time follows an exponential distribution, and the number of service windows is one), which is based on a queuing theory, is adopted, wait time is given by
wait time=(ρ/(1−ρ))×real time (7) - where ρ is referred to as traffic density and indicates how many processes are piled up. ρ (traffic density) is given by
ρ=λ/μ - where λ is an average request arrival rate (the average number of request arrivals per unit time) and μ is an average request handling rate (the average number of handled requests per unit time).
- (ρ/(1−ρ)) indicates the average number of requests to perform a process which stay in a system. That is to say, time taken to handle all requests that stay in a system at the time when a new request to perform a process is made is wait time.
- According to equation (7), the greater the value of ρ becomes, the longer wait time becomes. As the value of ρ approaches one, wait time increases sharply. Therefore, by adjusting the value of ρ so as not to exceed a predetermined upper limit value, wait time becomes shorter than or equal to predetermined time.
- To decrease the value of ρ, λ should be decreased or μ should be increased. However, μ is determined by the processing capability of hardware. Accordingly, λ should be decreased.
- λis an average request arrival rate. In the case of I/O access, λ corresponds to the frequency with which an I/O request is made in a batch process. Accordingly, a request for I/O access should be outputted from the batch process an interval after processing by the CPU. By doing so, the value of λ can be decreased. If the value of λ becomes smaller, then the value of ρ becomes smaller and wait time reduces.
- Concrete examples in which processing time is reduced will now be described.
- First, it is assumed that batch processing is performed at a multiplicity of 10, that, in the batch processing, CPU processing time is three seconds and I/O time is 30 milliseconds per I/O access, and that in the batch processing I/O access occurs 3,000 times.
- One file on a magnetic disk is accessed in the batch process. This file is also accessed from another batch process performed by the CPU. For the sake of calculative simplicity, it is assumed that online processing is not performed. If an interval is not set, the load factor of an I/O resource is 75%. Moreover, it is assumed that many I/O bound processes (in which data is sent to I/O devices) are performed and that a CPU wait does not occur.
- [Processing Time Taken If an Interval is not Set]
- Entire processing time before the setting of an interval will now be calculated first.
- One processing period (time taken to perform one batch process) is given by
- where CPU time includes wait time (“0,” in this example) and is time the CPU takes to perform one batch process, CPU processing time is time for which the CPU resource is used in one batch process, and I/O processing time is time for which an I/O resource is used in one batch process.
- The entire processing time is approximately equal to total I/O time. The total I/O time is (I/O processing time+I/O wait time). Processing time per I/O access is 30 milliseconds and wait time is 90 milliseconds (=(0.75/(1−0.75))×30 milliseconds). Accordingly, 120 milliseconds elapse after a request for I/O access is made and before the processing is completed.
-
FIG. 17 shows entire processing time taken if no interval is set. InFIG. 17 , the relationship between batch processes performed by the CPU and time and the relationship between a batch process in which I/O access is performed and time are shown. The ten batch processes simultaneously performed are numbered from 1 to 10 and a time zone where each batch process is performed is indicated by its number. - 120 milliseconds elapse after a request for I/O access is made and before the processing is completed. The batch processing in which I/O access occurs 3,000 times is performed at a multiplicity of 10. Accordingly, the total I/O time is 3,600 seconds (=120 (milliseconds)×3000 (times)×10 (multiplicity)).
- This can be written as
- [Processing Time Taken if an Interval is Set]
- Processing time taken if an interval is set will now be described. An interval is calculated by
I/O processing time÷(I/O processing time+interval)=processing capability which can be assigned to one batch process (10) - For example, if the upper limit value of an I/O load is 60%, then processing capability which can be assigned to one batch process is 6%. By substituting this value for the right-hand side of equation (10), the following equation is obtained.
30 (milliseconds)÷(30(milliseconds)+interval)=0.06 - Therefore, interval=470 (milliseconds).
- In this case, one processing period is given by one processing period
- Compared with the one processing period (93 seconds) taken if an interval is not set, this one processing period is long. By setting an interval, however, I/O wait time is reduced and entire processing time is shortened.
- The entire processing time is approximately equal to total I/O time. The total I/O time is (I/O processing time+I/O wait time). Processing time per I/O access is 30 milliseconds and wait time is 45 milliseconds (=(0.6/(1−0.6))×30 milliseconds). Accordingly, 75 milliseconds elapse after a request for I/O access is made and before the processing is completed.
-
FIG. 18 shows entire processing time taken if an interval is set. InFIG. 18 , the relationship between batch processes performed by the CPU and time and the relationship between a batch process in which I/O access is performed and time are shown. The ten batch processes simultaneously performed are numbered from 1 to 10 and a time zone where each batch process is performed is indicated by its number. - 75 milliseconds elapse after a request for I/O access is made and before the processing is completed. The batch processing in which I/O access occurs 3,000 times is performed at a multiplicity of 10. Accordingly, the total I/O time is 2,250 seconds (=75 (milliseconds)×3000 (times)×10 (multiplicity)).
- This can be written as
- As a result, by setting an interval, the entire processing time is reduced from 3,600 seconds to 2,250 seconds. This means that about 37 percent of the I/O load can be reduced.
- In this embodiment, as state above, the multiplicity of the batch processing is increased only when margins of processing loads on all of the CPU source, the I/O sources, and the communication sources are left. This enables the server to perform processes at a multiplicity which is most suitable from the viewpoint of processing efficiency.
- In addition, if a processing load caused by I/O processing or communication processing exceeds an upper limit value, a request for I/O processing or communication processing is outputted after the elapse of an interval. By adjusting this interval, a load caused by I/O processing can be reduced and the processing efficiency of the entire system can be improved.
- If the load on the CPU resource exceeds the upper limit value, a multiplicity should be decreased. By doing so, the processing load on the CPU resource can be reduced.
- The above functions can be realized with a computer. In this case, a program in which the contents of the functions the load control apparatus should have are described is provided. By executing this program on the computer, the above functions are realized on the computer. This program can be recorded on a computer readable record medium. A computer readable record medium can be a magnetic recording device, an optical disk, a magneto-optical recording medium, a semiconductor memory, or the like. A magnetic recording device can be a hard disk drive (HDD), a flexible disk (FD), a magnetic tape, or the like. An optical disk can be a digital versatile disk (DVD), a digital versatile disk random access memory (DVD-RAM), a compact disk read only memory (CD-ROM), a compact disk recordable (CD-R)/rewritable (CD-RW), or the like. A magneto-optical recording medium can be a magneto-optical disk (MO) or the like.
- To place the program on the market, portable record media, such as DVDs or CD-ROMs, on which it is recorded are sold. Alternatively, the program is stored in advance on a hard disk in a server computer and is transferred from the server computer to another computer via a network.
- When the computer executes this program, it will store the program, which is recorded on a portable record medium or which is transferred from the server computer, on, for example, its hard disk. Then the computer reads the program from its hard disk and performs processes in compliance with the program. The computer can also read the program directly from a portable record medium and perform processes in compliance with the program. Furthermore, each time the program is transferred from the server computer, the computer can perform processes in turn in compliance with the program it receives.
- The present invention is not to be construed as limited to the above embodiment. Various other modifications and changes can be made without departing from the spirit and scope of the present invention.
- In the present invention, when the multiplicity of processing is increased, loads on the CPU resource and all of the other resources do not exceed the upper limit values. As a result, when the multiplicity of the processing is increased, processing loads on all of the resources on the server do not become excessive and the processing can be performed at a multiplicity which is most suitable from the viewpoint of processing efficiency.
- The foregoing is considered as illustrative only of the principles of the present invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and applications shown and described, and accordingly, all suitable modifications and equivalents may be regarded as falling within the scope of the invention in the appended claims and their equivalents.
Claims (8)
1. A load control apparatus for controlling a load on a server which performs multiplex processing, the apparatus comprising:
a load information acquisition section for acquiring load information regarding loads on a CPU resource and other resources on the server;
a multiplicity determination section for calculating, on the basis of the load information, an increase in load on each resource caused by increasing a multiplicity of a process which is being performed by the server, and for determining, on the basis of the load information, a multiplicity by which a load on each of all the resources becomes smaller than or equal to an upper limit value set in advance; and
a multiplicity control section for changing the multiplicity of the process which is being performed by the server to the multiplicity determined by the multiplicity determination section.
2. The load control apparatus according to claim 1 , wherein when a plurality of processes are being performed by the server, the multiplicity determination section selects each process in order as an object for an examination of an increase in multiplicity and determines whether the multiplicity of a selected process can be increased.
3. The load control apparatus according to claim 2 , wherein the multiplicity determination section repeats the selection of a process as an object for an examination of an increase in multiplicity until it becomes impossible to increase the multiplicity of any of the plurality of processes.
4. The load control apparatus according to claim 2 , wherein:
a maximum multiplicity of each of the plurality of processes which are being performed by the server is set in advance; and
the multiplicity determination section excludes a process which has reached the maximum multiplicity from the examination of an increase in multiplicity.
5. The load control apparatus according to claim 1 , wherein the multiplicity determination section selects only a batch process from among processes which are being performed by the server and determines the multiplicity of the batch process.
6. The load control apparatus according to claim 1 , further comprising:
an interval determination section for determining on the basis of the load information whether loads on the other resources are greater than upper limit values, and for calculating, in the case of the loads on the other resources being greater than the upper limit values, intervals corresponding to the other resources; and
an interval control section for giving the server instructions to output requests for processing to the other resources after the elapse of the intervals.
7. A load control program for controlling a load on a server which performs multiplex processing, the program making a computer function as:
a load information acquisition section for acquiring load information regarding loads on a CPU resource and other resources on the server;
a multiplicity determination section for calculating, on the basis of the load information, an increase in load on each resource caused by increasing a multiplicity of a process which is being performed by the server, and for determining, on the basis of the load information, a multiplicity by which a load on each of all the resources becomes smaller than or equal to an upper limit value set in advance; and
a multiplicity control section for changing the multiplicity of the process which is being performed by the server to the multiplicity determined by the multiplicity determination section.
8. A method for controlling a load on a server which performs multiplex processing with a computer, the method comprising the steps of:
acquiring load information regarding loads on a CPU resource and other resources on the server;
calculating, on the basis of the load information, an increase in load on each resource caused by increasing a multiplicity of a process which is being performed by the server, and determining, on the basis of the load information, a multiplicity by which a load on each of all the resources becomes smaller than or equal to an upper limit value set in advance; and
changing the multiplicity of the process which is being performed by the server to the multiplicity determined.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005-067522 | 2005-03-10 | ||
| JP2005067522A JP4170302B2 (en) | 2005-03-10 | 2005-03-10 | Load control device and load control program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US20060206900A1 true US20060206900A1 (en) | 2006-09-14 |
Family
ID=36972515
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US11/174,508 Abandoned US20060206900A1 (en) | 2005-03-10 | 2005-07-06 | Apparatus and program for controlling loads |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20060206900A1 (en) |
| JP (1) | JP4170302B2 (en) |
Cited By (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080022284A1 (en) * | 2006-07-20 | 2008-01-24 | Ludmila Cherkasova | System and method for allocating capacity of shared resources to a workload |
| US20080134175A1 (en) * | 2006-10-17 | 2008-06-05 | Managelq, Inc. | Registering and accessing virtual systems for use in a managed system |
| US20080134176A1 (en) * | 2006-10-17 | 2008-06-05 | Managelq, Inc. | Enforcement of compliance policies in managed virtual systems |
| US20080184225A1 (en) * | 2006-10-17 | 2008-07-31 | Manageiq, Inc. | Automatic optimization for virtual systems |
| US20080228780A1 (en) * | 2007-03-16 | 2008-09-18 | Kiyoshi Sano | Information processing apparatus, information processing method, and information processing program |
| US20080235178A1 (en) * | 2007-03-20 | 2008-09-25 | Jocelyn Cambria | Presence service system |
| US20080320495A1 (en) * | 2007-06-19 | 2008-12-25 | International Business Machines Corporation | System and method for detecting pattern of events occurred in information system |
| US20090178042A1 (en) * | 2008-01-03 | 2009-07-09 | Abhay Mehta | Managing A Workload In A Database |
| US20090178045A1 (en) * | 2008-01-03 | 2009-07-09 | Chetan Kumar Gupta | Scheduling Memory Usage Of A Workload |
| US20100083264A1 (en) * | 2008-09-30 | 2010-04-01 | Abhay Mehta | Processing Batch Database Workload While Avoiding Overload |
| US20100131952A1 (en) * | 2008-11-27 | 2010-05-27 | International Business Machines Corporation | Assistance In Performing Action Responsive To Detected Event |
| US20130007765A1 (en) * | 2010-03-11 | 2013-01-03 | Fujitsu Limited | Software control device, software control method, and computer product |
| US20130191845A1 (en) * | 2010-08-25 | 2013-07-25 | Fujitsu Limited | Load control device and load control method |
| US8505011B2 (en) | 2010-10-01 | 2013-08-06 | Fuji Xerox Co., Ltd. | Method of optimizing job distribution process by analysis of transmission time and processing time |
| US8612971B1 (en) | 2006-10-17 | 2013-12-17 | Manageiq, Inc. | Automatic optimization for virtual systems |
| US8752045B2 (en) | 2006-10-17 | 2014-06-10 | Manageiq, Inc. | Methods and apparatus for using tags to control and manage assets |
| US8832691B2 (en) | 2006-10-17 | 2014-09-09 | Manageiq, Inc. | Compliance-based adaptations in managed virtual systems |
| US8850433B2 (en) | 2006-10-17 | 2014-09-30 | Manageiq, Inc. | Compliance-based adaptations in managed virtual systems |
| US20140317635A1 (en) * | 2011-11-24 | 2014-10-23 | Hitachi, Ltd. | Computer system and divided job processing method and program |
| US8892495B2 (en) | 1991-12-23 | 2014-11-18 | Blanding Hovenweep, Llc | Adaptive pattern recognition based controller apparatus and method and human-interface therefore |
| US8924917B2 (en) | 2007-11-27 | 2014-12-30 | Manageiq, Inc. | Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets |
| US8949826B2 (en) | 2006-10-17 | 2015-02-03 | Managelq, Inc. | Control and management of virtual systems |
| US8949825B1 (en) | 2006-10-17 | 2015-02-03 | Manageiq, Inc. | Enforcement of compliance policies in managed virtual systems |
| US9086917B1 (en) | 2006-10-17 | 2015-07-21 | Manageiq, Inc. | Registering and accessing virtual systems for use in a managed system |
| US9292666B2 (en) | 2007-11-27 | 2016-03-22 | Manageiq, Inc | Methods and apparatus for locating an unauthorized virtual machine |
| US9501321B1 (en) * | 2014-01-24 | 2016-11-22 | Amazon Technologies, Inc. | Weighted service requests throttling |
| US9535563B2 (en) | 1999-02-01 | 2017-01-03 | Blanding Hovenweep, Llc | Internet appliance system and method |
| US9697019B1 (en) | 2006-10-17 | 2017-07-04 | Manageiq, Inc. | Adapt a virtual machine to comply with system enforced policies and derive an optimized variant of the adapted virtual machine |
| CN110109610A (en) * | 2018-02-01 | 2019-08-09 | 爱思开海力士有限公司 | Storage system and its operating method |
| CN112988389A (en) * | 2021-03-22 | 2021-06-18 | 成都卓拙科技有限公司 | Automatic scaling method and system combining load regulation and periodic regulation |
| US20250103549A1 (en) * | 2023-09-27 | 2025-03-27 | Beijing Zitiao Network Technology Co., Ltd. | Data processing method and apparatus, processor, electronic device and storage medium |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009259060A (en) * | 2008-04-18 | 2009-11-05 | Hitachi Ltd | Stream data recording / reproducing apparatus |
| JP4797095B2 (en) | 2009-07-24 | 2011-10-19 | 株式会社日立製作所 | Batch processing multiplexing method |
| JP5555010B2 (en) * | 2010-02-26 | 2014-07-23 | 大阪瓦斯株式会社 | Unnecessary application monitoring device |
| JP6377197B1 (en) * | 2017-03-03 | 2018-08-22 | 三菱電機インフォメーションシステムズ株式会社 | Thread number variation communication apparatus and thread number variation communication program |
| JP6711339B2 (en) * | 2017-10-25 | 2020-06-17 | 横河電機株式会社 | Communication processing device, program, and communication processing method |
| JP7184170B2 (en) * | 2019-04-24 | 2022-12-06 | 三菱電機株式会社 | Information processing system |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5898870A (en) * | 1995-12-18 | 1999-04-27 | Hitachi, Ltd. | Load balancing for a parallel computer system by employing resource utilization target values and states |
| US6016503A (en) * | 1997-08-29 | 2000-01-18 | International Business Machines Corporation | Methods, systems and computer program products for preemptive avoidance of constraints for shared resources |
| US6081826A (en) * | 1996-03-12 | 2000-06-27 | Hitachi, Ltd. | System using environment manager with resource table in each computer for managing distributed computing resources managed for each application |
| US7660896B1 (en) * | 2003-04-15 | 2010-02-09 | Akamai Technologies, Inc. | Method of load balancing edge-enabled applications in a content delivery network (CDN) |
| US7665090B1 (en) * | 2004-03-08 | 2010-02-16 | Swsoft Holdings, Ltd. | System, method, and computer program product for group scheduling of computer resources |
-
2005
- 2005-03-10 JP JP2005067522A patent/JP4170302B2/en not_active Expired - Fee Related
- 2005-07-06 US US11/174,508 patent/US20060206900A1/en not_active Abandoned
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5898870A (en) * | 1995-12-18 | 1999-04-27 | Hitachi, Ltd. | Load balancing for a parallel computer system by employing resource utilization target values and states |
| US6081826A (en) * | 1996-03-12 | 2000-06-27 | Hitachi, Ltd. | System using environment manager with resource table in each computer for managing distributed computing resources managed for each application |
| US6016503A (en) * | 1997-08-29 | 2000-01-18 | International Business Machines Corporation | Methods, systems and computer program products for preemptive avoidance of constraints for shared resources |
| US7660896B1 (en) * | 2003-04-15 | 2010-02-09 | Akamai Technologies, Inc. | Method of load balancing edge-enabled applications in a content delivery network (CDN) |
| US7665090B1 (en) * | 2004-03-08 | 2010-02-16 | Swsoft Holdings, Ltd. | System, method, and computer program product for group scheduling of computer resources |
Cited By (54)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8892495B2 (en) | 1991-12-23 | 2014-11-18 | Blanding Hovenweep, Llc | Adaptive pattern recognition based controller apparatus and method and human-interface therefore |
| US9535563B2 (en) | 1999-02-01 | 2017-01-03 | Blanding Hovenweep, Llc | Internet appliance system and method |
| US8336054B2 (en) * | 2006-07-20 | 2012-12-18 | Hewlett-Packard Development Company, L. P. | System and method for allocating capacity of shared resources to a workload |
| US20080022284A1 (en) * | 2006-07-20 | 2008-01-24 | Ludmila Cherkasova | System and method for allocating capacity of shared resources to a workload |
| US9477520B2 (en) | 2006-10-17 | 2016-10-25 | Manageiq, Inc. | Registering and accessing virtual systems for use in a managed system |
| US9563460B2 (en) | 2006-10-17 | 2017-02-07 | Manageiq, Inc. | Enforcement of compliance policies in managed virtual systems |
| US10725802B2 (en) | 2006-10-17 | 2020-07-28 | Red Hat, Inc. | Methods and apparatus for using tags to control and manage assets |
| US10353724B2 (en) | 2006-10-17 | 2019-07-16 | Red Hat, Inc. | Automatic optimization for virtual systems |
| US8949826B2 (en) | 2006-10-17 | 2015-02-03 | Managelq, Inc. | Control and management of virtual systems |
| US9710482B2 (en) | 2006-10-17 | 2017-07-18 | Manageiq, Inc. | Enforcement of compliance policies in managed virtual systems |
| US9697019B1 (en) | 2006-10-17 | 2017-07-04 | Manageiq, Inc. | Adapt a virtual machine to comply with system enforced policies and derive an optimized variant of the adapted virtual machine |
| US20080134175A1 (en) * | 2006-10-17 | 2008-06-05 | Managelq, Inc. | Registering and accessing virtual systems for use in a managed system |
| US20080134176A1 (en) * | 2006-10-17 | 2008-06-05 | Managelq, Inc. | Enforcement of compliance policies in managed virtual systems |
| US8458695B2 (en) * | 2006-10-17 | 2013-06-04 | Manageiq, Inc. | Automatic optimization for virtual systems |
| US9170833B2 (en) | 2006-10-17 | 2015-10-27 | Manage Iq, Inc. | Compliance-based adaptations in managed virtual systems |
| US9086917B1 (en) | 2006-10-17 | 2015-07-21 | Manageiq, Inc. | Registering and accessing virtual systems for use in a managed system |
| US9038062B2 (en) | 2006-10-17 | 2015-05-19 | Manageiq, Inc. | Registering and accessing virtual systems for use in a managed system |
| US9015703B2 (en) | 2006-10-17 | 2015-04-21 | Manageiq, Inc. | Enforcement of compliance policies in managed virtual systems |
| US8612971B1 (en) | 2006-10-17 | 2013-12-17 | Manageiq, Inc. | Automatic optimization for virtual systems |
| US8949825B1 (en) | 2006-10-17 | 2015-02-03 | Manageiq, Inc. | Enforcement of compliance policies in managed virtual systems |
| US9852001B2 (en) | 2006-10-17 | 2017-12-26 | Manageiq, Inc. | Compliance-based adaptations in managed virtual systems |
| US20080184225A1 (en) * | 2006-10-17 | 2008-07-31 | Manageiq, Inc. | Automatic optimization for virtual systems |
| US8752045B2 (en) | 2006-10-17 | 2014-06-10 | Manageiq, Inc. | Methods and apparatus for using tags to control and manage assets |
| US8832691B2 (en) | 2006-10-17 | 2014-09-09 | Manageiq, Inc. | Compliance-based adaptations in managed virtual systems |
| US8839246B2 (en) | 2006-10-17 | 2014-09-16 | Manageiq, Inc. | Automatic optimization for virtual systems |
| US8850433B2 (en) | 2006-10-17 | 2014-09-30 | Manageiq, Inc. | Compliance-based adaptations in managed virtual systems |
| US20080228780A1 (en) * | 2007-03-16 | 2008-09-18 | Kiyoshi Sano | Information processing apparatus, information processing method, and information processing program |
| US8490097B2 (en) * | 2007-03-16 | 2013-07-16 | Nec Corporation | Information processing apparatus having a plurality of control units receiving transactions at the current time such that when the current time coincides with most recent start-up time the control units update the start-up time with the current time and sum up the number of transactions being processed limited to a predetermined threshold |
| US20080235178A1 (en) * | 2007-03-20 | 2008-09-25 | Jocelyn Cambria | Presence service system |
| US8707335B2 (en) * | 2007-06-19 | 2014-04-22 | International Business Machines Corporation | Detecting patterns of events in information systems |
| US9660893B2 (en) | 2007-06-19 | 2017-05-23 | International Business Machines Corporation | Detecting patterns of events in information systems |
| US20080320495A1 (en) * | 2007-06-19 | 2008-12-25 | International Business Machines Corporation | System and method for detecting pattern of events occurred in information system |
| US10250479B2 (en) | 2007-06-19 | 2019-04-02 | International Business Machines Corporation | Detecting patterns of events in information systems |
| US9292666B2 (en) | 2007-11-27 | 2016-03-22 | Manageiq, Inc | Methods and apparatus for locating an unauthorized virtual machine |
| US9612919B2 (en) | 2007-11-27 | 2017-04-04 | Manageiq, Inc. | Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets |
| US8924917B2 (en) | 2007-11-27 | 2014-12-30 | Manageiq, Inc. | Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets |
| US8627330B2 (en) * | 2008-01-03 | 2014-01-07 | Hewlett-Packard Development Company, L.P. | Workload manager managing a workload of an enterprise data warehouse |
| US20090178045A1 (en) * | 2008-01-03 | 2009-07-09 | Chetan Kumar Gupta | Scheduling Memory Usage Of A Workload |
| US20090178042A1 (en) * | 2008-01-03 | 2009-07-09 | Abhay Mehta | Managing A Workload In A Database |
| US8627325B2 (en) * | 2008-01-03 | 2014-01-07 | Hewlett-Packard Development Company, L.P. | Scheduling memory usage of a workload |
| US9069613B2 (en) * | 2008-09-30 | 2015-06-30 | Hewlett-Packard Development Company, L.P. | Processing batch database workload while avoiding overload |
| US20100083264A1 (en) * | 2008-09-30 | 2010-04-01 | Abhay Mehta | Processing Batch Database Workload While Avoiding Overload |
| US20100131952A1 (en) * | 2008-11-27 | 2010-05-27 | International Business Machines Corporation | Assistance In Performing Action Responsive To Detected Event |
| US8516499B2 (en) | 2008-11-27 | 2013-08-20 | International Business Machines Corporation | Assistance in performing action responsive to detected event |
| US20130007765A1 (en) * | 2010-03-11 | 2013-01-03 | Fujitsu Limited | Software control device, software control method, and computer product |
| US20130191845A1 (en) * | 2010-08-25 | 2013-07-25 | Fujitsu Limited | Load control device and load control method |
| US8505011B2 (en) | 2010-10-01 | 2013-08-06 | Fuji Xerox Co., Ltd. | Method of optimizing job distribution process by analysis of transmission time and processing time |
| US9244721B2 (en) * | 2011-11-24 | 2016-01-26 | Hitachi, Ltd. | Computer system and divided job processing method and program |
| US20140317635A1 (en) * | 2011-11-24 | 2014-10-23 | Hitachi, Ltd. | Computer system and divided job processing method and program |
| US9501321B1 (en) * | 2014-01-24 | 2016-11-22 | Amazon Technologies, Inc. | Weighted service requests throttling |
| CN110109610A (en) * | 2018-02-01 | 2019-08-09 | 爱思开海力士有限公司 | Storage system and its operating method |
| CN112988389A (en) * | 2021-03-22 | 2021-06-18 | 成都卓拙科技有限公司 | Automatic scaling method and system combining load regulation and periodic regulation |
| US20250103549A1 (en) * | 2023-09-27 | 2025-03-27 | Beijing Zitiao Network Technology Co., Ltd. | Data processing method and apparatus, processor, electronic device and storage medium |
| US12380057B2 (en) * | 2023-09-27 | 2025-08-05 | Beijing Zitiao Network Technology Co., Ltd. | Improving computing efficiency of a processor by optimizing a computational size of each computing core in the processor |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2006252163A (en) | 2006-09-21 |
| JP4170302B2 (en) | 2008-10-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20060206900A1 (en) | Apparatus and program for controlling loads | |
| US7933995B2 (en) | Computer program and apparatus for controlling computing resources, and distributed processing system | |
| US20090083746A1 (en) | Method for job management of computer system | |
| CN1610347B (en) | Method and apparatus for managing performance and resource utilization in a cluster-based system | |
| US9477460B2 (en) | Non-transitory computer-readable storage medium for selective application of update programs dependent upon a load of a virtual machine and related apparatus and method | |
| US7734676B2 (en) | Method for controlling the number of servers in a hierarchical resource environment | |
| US8359596B2 (en) | Determining capability of an information processing unit to execute the job request based on satisfying an index value and a content of processing of the job | |
| US8224938B2 (en) | Data processing system and method for iteratively re-distributing objects across all or a minimum number of processing units | |
| US20050154576A1 (en) | Policy simulator for analyzing autonomic system management policy of a computer system | |
| EP1732004A1 (en) | Computer system, server constituting the same, job execution control method thereof, and program | |
| US20180144251A1 (en) | Server and cloud computing resource optimization method thereof for cloud big data computing architecture | |
| JP5737057B2 (en) | Program, job scheduling method, and information processing apparatus | |
| JP2006521640A (en) | Service quality controller and service quality method for data storage system | |
| US7653714B2 (en) | Computer-readable recording medium with system managing program recorded therein, system managing method and system managing apparatus | |
| US7624208B2 (en) | Method, system, and computer program for managing a queuing system | |
| JP3006551B2 (en) | Business distribution system between plural computers, business distribution method, and recording medium recording business distribution program | |
| JPH09218858A (en) | Distributed database management system | |
| CN109800075A (en) | Cluster management method and device | |
| KR20230069483A (en) | Method for optimal resource selection based on available GPU resource analysis in a large-scale container platform | |
| US20200341819A1 (en) | Information processing apparatus and distributed processing system | |
| KR20170048721A (en) | Method and apparatus for big size file blocking for distributed processing | |
| CN110417678A (en) | A kind of method and device of application programming interfaces current limliting | |
| JP2008090507A (en) | Job execution scheduling program, job execution scheduling method, and job execution scheduling apparatus | |
| JP4322094B2 (en) | Information processing method, service time deriving method, and processing unit number adjusting method | |
| CN106155810B (en) | Workload-aware I/O scheduler in software-defined hybrid storage systems |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: FUJITSU LIMITED, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:OOYAMA, HIROYUKI;TAKAHASHI, YOSHIHIRO;REEL/FRAME:016760/0976 Effective date: 20050531 |
|
| STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |