服务器gpu状态怎么查?nvidia-smi命令详解

服务器查看GPU核心命令与深度应用指南

核心结论: 在Linux服务器环境中,nvidia-smi (NVIDIA System Management Interface) 是查看和管理NVIDIA GPU状态的最权威、最全面的命令行工具,通过熟练使用其命令及参数,管理员可精准掌握GPU使用率、显存占用、温度、功耗、进程详情等核心指标,并执行基础管理操作,对于非NVIDIA GPU或特定场景,需选用rocm-smi、dcgmi或操作系统原生工具。

服务器gpu状态怎么查

cmd命令视频教程
加载中
cmd命令视频教程

NVIDIA GPU核心命令:nvidia-smi 详解

nvidia-smi 是NVIDIA官方提供的标准管理工具,预装于GPU驱动中。

  1. 基础状态概览:

    nvidia-smi
    • 输出解读:
      • GPU: GPU实例编号 (0, 1, 2…)。
      • Fan: 风扇转速百分比。
      • Temp: GPU核心温度 (摄氏度)。
      • Perf: 性能状态 (P0-P12, P0为最高性能)。
      • Pwr:Usage/Cap: 当前功耗 / 最大设计功耗 (瓦特)。
      • Memory-Usage: 显存使用量 / 总可用显存。
      • GPU-Util: GPU计算核心利用率百分比。
      • Compute M: GPU当前运行的计算模式。
      • Processes: 占用该GPU的进程列表 (PID, 进程名, 占用显存)。
  2. 关键高级参数与应用:

    • 持续动态监控 (类似top):

      nvidia-smi -l [间隔秒数]
      # 示例:每2秒刷新一次
      nvidia-smi -l 2
    • 查询GPU详细信息 (型号、UUID、电源等):

      nvidia-smi -q
      # 更精准查询特定GPU (如GPU 0)
      nvidia-smi -q -i 0
    • 监控特定指标 (自动化脚本常用):

      服务器gpu状态怎么查

      nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,memory.total,temperature.gpu,power.draw --format=csv

      输出为易解析的CSV格式,便于集成到监控系统 (如Zabbix, Prometheus)。

    • 查看GPU拓扑与NVLink信息:

      nvidia-smi topo -m
    • 设置GPU计算模式 (需管理员权限):

      nvidia-smi -i  -c 
      # 示例:将GPU 0 设置为独占进程模式 (Exclusive_Process)
      nvidia-smi -i 0 -c 3

替代与增强工具

  1. NVIDIA Data Center GPU Manager (DCGM):

    • 定位: 企业级GPU集群监控管理工具,功能远超nvidia-smi。
    • 核心命令: dcgmi
    • 优势:
      • 低开销、持续监控整个集群所有GPU。
      • 提供丰富API,深度集成到HPC/AI调度和监控平台。
      • 支持策略设置、健康检测、主动告警。
      • 提供详细性能计数器分析。
    • 基础查看命令示例:
      dcgmi discovery -l  # 列出系统内GPU
      dcgmi dmon -i 0      # 监控GPU 0 的关键指标
  2. AMD ROCm GPU 管理:

    • 核心命令: rocm-smi
    • 功能类比: 提供类似nvidia-smi的功能,用于AMD Instinct™ 等数据中心GPU。
    • 常用命令:
      rocm-smi           # 基础概览
      rocm-smi --showall # 显示详细信息
      rocm-smi -d 0 -t   # 监控GPU 0温度
  3. 操作系统原生工具:

    服务器gpu状态怎么查

    • lspci: 查看PCIe设备信息,确认GPU硬件是否被系统识别。
      lspci | grep -i vga  # 或 grep -i nvidia / grep -i amd
    • gpustat (Python工具): 提供更简洁、彩色的类nvidia-smi输出,常用在开发环境。pip install gpustat安装后运行gpustat。

容器环境中的GPU查看

容器内访问GPU同样依赖nvidia-smi,但需确保:

  1. 正确挂载驱动和工具: 使用--gpus参数 (Docker) 或配置DeviceSet (Kubernetes NVIDIA Device Plugin)。
  2. 容器内安装nvidia-utils: 基础Docker镜像通常不包含nvidia-smi,需在Dockerfile中安装:
    FROM your_base_image
    RUN apt-get update && apt-get install -y --no-install-recommends nvidia-utils-<你的驱动版本号>
  3. 在运行中的容器内执行:
    docker exec -it  nvidia-smi
    kubectl exec -it  -- nvidia-smi

