OOM
大模型推理中GPU显存耗尽导致进程崩溃的现象,因GPU显存物理隔离无法弹性扩展,高并发或长上下文场景下KV Cache耗尽是主要触发原因
时间轴 (近 90 天)
OOM(内存不足)是部署 ML 服务时最常见的运行时故障之一;在容器化或 PaaS 免费层环境中,进程可用内存通常被硬性限制(例如 512MB 或 1GB)。
在2 GB内存的机器上,真正导致OOM的往往不是平均内存占用,而是某一步渲染或解码时突然冲高的峰值RSS。
在 1 vCPU / 2 GB 内存的服务器上,知道峰值内存是否逼近 OOM 线比知道平均占用更有用;ru_maxrss 记录历史最高水位,能抓住短时内存突发。
在 2GB 内存的机器上,为图像任务运行多个并行进程会因资源争抢而降低效率;每处理完一个素材后调用 gc.collect() 有助于在素材间释放内存。
OOM(Out of Memory)是本地推理最常遇到的故障:当模型权重、KV缓存和并发请求共同占用的显存超过GPU容量时,CUDA运行时会直接终止进程。
如果网关实现依赖无界内存队列缓冲来自上游的chunk,在5000到10000个活跃流的高并发场景下,内存占用将随连接持续时间线性增长,直接导致OOM崩溃
模型参数量严重超标会导致 OOM(内存溢出)报错无法启动,轻微超标会借用普通内存使速度大幅下降
对内存吃紧的设备而言,盲目使用更大的量化模型可能换来频繁的OOM
OOM即内存溢出,指程序申请的内存超出系统可用上限,操作系统强制终止进程
一张80GB的A100装载一个70B参数模型后,留给KV Cache的空间极为有限,并发增多或上下文拉长时KV Cache会迅速耗尽显存触发OOM导致推理进程崩溃
还有 5 条时间轴事件
全部知识事实 (15)
OOM(内存不足)是部署 ML 服务时最常见的运行时故障之一;在容器化或 PaaS 免费层环境中,进程可用内存通常被硬性限制(例如 512MB 或 1GB)。
50%待验证在2 GB内存的机器上,真正导致OOM的往往不是平均内存占用,而是某一步渲染或解码时突然冲高的峰值RSS。
50%待验证在 1 vCPU / 2 GB 内存的服务器上,知道峰值内存是否逼近 OOM 线比知道平均占用更有用;ru_maxrss 记录历史最高水位,能抓住短时内存突发。
50%待验证在 2GB 内存的机器上,为图像任务运行多个并行进程会因资源争抢而降低效率;每处理完一个素材后调用 gc.collect() 有助于在素材间释放内存。
50%待验证OOM(Out of Memory)是本地推理最常遇到的故障:当模型权重、KV缓存和并发请求共同占用的显存超过GPU容量时,CUDA运行时会直接终止进程。
50%待验证模型参数量严重超标会导致 OOM(内存溢出)报错无法启动,轻微超标会借用普通内存使速度大幅下降
50%待验证对内存吃紧的设备而言,盲目使用更大的量化模型可能换来频繁的OOM
50%待验证OOM即内存溢出,指程序申请的内存超出系统可用上限,操作系统强制终止进程
50%待验证OOM(显存溢出)是大模型推理服务特有的稳定性威胁,因为GPU显存是物理隔离的固定资源,无法像CPU内存那样借助虚拟内存或Swap临时扩展
50%待验证一张80GB的A100装载一个70B参数模型后,留给KV Cache的空间极为有限,并发增多或上下文拉长时KV Cache会迅速耗尽显存触发OOM导致推理进程崩溃
50%待验证显存碎片化会导致即便剩余总量充足,也可能因找不到足够大的连续空间而使大张量分配失败,表现为OOM错误
50%待验证本地运行大语言模型的核心瓶颈之一是内存容量,模型参数需要加载到内存或显存中
50%待验证内存压榨到极限时Linux的OOM机制会因RAM占用过高杀掉服务进程,可通过将oom_score_adj设为-1000避免被系统误杀
50%待验证长上下文推理会在GPU显存中积累大量注意力矩阵,当上下文窗口接近模型最大长度限制时显存消耗会急剧攀升,导致内存溢出(OOM)
50%待验证如果网关实现依赖无界内存队列缓冲来自上游的chunk,在5000到10000个活跃流的高并发场景下,内存占用将随连接持续时间线性增长,直接导致OOM崩溃
50%