nagaboinaramgopal opened a new pull request, #14043:
URL: https://github.com/apache/cloudstack/pull/14043

   ### Description
   
   Two cluster-DRS improvements.
   
   1. Event-driven DRS. Cluster DRS previously ran only on the periodic timer, 
so an imbalance created when a VM starts or stops was not corrected until the 
next scheduled run. This subscribes the DRS service to VM power-state events 
and triggers a DRS pass for the affected cluster when one fires. Two new 
cluster-scoped settings control it: `drs.event.driven.enable` (default false, 
off) and `drs.event.driven.interval` (default 5, the minimum seconds between 
event-driven runs, so a burst of power events is debounced into a single pass). 
Event-driven runs still require automatic DRS to be enabled for the cluster and 
honour the existing DRS algorithm and thresholds. Off by default, so nothing 
changes until an operator opts in.
   
   2. A "both" DRS metric. In addition to balancing on cpu or memory, the new 
`both` metric balances on both together by scoring a candidate migration on the 
worse of its cpu and memory post-migration imbalance, so a cluster is only 
considered balanced when both dimensions are.
   
   ### Types of changes
   
   - [x] New feature (non-breaking change which adds functionality)
   
   ### Feature/Enhancement Scale or Bug Severity
   
   #### Feature/Enhancement Scale
   
   - [x] Minor
   
   ### How Has This Been Tested?
   
   Added unit tests in `ClusterDrsServiceImplTest`:
   - `testShouldTriggerEventDrivenDrsDisabledByDefault`: no event-driven run 
when the setting is off (the default).
   - `testShouldTriggerEventDrivenDrsRequiresAutomaticDrs`: event-driven runs 
only when automatic DRS is enabled.
   - `testShouldTriggerEventDrivenDrsEnabledThenDebounced`: a second event 
within the interval is debounced.
   - `testTriggerEventDrivenDrsForVmSchedulesWhenEnabled` and 
`testTriggerEventDrivenDrsForVmDoesNotScheduleWhenDisabled`: a VM power-state 
event schedules a DRS pass only when enabled.
   
   Also built the standard packages and deployed on a KVM advanced zone.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to