标签频道
cgroup
该标签下的文章、提问与讨论帖。
«结论先行:tmpfs 的页在 cgroup v2 里会被计到宿主容器的 "memory.max" 里——你在应用里 "runtime.MemStats" 看 RSS 纹丝不动,内核却已经在算你的 tmpfs 写入了。这是「OOMKille
«结论先行:JDK 在容器里会「看见」宿主机的核数并据此派生 GC 并行线程数,但 Linux cgroup 只限制 CPU 用量、不限制 线程数——两者组合起来,会造出一个反直觉的故障模式:你给容器配的 CPU limit 越小,JDK
«结论先行:systemd 的 "CPUQuota" 不是「CPU 占用上限」,而是**「每 100ms 墙钟内最多给你多少 ms 的 CPU 时间」**。把 "CPUQuota=100%" 加给一个瞬时峰值要 2 个核的 Go 服务,平均
背景 我负责一个 10 节点生产集群(16C64G,CentOS 7.9 + kernel 3.10,K8s 1.26.4,containerd 1.6.24,cgroup v1,CNI Calico 路由模式),跑 30+ 个 Java/
«结论先行:容器里 "pids.max" 撞墙,是一种没有「软阶段」、撞了直接拒绝 fork、且监控基本看不到的隐形杀手。CPU limit 会节流、memory limit 会 OOM,而 pids 撞墙时 CPU 和内存全绿、"dmes
背景 我做了 8 年运维,现在维护一个 12 节点(16C64G,Kubernetes 1.28.9 + containerd 1.7.13,cgroup v2)的在线业务集群,监控栈是 node-exporter + cAdvisor +
一、现象与背景:CPU 没打满,延迟却翻了 46 倍 先交代规模和数字。我们一个 12 节点(8C16G,Kubernetes 1.28.9 + containerd 1.7.13,cgroup v1)的网关集群,跑着一个 Go 网关(单实
结论先行 "-Xmx" 只约束了 Java 堆,可 cgroup 的 "memory.limit" 约束的是整个进程 RSS——堆、Metaspace、线程栈、DirectByteBuffer、JIT 代码缓存、glibc arena,全都
背景 我在一家做工业网关的厂里,核心是一个 1ms 控制周期的实时任务(运动控制 + 协议桥),原本裸机跑在 8C/16G 的工控机上,SCHED_FIFO 99,P99 抖动 <200us,跑了三年稳定。今年公司要求统一容器化、上 K8s
一、现象:P50 稳如老狗,P99 却间歇性飙到 5 倍 先给结论:这次 P99 长尾的根因不是 GC、不是下游、不是连接池,而是我们给容器设的 "cpu.limit=1.5" 触发了 Linux CFS 的周期性硬切(throttling
discussion
K8s 资源 limit 到底要不要设?三种流派吵了三年还没吵出结论
先抛结论(我目前的倾向,欢迎打脸):对绝大多数有状态、长生命周期的后端服务,limit 应该设;对批处理、Spark、ML 训练这类任务型负载,limit 不该设,甚至应该用 Burstable + request 兜底。但社区里这三种流派