[nova-scheduler] always the same compute was selected?

melanie witt melwittt at gmail.com
Tue Oct 27 21:24:49 UTC 2020


On 10/27/20 14:13, Tony Liu wrote:
> Hi,
> 
> I have a Ussuri setup with 5 compute nodes (same resource spec).
> When launch 5 Cirros VMs in a batch, they are all launched on
> the same compute node. All 5 nodes have sufficient resource.
> 
> AWIK, Nova scheduler picks a compute randomly after going through
> filtering. But 5 VMs all on the same compute is quite coincidental.
> Could it be something missing?
> Is there any control to such random pick?
> Any way to make a better balancing?

Nova scheduler will weigh all of the candidate hosts via the weighers 
configured and then by default, it will pick randomly from a set of only 
1 [1]. This will result in a "packing" behavior if the weighers are not 
sufficiently configured to result in "spreading" instances (example: 
cpu/ram/disk weighers).

To make the scheduler pick randomly from a larger subset of candidate 
compute hosts, increase the host_subset_size [1].

To make the scheduler randomly shuffle candidate hosts when weighting is 
the same, set shuffle_best_same_weighed_hosts to True [2].

If you have > 1000 compute hosts (via multi-cell) and need to randomize 
the default 1000 results that come from placement [3], set 
randomize_allocation_candidates to True.

You likely will only be interested in the first two options I described. 
Tune host_subset_size until you get the desired scheduling behavior.

Hope this helps,
-melanie

[1] 
https://docs.openstack.org/nova/ussuri/configuration/config.html#filter_scheduler.host_subset_size
[2] 
https://docs.openstack.org/nova/ussuri/configuration/config.html#filter_scheduler.shuffle_best_same_weighed_hosts
[3] 
https://docs.openstack.org/nova/ussuri/configuration/config.html#scheduler.max_placement_results
[4] 
https://docs.openstack.org/placement/ussuri/configuration/config.html#placement.randomize_allocation_candidates



More information about the openstack-discuss mailing list