Explanation
Why the waste happens and who it affects.
Oracle positions it for fault-tolerant work that can withstand interruptions, such as tests that can be stopped and resumed later, and Kubernetes Engine (OKE) can run whole node pools on preemptible capacity. Batch jobs, CI runners, test environments and stateless container workloads launched with the default on-demand capacity type pay full price for availability they do not need.
The capacity type is chosen at launch and cannot be changed later, so instances and node pools created from older templates stay on-demand. Preemptible capacity has real limits, which is why it suits only part of an estate: no instance pools or instance configurations, no start, stop or reboot, no shape changes, and no bare metal or burstable instances.
Billing model
The pricing dimensions that drive this cost.
Preemptible instances use the same shapes and per-second billing as regular instances, with a different price.
- On-demand capacity
- The regular OCPU-hour and memory GB-hour rates for the shape
- Preemptible capacity
- Costs 50% less than on-demand capacity in all regions, applied in addition to other discounts
- Preemption
- Capacity can be reclaimed at any time with no minimum runtime; the instance is terminated, not stopped
- Preemption notice
- An instancepreemptionaction event is emitted two minutes before termination begins
How to detect
4 checks to find it in your estate.
- Inventory instances running short-lived or retryable work on on-demand capacity: CI/CD runners, test and QA environments, batch and data processing workers, and rendering or simulation jobs, using tags, compartments or display names
- Review OKE node pools whose capacity type is on-demand but whose pods are stateless or batch, such as Jobs, CronJobs and horizontally scaled deployments that tolerate node loss
- Check shape support before selecting candidates: preemptible capacity is supported on VM shapes such as VM.Standard.E4.Flex, E5.Flex, E6.Flex, A1.Flex, Standard3.Flex and Optimized3.Flex, but not on bare metal, burstable, capacity reservations, dedicated VM hosts or extended memory VMs
- Exclude instances that must be stopped and started, resized, or managed by instance pools or instance configurations, since preemptible instances support none of these
How to fix
4 ways to remove the waste.
- Launch interruptible workloads with Capacity type set to Preemptible capacity; because an existing instance cannot be converted, recreate it from its image or boot volume on preemptible capacity
- For containers, create OKE node pools with preemptible capacity and use the oci.oraclecloud.com/oke-is-preemptible label and taint with node selectors and tolerations so only fault-tolerant pods land there; OKE cordons and drains the node before termination and tries to create a replacement
- Create an Events rule on Instance - Preemption Action to checkpoint work, requeue jobs or notify operators in the two minutes before termination
- Keep an on-demand fallback or baseline for work with deadlines, since preemptible capacity is not guaranteed and is reclaimed during infrastructure maintenance instead of being migrated
Documentation
Vendor references for pricing and configuration.