专业运维实践建议

  1. 监控集成: 将nvidia-smi或dcgmi的输出集成到企业监控系统 (Prometheus+Grafana, Zabbix, Nagios等),实现可视化告警。
  2. 性能瓶颈分析: 结合GPU-Util和Memory-Usage判断瓶颈:
    • 高GPU-Util + 低Memory-Usage:计算密集型,优化代码或增加GPU资源。
    • 低GPU-Util + 高Memory-Usage:可能受限于显存容量或存在显存瓶颈。
    • 低GPU-Util + 低Memory-Usage:可能受限于CPU、IO或任务调度。
  3. 驱动与工具更新: 定期更新NVIDIA驱动和DCGM版本,获取最佳性能、兼容性和新功能。
  4. 权限管理: 生产环境限制普通用户直接运行nvidia-smi修改设置的能力,通过管理平台统一管控。

服务器GPU状态监控常见问答

Q1: 通过 nvidia-smi 发现GPU利用率 (GPU-Util) 很低,但显存占用 (Memory-Usage) 很高,这通常意味着什么?如何排查?

  • A1: 此现象常见于:
    1. 显存瓶颈: 模型或数据过大,GPU显存被大量占用用于存储参数和数据,但实际计算核心并未被充分利用。排查: 检查模型大小、批处理大小 (Batch Size),尝试减小批处理大小或使用梯度累积;使用nvidia-smi查看具体哪个进程占用显存,分析其行为;考虑使用更大显存的GPU或模型并行/显存优化技术。
    2. I/O或CPU瓶颈: 数据加载速度(磁盘I/O)或CPU预处理速度跟不上GPU的计算速度,导致GPU长时间等待数据而空闲。排查: 监控系统CPU使用率、磁盘I/O等待时间;优化数据加载管道(如使用更高效的数据格式、预加载、多进程加载);升级CPU或使用更快的存储(如NVMe SSD)。
    3. 任务调度问题: 任务本身计算密度不高或存在大量同步等待。排查: 分析应用代码性能瓶颈。

Q2: 在多GPU服务器上,如何确保任务或进程准确地运行在指定的GPU上?

  • A2: 主要有两种通用方法:
    1. 设置环境变量 CUDA_VISIBLE_DEVICES (适用于CUDA应用):
      • 在启动命令前设定该变量,值是需要使用的GPU索引号 (从0开始)。
      • 示例 (Bash): export CUDA_VISIBLE_DEVICES=0,2 # 仅让程序看到GPU 0 和 GPU 2, 此时程序内部会将它们视为编号0和1的新设备
      • 示例 (命令行内): CUDA_VISIBLE_DEVICES=1 python my_script.py # 指定脚本只在物理GPU 1上运行
    2. 使用 --gpu / -i 参数 (取决于工具/框架):
      • 许多深度学习框架 (如TensorFlow, PyTorch) 或GPU管理工具的命令行接口支持直接指定GPU索引。
      • 示例 (PyTorch 代码内): torch.cuda.set_device(1) # 设置默认使用GPU 1
      • 示例 (TensorFlow): 使用tf.config.set_visible_devices和tf.config.experimental.set_memory_growth。

掌握核心的nvidia-smi命令及其丰富参数,结合dcgmi等专业工具,是高效运维GPU服务器、保障AI/HPC业务稳定运行的基石,您在GPU监控管理中遇到了哪些具体挑战?欢迎分享交流!

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/35092.html

赞 (0)
AI应用部署如何创建,如何创建AI应用部署方案,AI部署全流程指南
上一篇 2026年2月15日 20:37
如何成为腾讯后端开发工程师,腾讯后端开发岗位要求和薪资待遇
下一篇 2026年2月15日 20:40

