Ubuntu 下 Compton 卡顿的排查与优化
一、快速定位问题
killall compton),观察卡顿是否消失。若消失,基本可确定是合成器开销导致。lspci | grep -i vga 查看显卡型号,使用 glxinfo | grep "OpenGL renderer" 检查 OpenGL 是否正常;确保已安装并启用专有或合适的开源驱动(如 NVIDIA、AMDGPU、Intel)。top/htop、pidstat -p $(pidof compton) 观察 CPU 占用是否异常;用 glxgears 粗略测试 3D 加速是否正常。二、配置文件优化要点
backend 设为 glx(OpenGL),通常比 xrender 性能更好;Wayland 环境下使用相应后端。shadow = false、blur = false、opacity = 1.0(或尽量接近不透明)以减少合成负载。vsync 设为 true 可减少撕裂但可能略降帧率;设为 false 可能提升帧率但易出现撕裂,按显示器与显卡表现二选一。fps_limit = 60(或匹配显示器刷新率),避免无谓合成。refresh-rate 与显示器实际刷新率一致;多屏时分别核对每块屏幕的刷新率设置。backend = "glx"
vsync = true
shadow = false
blur = false
opacity = 1.0
fps_limit = 60
修改后重启 Compton 生效。三、GPU 加速与驱动
backend = glx 且 OpenGL 工作正常;若 glxinfo 报错或渲染异常,优先修复驱动。nvidia-driver 最新稳定版,重启后再测试。amdgpu 驱动(较新内核与 Mesa 通常体验更好)。i915 驱动与最新 Mesa。glxinfo 与 glxgears;若新驱动导致问题,回退到稳定版本。四、系统与资源控制
cpulimit 限制其 CPU 占用,例如 cpulimit -l 50 -p $(pidof compton)(将 CPU 占用限制在约 50%)。top、vmstat、pidstat 观察瓶颈;必要时减少桌面特效或后台进程,避免与电源管理工具冲突。killall compton && compton &)。五、替代方案与进阶
shadow-exclude、glx-no-stencil、glx-copy-from-front 等),在不影响稳定性的前提下降低开销。