diff --git a/python/ray/autoscaler/_private/resource_demand_scheduler.py b/python/ray/autoscaler/_private/resource_demand_scheduler.py index 1db20be69c62..a30a5053dc5a 100644 --- a/python/ray/autoscaler/_private/resource_demand_scheduler.py +++ b/python/ray/autoscaler/_private/resource_demand_scheduler.py @@ -43,6 +43,8 @@ ) from ray.core.generated.common_pb2 import PlacementStrategy +import random + logger = logging.getLogger(__name__) # The minimum number of nodes to launch concurrently. @@ -786,8 +788,8 @@ def get_nodes_for( ) break - utilization_scores = sorted(utilization_scores, reverse=True) - best_node_type = utilization_scores[0][1] + scores, node_types = zip(*utilization_scores) + best_node_type = random.choices(node_types, weights=scores, k=1)[0] nodes_to_add[best_node_type] += 1 if strict_spread: resources = resources[1:]