当前位置: 首页 > news >正文

CANN-昇腾NPU-推理服务监控-怎么实时监控NPU状态

推理服务上线后NPU 利用率、显存、温度、功耗都需要实时监控。CANN 提供了npu-smi和 Python API 两套监控方案。这篇讲清楚怎么用。npu-smi命令行监控npu-smi是 CANN 自带的诊断工具# 查看所有 NPU 状态npu-smi info# 查看某个 NPU 的详细状态npu-smi info-i0# 实时监控每 1 秒刷新watch-n1npu-smi info# 查看 NPU 温度npu-smi info-ttemp# 查看 NPU 功耗npu-smi info-tpower输出示例NPU ID: 0 Chip ID: 0 Product Name: Atlas 800I A2 AI Core Utilization: 72% ← 算力利用率 Memory Utilization: 85% ← 显存利用率 Temperature: 65°C ← 温度 Power: 300W / 400W ← 当前功耗 / TDP Memory Used: 48GB / 64GB ← 显存占用Python API 监控推理服务内部用 Python API 采集监控数据importtorch_npuimporttimeclassNPUMonitor:def__init__(self,device_id0):self.device_iddevice_iddefcollect(self):return{utilization:torch_npu.npu.utilization(self.device_id),memory_allocated:torch_npu.memory_allocated(self.device_id),memory_reserved:torch_npu.memory_reserved(self.device_id),temperature:torch_npu.npu.temperature(self.device_id),power:torch_npu.npu.power(self.device_id),}# 后台线程定期采集importthreading monitorNPUMonitor(device_id0)defmonitor_loop():whileTrue:statsmonitor.collect()print(f[{time.strftime(%H:%M:%S)}]{stats})time.sleep(5)threading.Thread(targetmonitor_loop,daemonTrue).start()Prometheus 集成线上服务用 Prometheus Grafana 做监控fromprometheus_clientimportGauge,start_http_server# 定义指标npu_utilGauge(npu_utilization_percent,NPU Utilization,[device])npu_memGauge(npu_memory_used_bytes,NPU Memory Used,[device])npu_tempGauge(npu_temperature_celsius,NPU Temperature,[device])npu_powerGauge(npu_power_watts,NPU Power,[device])# 定期更新指标defupdate_metrics():monitorNPUMonitor(device_id0)whileTrue:statsmonitor.collect()npu_util.labels(devicenpu:0).set(stats[utilization])npu_mem.labels(devicenpu:0).set(stats[memory_allocated])npu_temp.labels(devicenpu:0).set(stats[temperature])npu_power.labels(devicenpu:0).set(stats[power])time.sleep(5)threading.Thread(targetupdate_metrics,daemonTrue).start()# 启动 Prometheus HTTP 端点start_http_server(8000)Grafana 面板配置panels:-title:NPU Utilizationexpr:npu_utilization_percent{devicenpu:0}type:graph-title:NPU Memoryexpr:npu_memory_used_bytes{devicenpu:0}/ 1024 / 1024 / 1024type:gauge-title:NPU Temperatureexpr:npu_temperature_celsius{devicenpu:0}type:gauge-title:NPU Powerexpr:npu_power_watts{devicenpu:0}type:gauge告警规则关键告警规则# Prometheus 告警规则groups:-name:npu_alertsrules:-alert:NPUUtilizationLowexpr:npu_utilization_percent{devicenpu:0} 20for:5mannotations:summary:NPU 利用率过低20%可能影响吞吐-alert:NPUMemoryHighexpr:npu_memory_used_bytes / npu_memory_total_bytes0.95for:1mannotations:summary:NPU 显存使用率 95%可能 OOM-alert:NPUTemperatureHighexpr:npu_temperature_celsius80for:2mannotations:summary:NPU 温度 80°C请检查散热-alert:NPUPowerHighexpr:npu_power_watts / npu_power_max_watts0.95for:1mannotations:summary:NPU 功耗接近 TDP可能降频日志集成把 NPU 监控数据写入推理日志importlogging loggerlogging.getLogger(inference)classLoggingMonitor:def__init__(self,interval60):self.intervalinterval self.monitorNPUMonitor(device_id0)defstart(self):defloop():whileTrue:statsself.monitor.collect()logger.info(fNPU Stats: util{stats[utilization]:.1f}% fmem{stats[memory_allocated]/1024/1024/1024:.1f}GB ftemp{stats[temperature]}°C fpower{stats[power]:.0f}W)time.sleep(self.interval)threading.Thread(targetloop,daemonTrue).start()故障排查问题 1NPU 利用率低30%可能原因Batch size 太小decode 阶段 M1算子没融合GE 编译没生效数据预处理在 CPUNPU 等数据排查npu-smi info看 AI Core UtilizationProfiler 看 kernel 时间。问题 2显存泄漏# 定期打印显存print(fAllocated:{torch_npu.memory_allocated()/1024/1024/1024:.1f}GB)print(fReserved:{torch_npu.memory_reserved()/1024/1024/1024:.1f}GB)如果 Allocated 在增长但 Reserved 不变说明有 tensor 没释放可能保存在某个地方了。问题 3温度报警检查机箱风道是否通畅NPU 风扇转速npu-smi info -t fan机房空调是否正常推理服务的监控是上线前的必修课。npu-smi 做快速诊断Python API 做精细化采集Prometheus Grafana 做长期监控和告警。三个层次都要有。仓库在这里https://atomgit.com/cann/torch_npu
http://www.gsyq.cn/news/1361298.html

