Kubernetes 社区讨论了用 Node Swap 扩展工作负载容量。内存往往是集群最先撞到的硬限制——节点在 CPU 耗尽前先耗尽 RAM,而新一波 agentic AI 负载让这个问题更严重。
为什么是内存
CPU 是可压缩资源:超配之后只是变慢,不会产生错误。内存是不可压缩资源:不够就 OOM,进程直接被杀。这决定了内存的规划必须按最坏情况做,而 agent 负载的最坏情况很难估。
agent 负载的特殊性
一个 agent 会话可能同时持有:长上下文、工具调用中间结果、多个子任务的并行状态。内存占用不像传统请求那样用完即弃,而是随会话时长累积。这让按平均用量规划内存的做法彻底失效。
Swap 的取舍
开启 Swap 让内核可以把冷内存换出,避免瞬时峰值直接触发 OOM。代价是换入换出带来的延迟抖动——对时延敏感的服务是不可接受的。
所以关键在于分层
不是开不开,而是哪些负载能碰 Swap。可以接受延迟的工作负载(批处理、离线推理、后台任务)从中受益;在线服务路径应该完全避开。这需要与 QoS 等级、NUMA 拓扑、驱逐策略一起设计。
配置要点与陷阱
开启前确认:swap 空间放在什么介质上(NVMe 还是机械盘差异巨大)、是否启用了 zswap 压缩、kubelet 的 failSwapOn 设置、以及节点在高压力下的驱逐行为。
一个务实判断
Swap 不是扩容方案,是缓冲方案。它买的是响应时间——让你在内存峰值到来时有窗口去调度、降级或扩容,而不是立刻 OOM。把它当成安全气囊,不要当成油箱。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。