# PR #7227 完整报告

- 仓库：`PaddlePaddle/FastDeploy`
- 标题：[CI] increase shm-size to 128G in _unit_test_coverage.yml
- 合并时间：2026-04-08 11:35
- 原文链接：http://prhub.com.cn/PaddlePaddle/FastDeploy/pull/7227

---

# 执行摘要

本 PR 将单元测试覆盖率 CI 工作流的 Docker 共享内存从 64GB 增加到 128GB，并添加了最大文件描述符和用户进程数的 ulimit 限制，旨在解决并行测试中因资源不足导致的间歇性失败问题。这是一个低风险的 CI 基础设施优化，仅影响测试环境配置，预计能提升测试稳定性和开发效率。

# 功能与动机

根据 PR 描述，动机源于并行测试执行时多个进程并发使用共享内存（`/dev/shm`）的场景：
- DataLoader 依赖共享内存进行多进程数据传输
- CUDA 可能使用共享内存进行 IPC 机制
- 当前 64GB 限制可能导致间歇性失败（如进程被 `Killed`）

因此，通过增加共享内存大小和调整 ulimit 限制，以增强测试环境在并行工作负载下的稳定性。

# 实现拆解

仅修改一个文件：`.github/workflows/_unit_test_coverage.yml`，具体变更如下：

| 变更项 | 原值 | 新值 | 作用 |
|--------|------|------|------|
| `--shm-size` | `64G` | `128G` | 增加 Docker 容器的共享内存大小 |
| `--ulimit nofile` | 无 | `65536:65536` | 设置最大文件描述符数 |
| `--ulimit nproc` | 无 | `8192:8192` | 设置最大用户进程数 |

这些变更位于 CI 作业的 Docker 容器启动配置部分，直接影响测试容器的资源上限。

# 评论区精华

review 讨论较为简单，主要亮点来自 fastdeploy-bot 的 AI 代码审查：
> **🟡 建议 **PR 描述中的 Modifications 部分未涵盖此变更。 PR 描述仅提到了 `shm-size` 的增加，但未提及新增的这两个 `--ulimit` 配置。建议在 PR 描述中补充说明这些 ulimit 限制的作用，便于后续维护者理解变更背景。

其他 reviewer（如 DDDivano 回复“good”）未提出实质性争议，表明变更被认可。

# 风险与影响

**风险分析**：
- 低回归风险：变更仅限 CI 配置，不触及生产代码。
- 资源消耗：增加共享内存可能略微提升测试容器内存使用，但 128G 在典型 CI 环境中可接受。
- 文档不完整：PR 描述未涵盖所有变更，可能影响后续维护理解（如 fastdeploy-bot 指出）。

**影响评估**：
- 用户影响：无，纯内部 CI 优化。
- 系统影响：提升单元测试覆盖率工作流的稳定性，减少因资源不足导致的失败，可能提高测试通过率和开发效率。
- 团队影响：工程师需注意 CI 环境变化，但无额外学习成本。

# 关联脉络

从近期历史 PR 看，本 PR 与以下 CI 优化类 PR 相关：
- PR #7198：优化 CI Code Prepare 阶段的清理逻辑，提升稳定性。
- PR #7186：调整 RL 构建工作流的 runner 和基础镜像。

这些 PR 共同反映了团队对 CI 基础设施稳定性的持续投入，形成了一系列渐进式优化。本 PR 作为其中一环，专注于资源限制调整，以应对并行测试的挑战。