服务器监控实战:CPU与GPU占用率查看及GPU命令详解

作者:十万个为什么2025.10.24 12:14浏览量:1

简介:本文深入讲解服务器CPU与GPU占用率监控方法,涵盖Linux/Windows系统下实用命令及工具,重点解析GPU监控命令的详细用法,帮助开发者高效诊断性能瓶颈。

一、服务器CPU与GPU占用监控的重要性

在服务器运维和开发过程中,实时监控CPU和GPU的占用率是保障系统稳定运行的关键。无论是训练深度学习模型、运行高性能计算任务,还是部署大规模Web服务,资源占用异常都可能导致性能下降甚至服务中断。通过监控工具和命令,开发者可以快速定位资源瓶颈,优化任务调度,提升整体效率。

1.1 CPU占用监控的核心价值

CPU是服务器的核心计算资源,其占用率直接反映了当前任务的计算负载。通过监控CPU占用,可以:

  • 识别计算密集型进程,优化代码或调整任务优先级。
  • 发现异常进程(如死循环或资源泄漏),及时终止以避免系统崩溃。
  • 结合多核利用率,判断是否需要扩展CPU核心数或优化并行计算。

1.2 GPU占用监控的必要性

对于依赖GPU加速的任务(如深度学习、3D渲染),GPU资源的合理分配至关重要。监控GPU占用可以:

  • 确保训练任务充分利用GPU算力,避免资源浪费。
  • 检测多任务竞争导致的性能下降,调整任务调度策略。
  • 提前发现GPU故障或驱动问题,减少停机时间。

二、服务器CPU占用查看方法

2.1 Linux系统下的CPU监控命令

2.1.1 top命令:实时动态视图

top是Linux下最常用的系统监控工具,提供实时的CPU、内存、进程等信息。运行后按1可展开显示每个CPU核心的利用率。

  1. top

关键字段解析

  • %Cpu(s):用户态(us)、内核态(sy)、空闲(id)等占比。
  • PID:进程ID,可用于定位高负载进程。

2.1.2 htop:增强版交互工具

htoptop的增强版,支持彩色显示、鼠标操作和更详细的进程信息。需先安装:

  1. sudo apt install htop # Debian/Ubuntu
  2. sudo yum install htop # CentOS/RHEL

运行后可直接通过方向键选择进程,按F9可终止进程。

2.1.3 mpstat:多核CPU统计

mpstat(需安装sysstat包)可查看每个CPU核心的详细统计,适合分析多线程任务的负载均衡

  1. mpstat -P ALL 1 # 每秒刷新一次所有核心数据

输出示例

  1. %usr %nice %sys %iowait %irq %soft %steal %idle
  2. 98.1 0.0 1.2 0.0 0.0 0.0 0.0 0.7 # 核心0的占用

2.2 Windows系统下的CPU监控工具

2.2.1 任务管理器

Ctrl+Shift+Esc打开任务管理器,切换到“性能”标签页,可查看CPU整体利用率及每个逻辑核心的占用曲线。

2.2.2 PowerShell命令

通过PowerShell脚本可获取更详细的CPU数据:

  1. Get-Counter '\Processor(_Total)\% Processor Time' | Select-Object -ExpandProperty CounterSamples | Select-Object InstanceName, CookedValue

三、服务器GPU占用查看方法

3.1 NVIDIA GPU监控命令

3.1.1 nvidia-smi:核心监控工具

nvidia-smi是NVIDIA官方提供的GPU监控工具,可查看GPU利用率、显存占用、温度等关键信息。

  1. nvidia-smi

输出示例

  1. +-----------------------------------------------------------------------------+
  2. | NVIDIA-SMI 515.65.01 Driver Version: 515.65.01 CUDA Version: 11.7 |
  3. |-------------------------------+----------------------+----------------------+
  4. | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
  5. | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
  6. |===============================+======================+======================|
  7. | 0 Tesla T4 On | 00000000:00:1E.0 Off | 0 |
  8. | N/A 62C P0 56W / 70W | 3245MiB / 15109MiB | 98% Default |
  9. +-------------------------------+----------------------+----------------------+

关键字段

  • GPU-Util:GPU计算核心的利用率(百分比)。
  • Memory-Usage:显存占用情况。
  • Temp:GPU温度,过高可能导致降频。

3.1.2 定时刷新与日志记录

通过watch命令可定时刷新nvidia-smi输出:

  1. watch -n 1 nvidia-smi # 每秒刷新一次

若需记录历史数据,可结合cron和脚本将输出写入文件:

  1. #!/bin/bash
  2. nvidia-smi >> /var/log/gpu_usage.log

3.1.3 nvtop:GPU版的htop

nvtop提供类似htop的交互式界面,支持多GPU监控。安装方式:

  1. sudo apt install nvtop # Ubuntu

运行后按g可切换GPU视图,按q退出。

3.2 AMD GPU监控命令

对于AMD GPU,可使用rocm-smi(ROCm平台)或radeontop

  1. rocm-smi --showuse # 显示GPU利用率
  2. radeontop # 交互式监控工具(需安装)

四、综合监控方案建议

4.1 脚本自动化监控

编写Shell脚本定期采集CPU和GPU数据,并生成可视化报告:

  1. #!/bin/bash
  2. TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S")
  3. CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
  4. GPU_USAGE=$(nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader | awk '{print $1}')
  5. echo "$TIMESTAMP, CPU: $CPU_USAGE%, GPU: $GPU_USAGE%" >> /var/log/resource_usage.csv

4.2 结合Prometheus与Grafana

对于大规模服务器集群,建议部署Prometheus收集指标,通过Grafana展示可视化面板。需配置node_exporter(CPU)和dcgm-exporter(NVIDIA GPU)的Exporter。

4.3 异常告警机制

设置阈值告警(如CPU持续>90%或GPU>95%),通过邮件或企业微信通知运维人员。例如,使用cron+awk检测日志并触发告警:

  1. if awk -F, '{if ($3 > 95) exit 1}' /var/log/resource_usage.csv; then
  2. echo "GPU占用过高!" | mail -s "告警" admin@example.com
  3. fi

五、常见问题与解决方案

5.1 nvidia-smi命令未找到

  • 原因:未安装NVIDIA驱动或PATH未配置。
  • 解决:重新安装驱动,并确保/usr/bin在PATH中。

5.2 GPU利用率低但任务慢

  • 可能原因:数据加载瓶颈、CPU预处理不足、CUDA内核优化问题。
  • 诊断步骤
    1. nvidia-smi dmon查看详细GPU指标。
    2. 检查任务是否被其他进程抢占资源。
    3. 使用nvprof分析CUDA内核执行时间。

5.3 多GPU服务器负载不均

  • 优化建议
    • 使用CUDA_VISIBLE_DEVICES环境变量指定GPU。
    • PyTorch/TensorFlow中显式分配设备。
    • 监控nvidia-smiVolatile GPU-Util字段,调整任务分配。

六、总结与延伸

掌握服务器CPU和GPU的监控命令是运维和开发的基础技能。通过tophtopnvidia-smi等工具,可以实时获取资源占用情况;结合脚本自动化和可视化方案,能进一步提升监控效率。对于深度学习场景,还需关注显存占用、CUDA内核效率等高级指标。未来,随着AI算力的普及,更精细化的资源监控和调度将成为关键竞争力。