相关文章:

  • Kali+MCP协议构建AI自动化渗透测试流水线
  • Wireshark实战解析DNS欺骗与ARP中间人攻击链
  • 工业级房价预测实战:从数据清洗到可解释模型部署
  • JMeter HTTP接口压测实战:定位性能瓶颈的工程方法论
  • AI时代技术生存指南:从狗咬狗竞争到可落地的四大杠杆
  • CrewAI 实战评测 角色分工能提升多少吞吐和稳定性
  • Unity写实渲染六大不可妥协环节:光照、材质、摄像机与管线规范
  • ThingsVis v1.1.15 版本更新:补齐嵌入与运维体验短板,多场景集成更可靠
  • Unity XLua调试失败原因与sourceMapPathOverrides终极配置
  • 五金加工哪个企业技术好 - 资讯纵览
  • 【PlayAI教育应用实战白皮书】:2024年全球87所名校验证的5大落地场景与ROI提升300%关键路径
  • JMeter动态JSON生成:REST API压测的数据契约实践
  • TensorFlow 2目标检测模型转TensorRT全链路实战
  • 机器学习真实难点:知识断裂、工具混沌与数据偏差
  • 宏裕塑胶高性能RTP导电塑料,打造卓越导电材料新标杆
  • 解析美国RTP导热工程塑料在电子散热领域的性能表现与行业应用
  • 导电塑料厂家直销:美国RTP材料全系列专业供应指南
  • 95%的企业AI项目都死在落地前?揭秘三大进化方向,让AI真正赋能业务!
  • 3步搞定AI训练平台!算力/框架/平台全解析,告别落地难题,附大模型精调实战!
  • TD-Learning与ε-greedy实战入门:从迷宫导航到工业决策
  • DeepSeek垂直搜索性能崩塌预警信号:当QPS>127且P99延迟突增>413ms时,必须立即执行的5项熔断操作(含Prometheus监控告警Rule模板)
  • 大模型稀疏激活原理:参数规模与计算负载的非线性关系
  • IDA Pro二进制逆向实战:从加载失败到函数识别的完整工作流
  • BepInEx深度解析:Unity游戏插件框架原理与实战
  • UE5手写HLSL实现高斯模糊:精准控制σ与采样策略
  • PINN赋能QSAR:用物理约束提升分子性质预测泛化能力
  • Lindy自动化 pipeline 卡在CI/CD?——GitHub Actions + Airflow双引擎协同调试手册(含12个真实报错日志溯源)
  • CVE-2024-1086:nftables规则验证中的内核提权漏洞深度解析
  • 从Notebook到生产:模型服务化七步落地实战
  • Mythos大模型:长程因果建模与多模态意图对齐的技术解析