Pressure stall metrics

압력 정체 지표

Measure time spent waiting for resources even when utilization looks similar.

···
html
<div class="stage" data-phase="0"><div class="title">SAME UTILIZATION · DIFFERENT WAIT</div><div class="comparison"><div class="panel node">NODE A<div class="bar"><i></i></div><span>CPU 65% · low wait</span></div><div class="panel node b">NODE B<div class="bar"><i></i></div><span>CPU 65% · low wait</span></div></div><div class="sub">pressure reveals contention</div></div>
css
.stage{width:min(94vw,760px);height:min(88vh,330px);padding:clamp(9px,2.6vmin,20px);border:1px solid var(--line);border-radius:14px;background:var(--surface);font:600 clamp(12px,2.5vmin,16px)/1.3 "Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo",sans-serif;display:flex;flex-direction:column;gap:clamp(6px,1.7vmin,12px);overflow:hidden;position:relative}.stage *{min-width:0}.stage .title{color:var(--accent);font-weight:800}.stage .sub{color:var(--muted)}.stage .row{display:flex;align-items:center;gap:clamp(5px,1.6vmin,12px)}.stage .panel{border:1px solid var(--line);border-radius:8px;background:var(--bg);padding:clamp(6px,1.6vmin,12px)}.stage .mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:clamp(12px,2.5vmin,15px)}.stage .grow{flex:1}.stage .on{color:var(--accent)}.comparison{flex:1;display:flex;gap:clamp(6px,2vmin,16px)}.node{width:50%;display:flex;flex-direction:column;justify-content:center;gap:clamp(7px,2vmin,14px)}.node span{color:var(--muted)}.bar{height:clamp(20px,5vmin,32px);background:var(--line);border-radius:5px;overflow:hidden}.bar i{display:block;width:12%;height:100%;background:var(--accent);transition:width .35s}.stage[data-phase="1"] .b .bar i,.stage[data-phase="2"] .b .bar i{width:72%;background:var(--accent-3)}.stage[data-phase="1"] .b span,.stage[data-phase="2"] .b span{font-size:0}.stage[data-phase="1"] .b span:after,.stage[data-phase="2"] .b span:after{content:'CPU 65% · high wait';font-size:clamp(12px,2.5vmin,16px);color:var(--accent-3)}
js
const stage=document.querySelector('.stage');let phase=0;function advance(){phase=(phase+1)%3;stage.dataset.phase=String(phase)}const timer=setInterval(advance,1200);stage.addEventListener('pointerdown',()=>{clearInterval(timer);advance()})

Pressure Stall Information measures time when work cannot progress because CPU, memory, or I/O is unavailable. Two nodes can have similar utilization while one suffers much more waiting.

The demo holds CPU utilization steady while pressure rises on one node. Kubelet PSI metric export is stable in Kubernetes 1.36; interpret alerts alongside user-visible latency.

When to use

Use it when a node is slow despite apparently normal utilization.

Open as page ↗