Linux显存占用高?快速清理方法

Linux系统显存通常由显卡驱动自动管理,无需手动清理,但当程序异常退出或驱动未释放资源时,可能导致显存残留占用,针对不同场景存在相应的清理方法。

通用清理方法

重启图形界面(推荐)

适用于桌面环境(如GNOME、KDE),操作后所有图形程序关闭,显存自动释放:

   sudo systemctl restart display-manager  # 重启显示管理器(通用)
   # 或指定管理器(根据实际选择):
   sudo systemctl restart gdm      # GNOME
   sudo systemctl restart sddm     # KDE
   sudo systemctl restart lightdm  # Ubuntu/LXDE

重启系统

彻底释放所有资源(包括显存):

   sudo reboot

针对NVIDIA显卡

重置GPU(无需重启)

使用 nvidia-smi 工具:

   nvidia-smi --gpu-reset -i 0  # 重置GPU 0(替换为实际GPU ID)

卸载并重载驱动模块

   sudo rmmod nvidia_uvm nvidia_drm nvidia_modeset nvidia  # 卸载模块
   sudo modprobe nvidia nvidia_modeset nvidia_drm nvidia_uvm  # 重载模块

终止占用进程

查看显存占用进程:

   nvidia-smi  # 找到占用显存的PID
   kill -9 <PID>  # 强制结束进程

针对AMD显卡

重置GPU内核模块

   sudo rmmod amdgpu  # 卸载驱动模块
   sudo modprobe amdgpu  # 重载模块

使用RadeonTop监控

安装工具后查看占用进程:

   sudo apt install radeontop  # Debian/Ubuntu
   radeontop -c  # 显示占用率高的进程

针对集成显卡(Intel)

集成显卡共享系统内存,释放方法等同于清理内存:

  1. 结束占用内存的进程:
    top  # 查看高内存进程
    kill <PID>
  2. 清理缓存:
    echo 3 | sudo tee /proc/sys/vm/drop_caches  # 清理PageCache/目录项/inode

高级调试方法

监控显存使用

  • NVIDIA:watch -n 1 nvidia-smi
  • AMD:watch -n 0.5 radeontop
  • 通用:sudo lsof /dev/dri/card* 查看访问显卡的设备

检查驱动日志

   dmesg | grep -i "drm\|gpu\|vram"  # 排查驱动错误
   journalctl -b -k --gpu=drm        # 查看内核GPU日志

注意事项

  1. 风险提示
    • 卸载驱动模块可能导致图形界面崩溃,请在终端(TTY)操作(Ctrl+Alt+F2~F6)。
    • 生产环境慎用强制重置,可能引发数据丢失。
  2. 预防建议
    • 更新显卡驱动至最新版:sudo apt upgrade nvidia-driver(NVIDIA)或使用厂商官方源。
    • 避免异常关闭GPU程序(如CUDA应用、游戏)。
  3. 常见误区
    • 显存≠内存free 命令显示的是系统内存,非显存。
    • 无需定期清理:驱动会自动回收资源,仅需处理异常情况。

引用说明

  • NVIDIA System Management Interface (nvidia-smi文档)
  • AMDGPU内核驱动 (官方Wiki)
  • Linux DRM(Direct Rendering Manager)子系统 (内核文档)
  • 内存管理机制 (Linux内核文档)

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9115.html

(0)
酷番叔酷番叔
上一篇 2025年7月29日 01:30
下一篇 2025年7月29日 01:48

相关推荐

  • 如何批量安装多台Linux系统?高效操作步骤与注意事项有哪些?

    在搭建服务器集群、开发测试环境或部署多台终端设备时,手动逐台安装Linux系统效率低下,易出错,本文将详细介绍通过多种方式高效安装多台Linux系统的方法,涵盖单台基础配置、批量网络部署及虚拟机克隆等场景,帮助读者根据实际需求选择最优方案,安装前的准备工作无论采用何种方式安装多台Linux系统,前期准备工作都至……

    2025年10月2日
    13600
  • 为什么你总是做不好选择?

    修改挂载点的完整流程查看当前挂载信息首先确认目标设备的标识符和原挂载点:lsblk -f # 列出所有块设备及文件系统类型df -h # 查看已挂载设备及使用情况输出示例:sdb├─sdb1 ext4 /mnt/old_mount记录设备名(如 /dev/sdb1)和原挂载点(如 /mnt/old_mount……

    2025年7月27日
    13200
  • Linux下如何安装安卓系统?

    在Linux系统中安装安卓系统是许多开发者和技术爱好者探索跨平台体验、满足特定应用需求或进行开发调试的常见需求,本文将详细介绍通过虚拟机、双系统、容器化等多种方式在Linux上安装安卓的具体步骤、注意事项及优缺点分析,帮助用户根据自身需求选择合适方案,通过虚拟机安装:安全隔离的轻量级方案虚拟机技术可在Linux……

    2025年9月18日
    15500
  • Linux环境下如何登录MySQL数据库?

    在Linux系统中登录MySQL数据库是数据库管理和开发的基础操作,掌握正确的登录方法及常见问题处理至关重要,以下是详细的登录步骤、参数说明及常见问题解答,帮助用户顺利完成MySQL登录,准备工作:确认MySQL服务状态在登录MySQL前,需确保MySQL服务已正常运行,可通过以下命令检查服务状态:system……

    2025年8月24日
    14700
  • 如何查看eth0等网卡名?

    命令行激活网络(通用方法)使用 ip 命令(推荐)# 启动网卡(以 enp0s3 为例)sudo ip link set enp0s3 up# 分配IP地址(DHCP自动获取)sudo dhclient enp0s3# 静态IP配置(手动指定)sudo ip addr add 192.168.1.100/24……

    2025年7月4日
    16400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信