Method and system for dynamically allocating servers to compute-resources using capacity thresholds
Abstract
Servers are allocated for use in one of a plurality of compute-resources or for stand-by storage in a free-pool. Server load metrics are selected (e.g., ping-reply time or CP utilization) for measuring load in the servers. Metrics are measured for the servers allocated to the compute-resources. Several metrics can be measured simultaneously. The metrics for each compute-resource are normalized and averaged. Then, the metrics for each compute-resource are combined using weighting coefficients, producing a global load value, G, for each compute-resource. The G value is recalculated at timed intervals. Upper and lower thresholds are set for each compute-resource, and the G values are compared to the thresholds. If the G value exceeds the upper threshold, then a server in the free-pool is reallocated to the compute-resource; if the G value is less than the lower threshold, then a server is moved from the compute-resource to the free-pool.
Claims
exact text as granted — not AI-modified1 . A load driven method for allocating servers among a plurality of compute-resources and a free-pool, wherein each compute-resource comprises a plurality of servers, the method comprising the steps of:
for each monitored metric on the standard server and for each compute-resource, calculating a maximum metric value at a maximum load point as a maximum load vector for a compute-resource; setting lower and upper global thresholds as allowable percents of the maximum load point; for each compute-resource and unique server type and for each monitored metric, calculating a capacity weight for the monitored metric; monitoring each server allocated to a compute-resource for at least one metric; for each monitored metric and for each compute-resource, calculating an average normalized metric value P n in standard server units; for each monitored metric and for each compute-resource, calculating a current percent of a corresponding maximum metric value as a current percent of maximum load vector; for each compute-resource, calculating one or more global load values G, wherein each global load value is a linear combination of normalized current percent of corresponding maximum metric values; for each compute-resource, dynamically adjusting lower upper thresholds for the global load value; and for each compute-resource, comparing the calculated global load value G to the lower threshold and upper threshold, and performing an allocation of servers to compute-resources based on a comparison outcome.
2 . The method of claim 1 , wherein following the comparison outcome, if a load is not predicted to continue for more than some minimum amount of time, do nothing.
3 . The method of claim 1 , wherein following the comparison outcome, if some predetermined amount of time has not elapsed since a last capacity adjustment, do nothing.
4 . The method of claim 1 , wherein following the comparison outcome, if servers are available in the free pool and an overloaded compute-resource has a global load value G greater than the upper threshold, then removing a server from the free pool and allocating it to the overloaded compute-resource.
5 . The method of claim 1 , wherein following the comparison outcome, if servers are not available in the free pool and an overloaded compute-resource has a global value G greater than the upper threshold, perform resource-negotiation.
6 . The method of claim 1 , wherein following the comparison outcome, if an under loaded compute-resource has a global load value G less than the lower threshold, and the following inequality is satisfied
Curr_Total
req
/
sec
<
Server_Max
req
/
sec
*
(
N
-
1
)
N
-
(
Server_Max
req
/
sec
-
Server_Min
req
/
sec
)
then removing a server from the under loaded compute-resource and allocating it to the free-pool.
7 . The method of claim 1 wherein the maximum load values contained in the maximum-load-vector correspond to the values measured on the standard server when load reaches the response time transition point
Max LV compute — resource=( M 1 stdr , . . . , MN stdr )
8 . The method of claim 1 , wherein a capacity weight of an nth metric on a given compute-resource is calculated according to the equation
MWn
t
=
Mn
t
Mn
stdr
9 . The method of claim 1 , wherein each normalized average metric value P is calculated according to the equation
P
n
=
(
∑
s
∈
S
measured_valueM
n
(
s
)
∑
s
∈
S
MWn
t
(
s
)
)
wherein P n is the present value of metric n on server s in standard server units, m is the number of servers assigned to the compute resource.
10 . The method of claim 1 , wherein the Current Percent of Maximum Load Vector (% CurrMLV), is calculated according to the equation
%
CurrMLV
=
(
P
1
M
1
_stdr
,
…
,
P
n
M
n_stdr
)
11 . The method of claim 1 , wherein one or more global load values G are computed for each compute-resource, as a linear combination of normalized current percent of the corresponding maximum values according to the following equation
Load
=
∑
n
=
1
N
(
C
n
*
%
CurrMLV
n
)
12 . The method of claim 1 , wherein dynamic upper and lower thresholds for the global load value are adjusted using the following equation
Threshold_Adjustment
=
Threshold_High
-
Threshold_Low
Size_Growth
_Interval
13 . The method of claim 1 , wherein a deallocation process is inhibited unless following inequality is satisfied
Curr_Total
req
/
sec
<
Server_Max
req
/
sec
*
(
N
-
1
)
N
-
(
Server_Max
req
/
sec
-
Server_Min
req
/
sec
)
14 . A computer readable medium containing code which enables a computer to perform a method for allocating servers among a plurality of connected compute-resources and a free-pool, wherein each compute-resource comprises a plurality of servers, the method comprising the steps of:
for each monitored metric on the standard server and for each compute-resource, calculating a maximum metric value at a maximum load point as a maximum load vector for the compute-resource; monitoring each server allocated to a compute-resource for at least one metric; for each monitored metric and for each compute-resource, calculating an average normalized metric value P n in standard server units; for each monitored metric and for each compute-resource, calculating a current percent of a corresponding maximum metric value as a current percent of maximum load vector; for each compute-resource, calculating one or more global load values G, wherein each global load value is a linear combination of normalized current percent of the corresponding maximum metric values; for each compute-resource, defining dynamically calculated lower threshold and an upper threshold adjustments for the global load value; and for each compute-resource, comparing the calculated global load value G to the lower threshold and upper threshold, and performing a server allocation according to a comparison outcome.
15 . The computer readable medium of claim 14 , wherein the method, following the comparison outcome, determines if load is not predicted to continue for more then some minimum amount of time, and if so, does nothing.
16 . The computer readable medium of claim 14 , wherein the method, following the comparison outcome, determines if some predetermined amount of time has not elapsed since the last capacity adjustment, and if so, does nothing.
17 . The computer readable medium of claim 14 , wherein the method, following the comparison outcome, determines if servers are available in the free pool and an overloaded compute-resource has a global load value G greater than the upper threshold, and if so, removes a server from the free-pool and allocating it to the overloaded compute-resource.
18 . The computer readable medium of claim 14 , wherein the method, following the comparison outcome, determines if servers are not available in the free pool and an overloaded compute-resource has a global load value G greater than the upper threshold, and if so, performs resource-negotiation.
19 . The computer readable medium of claim 14 , wherein the method,
following the comparison outcome, determines if an under loaded compute-resource has a global load value G less than the lower threshold, and if so, removes a server from the under loaded compute-resource and allocating it to the free-pool.
20 . A system for allocating servers among a plurality of connected server compute-resources and a free-pool, wherein each server compute-resource comprises a plurality of servers, the system comprising:
monitoring means for monitoring each server allocated to a compute-resource for a plurality of metric values; calculating means for calculating a normalized average metric value P for each monitored metric value and for each server compute-resource; combining means for linearly combining the normalized metric values to create a global load value G for each compute-resource; storage means for storing a defined lower threshold and a defined upper threshold for the linear combination value; comparing means for comparing the global load value to the lower threshold and upper threshold; and allocating means for allocating servers among compute-resources and the free-pool.
21 . The system of claim 20 , wherein the allocating means responds to the comparing means in the case where an overloaded compute-resource has a global load value greater than the upper threshold by removing a server from the free-pool and allocating it to the overloaded compute-resource.
22 . The system of claim 20 , wherein the allocating means responds to the comparing means in the case where an under loaded compute-resource has a global load value less than the lower threshold by removing a server from the under loaded compute-resource and allocating it to the free-pool.
23 . The system of claim 20 , wherein the allocating means responds to the comparing means in the case where an under loaded compute-resource has a global load value G less than the lower threshold and an overloaded compute-resource has a global load value G greater than the upper threshold by removing a server from the under loaded compute-resource and allocating it to the overloaded compute-resource.
24 . The system of claim 20 , further comprising means for calculating a capacity weight of each server type for each compute-resource.
25 . The system of claim 24 , wherein server capacity weights are klused in combination with current metric values to compute a present load as represented by each metric type.
26 . The system of claim 20 , wherein a Current Percent Maximum Load vector is linearly combined with metric reliability weights to generate one or more global compute-resource weights for each compute-resource.
27 . The system of claim 20 , wherein each compute-resource upper and lower thresholds are dynamically adjusted.Join the waitlist — get patent alerts
Track US2007233866A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.