需先确认gpu型号与驱动就绪:执行lspci -knn | grep -a 3 -e "(vga|3d|display)"查看“kernel driver in use”是否为nvidia/amdgpu/i915,再用lsmod | grep -e "^(nvidia|amdgpu|i915)"验证模块加载;nvidia用户直接运行nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader,nounits定位高显存进程,amd用户结合radeontop观察vram带宽占用并用ps -eo pid,comm,args --sort=-vsz | head -20辅助排查,最后通过xorg.0.log和glxinfo确认3d加速是否真正启用。

当您在麒麟OS上运行Blender、Maya或国产3D软件时,发现GPU显存被迅速占满导致渲染卡顿、窗口闪烁甚至Xorg崩溃,需要快速定位具体是哪个进程在疯狂吃显存。
确认当前GPU型号与驱动是否就绪
这一步不可跳过。若驱动未加载或识别错误,后续所有显存查询都将返回空或误导信息。
打开终端,执行:lspci -knn | grep -A 3 -E "(VGA|3D|Display)"。重点查看“Kernel driver in use:”后的内容,如显示nvidia、amdgpu或i915才继续;【若该行为空或仅显示“Kernel modules:”而无“in use”,说明显卡驱动根本未激活,此时不存在真正意义的3D渲染进程】。
再运行:lsmod | grep -E "^(nvidia|amdgpu|i915)",确保对应模块已载入。例如NVIDIA环境应看到nvidia、nvidia_uvm、nvidia_drm三行以上输出。
用nvidia-smi直接抓取占用显存最高的3D进程(NVIDIA用户)
这是最准、最即时的方法,专为NVIDIA闭源驱动设计,能精确到每个GPU计算上下文。
执行:nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader,nounits。
输出示例:12456, blender, 3840 MiB。注意:process_name字段可能被截断,若显示为blender或gnome-shell等明显3D相关进程,立即记下PID。
若需按显存用量降序排列并只看前5个,执行:nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv,noheader,nounits | sort -t',' -k3 -hr | head -5。
用radeontop定位AMD显卡上的高显存渲染任务
radeontop不显示显存总量和百分比,但能实时反映显存带宽压占情况——3D渲染进程必然引发持续高位带宽占用。
先安装:sudo apt install radeontop(银河麒麟V10/V11适用)。
运行:sudo radeontop。界面中重点关注“VRAM”行右侧的“%”列,若长期高于70%,说明有进程正在密集读写显存。
此时新开一个终端,执行:ps -eo pid,comm,args --sort=-vsz | head -20 | grep -E "(blender|mayacmd|unity|godot|gazebo)",将vsz(虚拟内存大小)作为辅助线索,因为3D渲染器通常预分配大量显存映射区域。
交叉验证:查Xorg日志确认3D加速是否启用
即使nvidia-smi显示某进程占显存,若Xorg未启用GPU加速,它实际走的是CPU软渲染,显存占用只是假象。
第一步:获取当前Xorg进程PID:pgrep -f "Xorg.*-config" 或 ps aux | grep "Xorg" | grep -v grep。
第二步:读取其日志文件:cat /var/log/Xorg.0.log | grep -i "nvidia\|amdgpu\|modesetting\|dri\|glx"。
关键线索包括:Loaded "nvidia"、DRI3 enabled、GLX: Initialized NVIDIA。若出现Failed to load module "nvidia"或全程只有fbdev字样,说明3D渲染并未真正使用GPU,显存占用来自其他计算进程而非图形界面。
第三步:检查OpenGL渲染器是否为GPU驱动:glxinfo | grep "OpenGL renderer string"。正常应输出类似OpenGL renderer string: NVIDIA GeForce RTX 4090/PCIe/SSE2,而非Mesa DRI Intel(R) HD Graphics(表示混用)或llvmpipe(纯CPU软渲染)。











