Add some tunable parameters for nova-scheduler

Since placement service was introduced, there have been several
conditions where instances are not well distributed among multiple
compute nodes. For example with the default configurations if a user
creates multiple instances concurrently, these instances might be
packed into a single compute node because placement returns the same
results until any instance is actually launched at compute nodes.

This change introdices two tunable parameters about nova-scheduler
so that we can implement better distribution of nova instances in some
usecases.

Change-Id: Id488db4bd60b1c35704e24a0a85d61853bfd7038
This commit is contained in:
Takashi Kajinami 2021-01-18 21:01:02 +09:00
parent 0dbcbd18ad
commit 915bf046ee
2 changed files with 20 additions and 0 deletions

View File

@ -118,6 +118,16 @@ parameters:
aggregates to be reported in placement, so only hosts within the asked aggregates to be reported in placement, so only hosts within the asked
aggregates would be accepted. aggregates would be accepted.
type: boolean type: boolean
NovaSchedulerHostSubsetSize:
default: 1
description: >
Size of subset of best hosts selected by scheduler.
type: number
NovaSchedulerShuffleBestSameWeighedHosts:
default: false
description: >
Enable spreading the instances between hosts with the same best weight.
type: boolean
# DEPRECATED: the following options are deprecated and are currently maintained # DEPRECATED: the following options are deprecated and are currently maintained
# for backwards compatibility. They will be removed in future release. # for backwards compatibility. They will be removed in future release.
NovaSchedulerDefaultFilters: NovaSchedulerDefaultFilters:
@ -206,6 +216,8 @@ outputs:
- {get_param: NovaSchedulerDefaultFilters} - {get_param: NovaSchedulerDefaultFilters}
- {get_param: NovaSchedulerEnabledFilters} - {get_param: NovaSchedulerEnabledFilters}
nova::scheduler::filter::scheduler_max_attempts: {get_param: NovaSchedulerMaxAttempts} nova::scheduler::filter::scheduler_max_attempts: {get_param: NovaSchedulerMaxAttempts}
nova::scheduler::filter::scheduler_host_subset_size: {get_param: NovaSchedulerHostSubsetSize}
nova::scheduler::filter::shuffle_best_same_weighed_hosts: {get_param: NovaSchedulerShuffleBestSameWeighedHosts}
nova::scheduler::discover_hosts_in_cells_interval: {get_param: NovaSchedulerDiscoverHostsInCellsInterval} nova::scheduler::discover_hosts_in_cells_interval: {get_param: NovaSchedulerDiscoverHostsInCellsInterval}
nova::scheduler::query_placement_for_image_type_support: {get_param: NovaSchedulerQueryImageType} nova::scheduler::query_placement_for_image_type_support: {get_param: NovaSchedulerQueryImageType}
nova::scheduler::limit_tenants_to_placement_aggregate: {get_param: NovaSchedulerLimitTenantsToPlacementAggregate} nova::scheduler::limit_tenants_to_placement_aggregate: {get_param: NovaSchedulerLimitTenantsToPlacementAggregate}

View File

@ -0,0 +1,8 @@
---
features:
- |
Add the following parameters to tune the behavior of nova-scheduler to
achieve better distribution of instances.
- ``NovaSchedulerHostSubsetSize``
- ``NovaSchedulerShuffleBestSameWeighedHosts``