[nova] Instance Even Scheduling

Tony Liu tonyliu0592 at hotmail.com
Mon Jan 17 17:45:38 UTC 2022

I recall weight didn't work as what I expected, that's why I used 

Here is what I experienced.
With Ussuri and default Nova scheduling settings. All weighers are supposed
to be enabled and all multipliers are positive. On 10x empty compute nodes
with the same spec, say the first vm is created on compute-2. Because some
memory and vCPU are consumed, the second vm should be created on some
node other than compute-2, if weighers are working fine. But it's still created
on compute-2, until I increased host_subset_size and enable shuffle_best_same_weighed_hosts. It seems that all compute nodes are equally
weighted, although they don't have the same amount of resource.
Am I missing anything there?

From: Sean Mooney <smooney at redhat.com>
Sent: January 17, 2022 09:06 AM
To: openstack-discuss at lists.openstack.org
Subject: Re: [nova] Instance Even Scheduling

On Mon, 2022-01-17 at 16:35 +0000, Tony Liu wrote:
> https://docs.openstack.org/nova/latest/admin/scheduling.html
> Filter gives you a group of valid hosts, assuming they are equally weighted,
> you may try with these two settings to pick up a host in a more even manner.
> host_subset_size (increase the size)
> shuffle_best_same_weighed_hosts (enable the shuffle)
> https://docs.openstack.org/nova/latest/configuration/config.html

yes the weighers are what will blance between the hosts and the filters determin which host are valid
so if you want to spread based on ram then you need to adject the

for example set ram_weight_multiplier=10.0 to make it relitivly more important.
the way the weigher work is all wheigher calulate the weight for a host,
we then add them after multiplying them by the weights and then sort.

> Tony
> ________________________________________
> From: Ammad Syed <syedammad83 at gmail.com>
> Sent: January 16, 2022 11:53 PM
> To: openstack-discuss
> Subject: [nova] Instance Even Scheduling
> Hi,
> I have 5 compute nodes. When I deploy instances, the most of the instances automatically placed in node 1 or node 2. The other compute nodes remain empty or with one or two instances on it.
> enabled_filters = ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,AggregateInstanceExtraSpecsFilter
> I have enabled the above filters. How to ensure that instances should be scheduled on compute nodes evenly on all compute hosts based on RAM only ? Like scheduler should schedule the instance on compute host which has a large amount of RAM available then other hosts.
> - Ammad

More information about the openstack-discuss mailing list