4 ms·
Interesting. This is not true for Memory, correct? The OOMKiller might get you. You also cannot achieve a QoS class of Guaranteed without both CPU and Memory l
by yipbub 3y ago
Interesting. This is not true for Memory, correct? The OOMKiller might get you.
You also cannot achieve a QoS class of Guaranteed without both CPU and Memory limits, so the pod might be evicted at some point.
- dilyevsky 3y agoCorrect regarding memory - not true for memory because it's non-fungible unlike CPU shares > You also cannot achieve a QoS class of Guaranteed without both CPU and Memory limits, so the pod might be evicted at some point. Evicted due to node pressure - yes (but if all other pods also don't have limits it doesn't matter). For preemption QoS is not factored in the decision [0] [0] - https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#interactions-of-pod-priority-and-qos https://kubernetes.io/docs/concepts/scheduling-eviction/pod-...
- iTokio 3y ago> Memory is different because it is non-compressible - once you give memory you can't take it away without killing the process
- afr0ck 3y agoSwap (Disk, RDMA, Compression)? Page migration (NUMA, CXL)?
- karolist 3y agoAll of this is below K8s scheduler level, the K8s scheduler doesn't know how the underlying kernel handles memory, all it cares about whether it thinks there's enough free memory to give to a pod or not because it just keeps track of other pod requests and limits, the fact that giving this memory, which it thinks is unavailable, would actually not result in any swapping for the pod is unknown.