CentOS 下提升 Compton 性能的配置要点
一 基础准备与驱动检查
- 确认已安装 Compton:在 CentOS 7/8/Stream 可用 sudo dnf install compton 安装;配置文件通常位于 ~/.config/compton.conf 或 /etc/xdg/compton.conf。
- 优先使用 OpenGL 渲染:将 backend = glx;同时确保显卡驱动正确安装并启用(OpenGL 可用时,glx 通常优于 xrender)。
- 验证与切换后端:运行 glxinfo | grep “OpenGL renderer” 检查驱动;若 glx 异常,可临时改用 xrender 以提升兼容性(性能可能下降)。
二 核心性能参数建议
- 关闭或精简重特效:将 shadow = false、禁用或降低 opacity/blur(如 bg_blur = false),可显著降低合成开销。
- 垂直同步策略:若更在意帧率,可设 vsync = false;若更在意画面撕裂,设 vsync = true(可能略降 FPS)。
- 帧率上限:设置 frame-rate = 60(或匹配显示器刷新率),避免无谓合成。
- 降低透明度计算:将 alpha-mode = “none”,减少透明度相关计算。
- 降低重绘成本:启用 glx-copy-from-front = true,减少 GPU 读回(read-back)。
- 精简或关闭着色器:将 shader-file/shader-frag/shader-vert = null,避免复杂着色器带来的开销。
三 进阶优化与场景化配置
- 排除不需要的窗口与区域:使用 shadow-exclude 与 opacity-rule 精确匹配应用或标题,避免对视频播放器、终端等无关窗口做合成。
示例:shadow-exclude = [ “class_g=‘Firefox’” ];opacity-rule = [ “90:class_g=‘Alacritty’” ]。
- 多显示器与刷新率:用 xrandr --query 检查输出;若各屏刷新率不同,优先以主屏为准设置 frame-rate,减少抖动与无效合成。
- 资源限制与稳定性:必要时用 cpulimit -l 50 -p $(pgrep compton) 限制 CPU 占用,防止个别场景异常飙升。
- 故障回退与对比:保留一套“性能优先”和“兼容优先”的配置,便于快速切换验证。
四 快速可用的性能优先配置示例
# ~/.config/compton.conf
backend = "glx"
vsync = false
shadow = false
bg_blur = false
screen_edge_blur = false
opacity = 1.0
alpha-mode = "none"
glx-copy-from-front = true
shader-file = null
shader-frag = null
shader-vert = null
frame-rate = 60
# 可按需添加:对特定应用关闭阴影或固定不透明
shadow-exclude = [ "class_g='Firefox'", "class_g='mpv'" ]
opacity-rule = [ "100:class_g='Alacritty'", "100:class_g='gnome-terminal'" ]
应用方式:保存后执行 killall compton && compton --config ~/.config/compton.conf;若使用登录自启,可用 systemd 服务单元(ExecStart 指向上述命令)。
五 验证与排错
- 观察合成开销:执行 compton --benchmark 查看合成耗时与是否掉帧;用 glxinfo 与 xrandr 校验驱动与刷新率。
- 逐步启用特效:从“全关”起步,逐一开启 shadow/bg_blur/opacity,定位影响最大的选项。
- 切换后端对比:在 glx/xrender 间 A/B 测试,选择在你的硬件与驱动下更稳更快的方案。
- 查看日志与回退:若出现异常,检查自启服务日志并重载配置(systemctl daemon-reload;systemctl restart compton)。