Linux用户对GPU的日常管理(英伟达)

本文详细介绍如何使用nvidia-smi命令实时监控NVIDIA GPU状态,包括显存使用情况、利用率及占用线程等,并介绍如何通过fuser命令查找占用GPU资源的进程,以及使用kill命令批量结束这些进程的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2020/05/19

        我们在服务器上跑代码最常用的就是NVIDIA显卡,如GTX2080,下面记录一下我找到的常用代码。

        在NVIDIA显卡可以正常使用以后,输入

nvidia-smi

就可以看到一个包含每张显卡型号、显存使用情况、利用率、占用线程等信息,非常全面。

        这个命令配合 watch 可以实现实时监控,是我最常用的命令:

watch -n 1 nvidia-smi

其中 -n 1 设定每1秒执行一次 nvidia-smi 命令。设定为1秒是因为有些版本的 nvidia-smi 命令执行较慢,同时比较吃cpu。不过 watch 命令会由于窗口大小限制而不能显示全部内容,如下图中看不到占用每张卡的具体进程。

watch -n 1 nvidia-smi

 

 

        按 Ctrl + C 组合键退出 watch 监视。


        在跑多进程程序的时候,有时候主进程程序挂掉了,但子进程程序还在默默地占用显存。一般表现为单张卡被占用显存,但其利用率保持为0%,且 nvidia-smi 看不到占用该卡的进程。例如上图中1卡的占用显存如果改为 5754MiB,其它不变,那么1卡就可能被僵尸进程占用显存了。

        这里有一个神奇的命令,它可以查看当前用户占用每张卡的所有进程。

fuser -v /dev/nvidia*

 

fuser -v /dev/nvidia*

        

        那么上面列出来的进程就是 yiyuiii 现在与第0张卡有交互的进程。将进程号喂给 kill 指令,就可以关闭它们。

kill -9 [PID]

        kill 命令可以批量关闭进程,只需把 进程号PID 列在右边。在上面的情况中,命令为

kill -9 17521 17540 17541 17542 17543 17544 17545 17546 17547 17551 17555 17556 17557 17558 17559 17560 17561 18304 18332 18333 18334 18335 18336 18337 18338 18339 18340 18344 18345 18346 18347 18348 18349

        另外,作为一位自动化选手,这里提供一个 python 程序来提取 kill 所需的进程号列表。

import os
import re

with open('rawtext.txt','r') as f:
    s = f.read()
    pattern = re.compile(r'\d+')   # 查找数字
    results = pattern.findall(s)
    output = ''
    if results:
        for result in results:
            output += result + ' '
    print(output)

2020/06/03

        对于使用了nohup命令文件输入/输出的情形,下面代码能够直接精准得到进程PID:

fuser <filename>

        To be continued... ->

### NVIDIA驱动更新下载安装指南 对于需要在Linux系统下使用NVIDIA显卡用户来说,保持最新的NVIDIA驱动版本至关重要。以下是关于如何更新和安装NVIDIA驱动的具体方法。 #### 1. Debian系统的NVIDIA驱动更新流程 默认情况下,Debian 12可能预装的是开源驱动Nouveau[^1],该驱动可能会引发一些兼容性和稳定性问题,例如屏幕闪烁等问题。因此建议手动安装NVIDIA官方闭源驱动来解决这些问题并提升性能。 - **第一步:卸载现有驱动** 如果当前正在使用的驱动是Nouveau,则需先禁用它再继续下一步操作。 ```bash echo "blacklist nouveau" | sudo tee -a /etc/modprobe.d/blacklist.conf update-initramfs -u ``` - **第二步:添加图形支持库以及工具包** 这些软件包有助于顺利完成后续步骤中的编译过程。 ```bash sudo apt-get install build-essential dkms linux-headers-$(uname -r) ``` - **第三步:查询可用的最新版驱动名称** 使用`apt-cache search nvidia-driver`命令查看有哪些候选者可供选择。假设推荐的结果显示为`nvidia-driver-525`,那么可以直接执行下面这条指令完成安装工作[^2]: ```bash sudo apt install nvidia-driver-525 ``` - **第四步:重启计算机使更改生效** #### 2. Arch Linux上的NVIDIA驱动管理方式 相比其他发行版而言,在Arch Linux上配置GPU显得更加简便高效。得益于社区贡献的强大脚本文件集合,整个设置周期被大大缩短了时间成本的同时还提高了准确性[^3]。 - 用户只需按照文档指示依次完成各项设定即可达成目标——无论是追求极致效能还是仅仅满足日常娱乐需求都不成问题; - 特别值得一提的功能亮点在于其具备自我修复机制,即每当检测到核心变动时都会触发相应动作从而保障持续稳定运作状态;当然还有很重要的一点就是强烈建议大家遵循指引直至结束前都不要轻易尝试重新启动机器以防万一中途发生错误造成不可挽回的局面! ```bash sudo pacman -S nvidia ``` 以上就是在不同类型的Linux操作系统里边针对NVIDIA设备所采取的不同策略概述啦~希望能帮到正为此苦恼着的朋友哦~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值