An Azure service that provides cloud-scale job scheduling and compute management.
hi JeffreyCMI & thx for sharing urs issue here at Q&A portal,
What u're seeing is generally expected for Spot nodes. When a Spot VM is preempted, the Batch node transitions to the Preempted state and the tasks running on it are terminated. The node doesn't immediately become usable again, and it won't automatically recover to Running. Whether it's eventually removed or replaced depends on the pool configuration and autoscale evaluation. (learn.microsoft.com) u aren't billed for compute while the underlying Spot VM has been evicted, but the presence of the Batch node object in the pool is separate from compute billing. The node record can remain even though there is no active VM behind it.
The autoscale behavior is the part that stands out. A permanently Preempted node continuing to satisfy $TargetLowPriorityNodes so that no replacement node is allocated isn't what I'd expect. Normally the pool should converge back to the target number of usable Spot nodes. As a workaround, many customers periodically remove nodes that remain in the Preempted state so the autoscaler can provision replacements. If the node stays preempted indefinitely and continues to count toward the target, I'd treat that as a potential Batch service issue rather than expected behavior.
I'd recommend opening a Batch support case with the pool ID, account name, region, autoscale formula, and timestamps where the node remained Preempted while $TargetLowPriorityNodes was still 1 and no replacement was allocated. The Batch team can verify from backend telemetry whether the autoscaler is incorrectly counting preempted nodes toward the target or whether the pool has become stuck.
rgds,
Alex
&
If my answer was helpful pls mark it and additional thx if u follow me at Q&A portal
and at my blog https://ctrlaltdel.blog/