Bug 1014696

Summary: optimize scheduling for speed
Product: Red Hat Enterprise Virtualization Manager Reporter: Gilad Chaplik <gchaplik>
Component: ovirt-engineAssignee: Gilad Chaplik <gchaplik>
Status: CLOSED CURRENTRELEASE QA Contact: Artyom <alukiano>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 3.3.0CC: acathrow, dfediuck, gchaplik, iheim, lpeer, mavital, Rhev-m-bugs, yeylon
Target Milestone: ---   
Target Release: 3.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: sla
Fixed In Version: is27 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: SLA RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1019461, 1049022    

Description Gilad Chaplik 2013-10-02 14:42:26 UTC
Since scheduling process is synchronized, and can be costly when there are numerous concurrent pending requests, add to the cluster an 'optimize for speed' (vs utilization) ability, that should be able to skip weighing process in case there are more than X requests pending to be scheduled, and let the load balancing process to balance the cluster in a lazy manner.

Comment 1 Artyom 2013-12-12 13:15:33 UTC
Please provide information for reproducing process.
Thanks

Comment 2 Gilad Chaplik 2013-12-12 13:34:00 UTC
(In reply to Artyom from comment #1)
> Please provide information for reproducing process.
> Thanks

Added a cluster configuration (optimize for speed) that allows to skip scheduling weights, in-case there are more than X request pending on the scheduler (X =	config.SpeedOptimizationSchedulingThreshold). this was added to shorter scheduling processes on a loaded environment. No weights means that one of the host (and not the preferable) will be selected for scheduling, and the load balancer should balance the cluster later on.

To test it, I'd reduce the threadhold to a lower number, and have an external module that takes time (sleep can do the trick). Then run several run vm commands  (in parallel)from the REST API. The scheduling request should pile up, and when there are X (threshold) pending, the weight part will be skipped.

Comment 3 Artyom 2013-12-16 17:48:51 UTC
Verified is27

Comment 4 Itamar Heim 2014-01-21 22:23:32 UTC
Closing - RHEV 3.3 Released

Comment 5 Itamar Heim 2014-01-21 22:24:36 UTC
Closing - RHEV 3.3 Released

Comment 6 Itamar Heim 2014-01-21 22:28:15 UTC
Closing - RHEV 3.3 Released