US2007233866A1PendingUtilityA1

Method and system for dynamically allocating servers to compute-resources using capacity thresholds

Assignee: APPLEBY KARENPriority: Mar 28, 2006Filed: Mar 28, 2006Published: Oct 4, 2007
Est. expiryMar 28, 2026(expired)· nominal 20-yr term from priority
H04L 67/1012H04L 67/1008H04L 67/101H04L 67/1001H04L 67/1023
45
PatentIndex Score
0
Cited by
0
References
0
Claims

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-modified
1 . 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.