---
title: Atlas 900 A2 PoD 环境中 Ray 框架子进程未退出导致显存占用异常及 OOM 问题分析与解决-官方技术文章-昇腾社区
description: 在基于 Atlas 900 A2 PoD 的中心训练硬件平台上&#xff0c;使用 CANN 8.0.RC2.10 与 HDK 24.1.0.3 版本进行推理服务部署时&#xff0c;部服务拉起失败&#xff0c;且在多次重试后仍无法正常启动。经排查&#xff0c;问题表现为显存资源持续被占用&#xff0c;新进程创建时频繁触发 OOM&#xff08;Out of Memory&#xff09;错误
keywords: Atlas,PoD,环境中,Ray,框架子进程未,退出导致显存,占用异常及,OOM
url: https://www.hiascend.com/developer/techArticles/20260708-9
section: (其他)
---

# Atlas 900 A2 PoD 环境中 Ray 框架子进程未退出导致显存占用异常及 OOM 问题分析与解决-官方技术文章-昇腾社区

URL: https://www.hiascend.com/developer/techArticles/20260708-9
描述: 在基于 Atlas 900 A2 PoD 的中心训练硬件平台上&#xff0c;使用 CANN 8.0.RC2.10 与 HDK 24.1.0.3 版本进行推理服务部署时&#xff0c;部服务拉起失败&#xff0c;且在多次重试后仍无法正常启动。经排查&#xff0c;问题表现为显存资源持续被占用&#xff0c;新进程创建时频繁触发 OOM&#xff08;Out of Memory&#xff09;错误
关键词: Atlas,PoD,环境中,Ray,框架子进程未,退出导致显存,占用异常及,OOM

官方技术文章 [了解详情](https://www.hiascend.com/zh/developer/techArticles)

Atlas 900 A2 PoD 环境中 Ray 框架子进程未退出导致显存占用异常及 OOM 问题分析与解决

Atlas 900 A2 PoD 环境中 Ray 框架子进程未退出导致显存占用异常及 OOM 问题分析与解决

OOM

发表于: 2026/07/08

11

1

## 背景概述

在基于 Atlas 900 A2 PoD 的中心训练硬件平台上，使用 CANN 8.0.RC2.10 与 HDK 24.1.0.3 版本进行推理服务部署时，部服务拉起失败，且在多次重试后仍无法正常启动。经排查，问题表现为显存资源持续被占用，新进程创建时频繁触发 OOM（Out of Memory）错误，严重影响服务可用性。本文将围绕该问题的定位过程、根因分析及解决方案进行详细阐述。

## 问题现象

●

推理服务在启动过程中持续失败，日志中反复出现内存申请失败的报错。

●

Plog 日志中频繁上报`drvRetCode=6`，经与 RTS 团队确认，该错误码对应 OOM 问题。

●

多个进程持续上报 OOM，且服务失败后存在自动重启机制，导致问题反复发生。

●

登录目标节点检查显存使用情况，发现即使服务已终止，仍有大量显存被占用，存在进程残留嫌疑。

## 根因分析

1.

显存资源异常占用通过`ps -ef | grep ray`命令检查系统进程，发现存在大量由 Ray 框架 fork 出来的子进程，且这些进程未随父进程终止而退出，持续持有 GPU 显存资源。

2.

子进程资源未释放Ray 框架在运行过程中采用多进程模型，当父进程异常退出或服务重启时，若未正确配置清理机制，子进程将无法自动销毁，导致其继承的 GPU 句柄和显存资源无法释放。

3.

OOM 错误连锁触发由于子进程持续占用显存，新创建的推理进程在申请 GPU 资源时因内存不足而失败，进而触发 OOM 错误，形成“服务无法启动 → 重试 → 显存持续占用 → 再次 OOM”的恶性循环。

## 解决方案

为避免 Ray 框架子进程残留导致的显存泄漏问题，建议在服务启动前配置以下环境变量，以增强子进程的生命周期管理与资源回收能力：

RAY_ROTATION_MAX_BYTES=1024
RAY_ROTATION_BACKUP_COUNT=5
RAY_FORK_MONITOR_AGENT=true

### 配置说明：

●

`RAY_ROTATION_MAX_BYTES=1024`：限制日志文件大小为 1KB，防止日志膨胀导致资源耗尽。

●

`RAY_ROTATION_BACKUP_COUNT=5`：保留最多 5 个日志备份，控制日志占用空间。

●

`RAY_FORK_MONITOR_AGENT=true`：启用 Ray 的 fork 检测代理，确保子进程在父进程退出时能被正确清理，避免资源泄漏。

通过上述配置，可有效保障 Ray 框架在服务异常终止或重启时，子进程能够被及时回收，释放 GPU 显存资源，从而避免 OOM 问题再次发生。

## 总结

在 Atlas 900 A2 PoD 环境中，使用 Ray 框架部署推理服务时，需特别关注多进程模型下的资源管理问题。若未配置合理的子进程清理机制，极易因进程残留导致显存持续占用，进而引发 OOM 错误。通过合理设置 Ray 的环境变量，可显著提升服务稳定性与资源利用率，是保障推理服务可靠运行的关键实践。

建议：在生产环境中部署 Ray 相关服务时，务必启用`RAY_FORK_MONITOR_AGENT`并结合日志轮转策略，构建健壮的资源管理机制。

边框设置

无框线

边距

宽度

1磅

颜色

自由布局设置

整体布局

子模块

评论

修订记录

对正文进行的文本增删、样式修改都将标记为修订

自定义多级列表

列表设置

- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9

- 1.
- a.
- i.
- 1.
- a.
- i.
- 1.
- a.
- i.

前缀

无

序号

1 2 3 ...

后缀

.

编号格式

列表显示

继承层级

不继承

位置

对齐方式

默认

单元格边距

边距

默认

左边距

cm

右边距

cm

上边距

cm

下边距

cm

点赞 1

本页内容

背景概述 [了解详情](https://www.hiascend.com/#3ecXm81XinO5am9hZrmSFZ)

问题现象 [了解详情](https://www.hiascend.com/#7QcT86VXTPFMd1dKjCYkkt)

根因分析 [了解详情](https://www.hiascend.com/#61j1aYM0ALvKjFAedn28zR)

解决方案 [了解详情](https://www.hiascend.com/#4AHk9VvAcbRgAcJrzXsVzq)

总结 [了解详情](https://www.hiascend.com/#1hIsd90Z1AMZL3hMJUD7OO)