相关推荐

  • 服务器监控有什么用?保障业务稳定运行的关键!

    服务器监控是保障现代企业数字化业务顺畅运行的核心基础设施,绝非可有可无的辅助工具,其重要性体现在它是维系业务连续性、保障性能体验、主动防御威胁、优化资源成本以及驱动高效运维决策的基石,忽视有效的监控,无异于在数字化的浪潮中蒙眼航行,风险巨大且后果难以承受,业务连续性的基石:守护永不宕机的生命线最小化停机损失……

    2026年2月9日
    10930
  • 服务器常用配置参数有哪些?服务器配置参数详解

    服务器配置的选择核心在于平衡性能需求与成本效益,CPU、内存、硬盘与带宽构成了决定服务器性能的四大支柱,企业及开发者在选型时,不应盲目追求高配,而应根据实际业务场景(如Web服务、数据库应用、计算密集型任务)进行针对性匹配,合理的配置参数能够最大化提升业务响应速度,同时有效控制运营成本,避免资源闲置浪费,以下将……

    2026年3月30日
    10200
  • python pexpect怎么用?python pexpect模块安装教程

    Python中并不存在名为pexcept的标准库,正确且广泛使用的异常处理库是pytest中的异常捕获机制或原生try-except,若需处理复杂异常链,建议结合traceback模块或使用第三方库如exceptiongroup(Python 3.11+),在Python开发领域,异常处理是保证代码健壮性的核心……

    2026年7月5日
    11400
  • 服务器推送web是什么意思,web服务器推送技术原理详解

    服务器推送Web技术是实现现代实时交互的核心驱动力,其本质在于变革传统的“请求-响应”模式,构建高效、低延迟的数据传输通道,核心结论在于:服务器推送技术通过建立持久连接,主动将数据推送到客户端,彻底解决了传统Web交互中信息滞后与资源浪费的痛点,是构建实时应用(如即时通讯、在线协作、金融行情)的首选方案, 相比……

    2026年3月8日
    12600
  • 服务器什么牌子的好?,怎么选性价比高的型号

    服务器什么牌子的好,答案很直接:预算充足选戴尔、HPE这类国际一线品牌,追求性价比和国产化选浪潮、华为、联想,云上业务直接选阿里云、腾讯云,这个结论不是拍脑袋,而是基于近几年企业采购的实际流向和售后口碑得出的,下面我从品牌梯队、场景适配、价格区间三个维度拆开讲,帮你把这事彻底捋清楚,服务器品牌怎么选:先看预算……

    2026年8月8日
    1100
  • win7如何关闭闲置服务器,哪些闲置服务器可以关闭

    在Win7中关闭闲置服务器,核心是通过“服务”管理器停用IIS、FTP、Telnet等不常用的后台服务,并在“Windows功能”中卸载相关组件以彻底释放系统资源,识别Win7系统中的闲置服务器Win7作为一个经典的操作系统,默认或因软件安装会开启一些网络服务,这些服务在后台监听特定端口,如果不使用,就成了闲置……

    2026年8月6日
    800
  • 个人博客如何选择虚拟主机?个人博客虚拟主机推荐

    放弃廉价共享主机,优先选择支持SSD硬盘、提供独立IP或优质CDN加速、且具备国内备案支持或海外免备案灵活性的主机,具体取决于你的受众群体和建站目的,很多新手站长在搭建个人博客时,往往被“9.9元一年”的低价广告吸引,结果上线后发现打开速度极慢,甚至频繁宕机,这种“买椟还珠”的行为不仅浪费了时间,更严重损害了用……

    2026年6月12日
    4000
  • 个人免费云主机真的靠谱吗?有哪些稳定可靠的推荐

    个人免费云主机确实存在,但主要面向开发者测试、学习及轻量级静态网站托管,其核心局限在于资源配额严格、稳定性无法与企业级服务相比,且多数平台已逐步收紧免费额度或转向“免费试用”模式,建议仅将其作为入门练手或临时部署方案,而非生产环境的首选,在2026年的云计算生态中,寻找一个完全免费且稳定的云主机依然具有挑战性……

    2026年6月14日
    2600
  • gulpfilejs压缩怎么配置?gulp自动化构建工具教程

    Gulpfile.js 压缩的核心在于通过插件链实现代码的自动化构建与优化,能显著减小文件体积并提升加载速度,是目前前端工程化中高效且低配置成本的选择,在2026年的前端开发语境下,虽然构建工具百花齐放,但 Gulp 凭借其基于流的架构和极高的灵活性,依然在中小型项目、老旧项目维护以及需要高度定制化构建流程的场……

    2026年6月23日
    1900
  • 个人买云服务器一般用来做什么?云服务器租用价格及配置推荐

    个人购买云服务器主要用于搭建个人博客、部署开发测试环境、运行私人NAS存储以及托管轻量级Web应用,相比传统虚拟主机,它提供了更高的自由度、完整的Root权限和更灵活的扩展能力,是技术爱好者和独立开发者的首选基础设施,在2026年的互联网生态中,云计算已经不再是大型企业的专属特权,对于个人用户而言,拥有一台属于……

    2026年6月20日
    2810

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(1条)

  • 萌老8544
    萌老8544 2026年2月20日 11:15

    这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于示例的部分,分析得很到位,