<p>This works exactly in the way you're describing.  You have two pods which each have a limit of 4 CPUs scheduled on the same node; so the total of the limits on that node is 8 CPUs; which is 200% of the node's physical capacity; and if the two nodes combined go over the node's physical abilities then the host kernel will time-slice available resources.  For CPU there's nothing especially wrong with this.</p>

<p>The exact same presentation in the <code>kubectl describe node</code> output applies to memory, and there is the potential for trouble with that: if your pod limits add up to 200% of a node's physical memory, and together they exceed the physical capacity, then the host kernel will respond by killing one of them off.  Lower requests will allow more things to be potentially scheduled on the same node, but keeping requests closer to limits gives you a better chance of them staying running long-term.</p>

CC BY-SA 4.0
2020-02-13T02:20:23.297Z
2020-02-13T02:20:23.297Z
David Maze
<p>So, let's say there's a cluster node, with 4 CPU cores. </p>

<p>It's running two pods.
Each pod sets the CPU requirement at: <code>500m</code>, but the CPU limit at <code>4000m</code>.</p>

<p>running <code>kubectl describe node &lt;noode&gt;</code> tells me CPU limit is at <code>8 (200%)</code></p>

<p>I understand it claims <code>200%</code> because I have two pods, each setting its CPU limit at 4 CPU cores. </p>

<p>Is that just semantics or is there a potential issue? I mean, if both pods need to burst to 3 CPU cores (below each one's limit) it would not be physically possible, and they'd have to settle with less.</p>

<p>Is there a potential issue with the sum of all pod limits, exceeding their host node CPU capability? or is just an indication of what's been asked as CPU limit, knowing it may not be able to serve that -- after all, pods may not be aware of each other being in the same node. </p>

<kubernetes>
Kubernetes: CPU Limits at (200%)?
JasonGenX
# Kubernetes: CPU Limits at (200%)?

(Asked by: username_0 on 2020-02-12)

So, let's say there's a cluster node, with 4 CPU cores.

It's running two pods.
Each pod sets the CPU requirement at: `500m`, but the CPU limit at `4000m`.

running `kubectl describe node`  tells me CPU limit is at `8 (200%)`

I understand it claims `200%` because I have two pods, each setting its CPU limit at 4 CPU cores.

Is that just semantics or is there a potential issue? I mean, if both pods need to burst to 3 CPU cores (below each one's limit) it would not be physically possible, and they'd have to settle with less.

Is there a potential issue with the sum of all pod limits, exceeding their host node CPU capability? or is just an indication of what's been asked as CPU limit, knowing it may not be able to serve that -- after all, pods may not be aware of each other being in the same node.

**Tags:** kubernetes


---

## 1 answers

### Answer by username_1 on 2020-02-13. Score: 3 | Accepted answer

This works exactly in the way you're describing. You have two pods which each have a limit of 4 CPUs scheduled on the same node; so the total of the limits on that node is 8 CPUs; which is 200% of the node's physical capacity; and if the two nodes combined go over the node's physical abilities then the host kernel will time-slice available resources. For CPU there's nothing especially wrong with this.

The exact same presentation in the `kubectl describe node` output applies to memory, and there is the potential for trouble with that: if your pod limits add up to 200% of a node's physical memory, and together they exceed the physical capacity, then the host kernel will respond by killing one of them off. Lower requests will allow more things to be potentially scheduled on the same node, but keeping requests closer to limits gives you a better chance of them staying running long-term.


---

