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年9月19日
    23400
  • x86_64架构在服务器和PC领域过时了吗?

    花生壳 Linux 使用教程花生壳(Oray)是一款解决动态公网 IP 和内网穿透问题的工具,可将本地服务(如网站、远程桌面、NAS)映射到外网访问,本教程详细讲解 Linux 系统的安装配置流程,适用于 Ubuntu、CentOS 等主流发行版,准备工作花生壳账号注册地址:https://hsk.oray.c……

    2025年8月4日
    26100
  • Linux中如何创建孙进程?

    在Linux系统中,进程创建是操作系统管理的核心功能之一,而创建孙进程本质是通过两次fork()系统调用实现的,fork()是Linux中用于创建新进程的系统调用,它会复制当前进程(父进程)的副本,包括代码段、数据段、堆栈等资源,新创建的进程称为子进程,与父进程几乎完全相同,但拥有独立的PID(进程ID)和PP……

    2025年10月7日
    14900
  • Linux操作系统如何连接无线网络?

    Linux操作系统连接无线网络的方式主要有图形界面和命令行两种,具体操作取决于用户使用的桌面环境和个人习惯,无论是新手还是进阶用户,掌握这两种方法都能在不同场景下高效完成网络连接,以下将从准备工作、具体操作步骤、常见问题解决等方面进行详细说明,连接前的准备工作在尝试连接无线网络前,需确保系统满足基本条件,避免因……

    2025年8月22日
    21800
  • 如何将域名绑定到Linux服务器?

    将域名绑定到 Linux 服务器是搭建网站的关键步骤,本文以 Nginx/Apache 服务器和 阿里云域名为例(其他服务商操作类似),分步详解操作流程,新手也能轻松完成,绑定前的准备工作域名与服务器拥有一个已注册的域名(如 example.com),一台 Linux 服务器(推荐 Ubuntu/CentOS……

    2025年8月8日
    20100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信