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

如何借助nvidia-smi通过PID查询各进程的GPU内存使用量?

基于PID查询GPU内存占用的实用方法

nvidia-smi的默认输出格式确实繁琐,单纯用grep很难精准提取目标PID的显存数据,这里提供几个直接可行的命令组合方案:

1. 批量查询指定PID列表

假设你要查询的PID是1234 5678 9012,用这条命令一次性获取所有目标PID的显存占用:

nvidia-smi --query-compute-apps=pid,used_memory --format=csv,noheader,nounits | awk -v pids="1234 5678 9012" 'BEGIN{split(pids, pid_list, " "); for(p in pid_list) target_pids[pid_list[p]]=1} $1 in target_pids {print "PID " $1 ": " $2 " MB 显存"}'

命令说明:

  • nvidia-smi --query-compute-apps=pid,used_memory --format=csv,noheader,nounits:让nvidia-smi输出仅包含PID和已用显存的精简CSV格式(无表头、无单位)
  • awk部分:先把传入的PID列表转为哈希映射,再过滤出属于目标列表的PID,输出对应的显存数据

2. 单个PID快速查询

如果只查单个PID,用这条更简洁的命令:

# 替换成你要查询的PID
TARGET_PID=1234
nvidia-smi --query-compute-apps=pid,used_memory --format=csv,noheader,nounits | grep "^$TARGET_PID," | awk '{print "PID " $1 ": " $2 " MB 显存"}'

3. 从文件读取PID批量查询

如果你的PID列表保存在文件(比如pids.txt,每行一个PID),可以用:

nvidia-smi --query-compute-apps=pid,used_memory --format=csv,noheader,nounits | awk 'NR==FNR{target_pids[$0]=1; next} $1 in target_pids {print "PID " $1 ": " $2 " MB 显存"}' pids.txt -

注意点:

  • 确保当前用户有权限执行nvidia-smi,部分服务器环境可能需要加sudo
  • 如果进程未实际占用GPU显存(比如处于挂起状态),不会出现在nvidia-smi的进程列表中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 22:45:30