You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DeepStream单进程8流与多进程单流的GPU利用率瓶颈排查

DeepStream 7.1 PyServiceMaker单进程多流GPU利用率偏低问题排查

环境信息

  • 操作系统:Ubuntu 22.04 LTS
  • DeepStream SDK版本:7.1
  • 核心技术栈:FastAPI、PyServiceMaker(pyservicemaker)API
  • 部署方案:单进程8流流水线 / 8进程单流流水线(Nginx负载均衡)

问题描述

构建实时视频分析服务时出现GPU利用率瓶颈,两种部署方式表现差异显著:

  • 单进程运行1条8流流水线:GPU利用率仅维持在约52%,无法进一步提升,吞吐量较低
  • 8个进程各运行1条单流流水线(Nginx负载均衡):GPU可轻松跑满100%,吞吐量远高于单进程方案

按理论预期,单进程基于C++核心的流水线应具备更低开销、更高批处理效率,但实际表现完全相反,需定位根因。

待排查方向

  1. Python G锁影响:自定义Probe/Metadata Operator读取batch_meta时,是否因GIL锁导致流水线阻塞,进而造成GPU喂料不足?
  2. nvmultiurisrcbin配置瓶颈:使用nvmultiurisrcbin或其REST API动态添加流时,是否存在同步机制或队列阻塞问题?
  3. PyServiceMaker线程限制:PyServiceMaker是否存在特定的线程数量限制,导致无法充分利用GPU资源?

附相关代码与配置

自定义Probe/Metadata Operator核心代码

def custom_metadata_probe(pad, info, u_data):
    batch_meta = info.get_batch_meta()
    # 元数据处理逻辑
    for frame_meta in batch_meta.frame_meta_list:
        # 业务处理代码
        pass
    return Gst.PadProbeReturn.OK

nvmultiurisrcbin REST API配置示例

{
  "uri_list": [
    "rtsp://stream1.example.com",
    "rtsp://stream2.example.com",
    "rtsp://stream3.example.com",
    "rtsp://stream4.example.com",
    "rtsp://stream5.example.com",
    "rtsp://stream6.example.com",
    "rtsp://stream7.example.com",
    "rtsp://stream8.example.com"
  ],
  "batch_size": 8,
  "sync": false
}

PyServiceMaker服务启动代码

from pyservicemaker import ServiceMaker

service = ServiceMaker()
service.set_pipeline_config("pipeline_config.txt")
service.start()

内容的提问来源于stack exchange,提问作者Pychong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.05 03:09:50