嘿,朋友!欢迎来到 Fedora Silverblue 的世界。我知道你选这条路不是为了“简单”,而是为了掌控。
Silverblue 和我们熟悉的 Fedora Workstation 不太一样。它采用 immutable(不可变)架构,把你的系统核心打包成只读的镜像。这听起来像是给性能套上了枷锁,对吧?但如果你能绕过那些限制,正确地使用 dnf、toolbox 和 rpm-ostree,你会发现这台机器像被解开封印一样——既稳定得可怕,又跑得飞快。
今天我不跟你讲那些枯燥的“禁用服务”列表,咱们聊聊怎么真正把你的硬件潜能榨干,同时保持 Silverblue 那种令人安心的纯净感。
先说说为什么 Silverblue 会感觉“慢”
很多从 Ubuntu 或 Arch 转过来的用户,第一眼看到 Silverblue 会抱怨:“我连装个 Chrome 插件都要进容器?”
其实不是系统慢,是你的使用习惯没跟上。
默认情况下,Fedora 会使用 tuned 服务来动态调整 CPU 频率、磁盘 I/O 调度和网络参数。对于 Silverblue 这种桌面场景,默认配置通常是 desktop 或 balanced。但这对于“开发+游戏”的双重需求来说,太保守了。
我们要做的第一件事,就是告诉内核:“嘿,我现在要干活了,别省电了,给我全速!”
切换性能调优策略
在终端里(注意,是在宿主机终端,不是容器里),输入:
sudo tuned-adm profile throughput-performance
这个配置文件专门为吞吐量优化,它会放宽 CPU 频率下缩,让风扇多转一会儿,换来的是更稳定的高频。
如果你更喜欢响应速度而非持续满载,可以试试:
sudo tuned-adm profile latency-performance
小建议:游戏的时候用 latency-performance,编译代码的时候用 throughput-performance。你可以写个简单的脚本切换,省得每次手动敲命令。
开发者环境:别在系统里乱装东西
这是 Silverblue 最核心的优势,也是最大的坑。
原则:永远不要在宿主机上直接安装开发依赖。
为什么?因为一旦你 dnf install 了一个库,你就破坏了银蓝色的纯净,而且以后更新系统可能会遇到依赖冲突。更重要的是,宿主机是只读的,你想删东西都删不干净。
使用 Toolbox 打造隔离的开发沙盒
Toolbox 是 Silverblue 的瑞士军刀。它为每个项目创建一个独立的容器环境,你可以在里面随意折腾,不会影响系统。
比如你要做一个 Python 数据科学项目:
# 创建一个名为 "data-science" 的容器
toolbox create --distro fedora --release 40 --name data-science
# 进入容器
toolbox enter data-science
# 在容器里随便装,没人管你
dnf install python3 pandas numpy jupyterlab
出来:
exit
每次你想开发这个项目,就 toolbox enter data-science。容器里的文件会自动挂载到宿主机的 ~/data-science 目录下。你的代码在宿主机,依赖在容器里,井水不犯河水。
Flatpak:游戏的最佳归宿
游戏?别想着在宿主机上跑 Wine 或者原生二进制文件了,那太麻烦了。
Silverblue 的哲学是:能用 Flatpak 就用 Flatpak。
为什么?因为 Flatpak 自带运行时环境,不会污染系统库。而且,Flathub 上的游戏通常针对最新图形库做了优化。
# 安装 Steam
flatpak install flathub com.valvesoftware.Steam
# 安装 Discord
flatpak install flathub com.discordapp.Discord
# 安装 GeForce Experience 的替代方案(用于 NVIDIA 驱动管理)
flatpak install flathub org.freedesktop.Platform.VulkanLayer.NVIDIA
注意:如果你用的是 NVIDIA 显卡,Flatpak 需要额外的 Vulkan 层支持。别担心,Fedora 的 RPM Fusion 仓库会帮你搞定。
图形性能:NVIDIA 与开源驱动的抉择
这里有个残酷的事实:在 Linux 上玩游戏,NVIDIA 依然是王者,但 open-source 驱动(nouveau)是渣渣。
Silverblue 默认不包含专有驱动,你需要手动启用 RPM Fusion。
启用 RPM Fusion
# 添加 RPM Fusion 仓库(免费和非免费)
sudo rpm-ostree install \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
# 重新引导系统以应用更改
sudo rpm-ostree uninstall rpmfusion-free-release rpmfusion-nonfree-release
sudo reboot
等等,为什么先 install 再 uninstall? 因为 rpm-ostree 的工作方式是“层叠”。你先安装 RPM Fusion,然后系统会重新打包镜像。卸载那个包只是为了清理元数据,确保不会残留冲突。这听起来很绕,但这是 Silverblue 保证系统一致性的关键机制。
NVIDIA 显卡优化
如果你用的是 NVIDIA 显卡,安装完 RPM Fusion 后:
# 安装专有驱动
sudo rpm-ostree install akmod-nvidia xorg-x11-drv-nvidia-libs
# 重建启动加载器并重启
sudo rpm-ostree kargs --append-to-bootcmdline="nvidia.DRM_modeset_FORCE_1"
sudo reboot
小技巧:DRM_modeset_FORCE_1 这个参数可以解决一些 NVIDIA 驱动在 Linux 下黑屏或闪烁的问题。
AMD 显卡:开箱即用
AMD 用户就幸福多了。现代 AMD 显卡(RX 5000 系列及以后)在 Fedora 上基本开箱即用,而且开源驱动性能已经非常接近专有驱动。
你可以稍微优化一下:
# 安装 Mesa 开发库
sudo rpm-ostree install mesa-libGLU-devel
# 启用 AMDGPU 性能模式
echo "options amdgpu si_support=1 vic_support=1" | sudo tee /etc/modprobe.d/amdgpu.conf
sudo dracut --force
浏览器:日常开发的门面
浏览器占用的内存和 CPU 可是相当可观的。Silverblue 推荐的 Firefox 是不错的选择,但我们可以让它更强。
优化 Firefox 性能
- 禁用不必要的后台服务
打开 about:config,搜索并设置:
browser.cache.disk.enable=false(减少磁盘写入)javascript.options.mem.high_water_mark=32(增加 JS 内存限制,适合开发工具)layers.acceleration.force-enabled=true(强制硬件加速)
- 使用 Flatpak 版 Firefox
Flatpak 版 Firefox 可以获得更新的安全补丁和图形库,虽然体积稍大,但兼容性更好。
flatpak install flathub org.mozilla.Firefox
开发工具:VS Code 的 Flatpak 版
别用 dnf install code,用 Flatpak:
flatpak install flathub com.visualstudio.code
为什么?因为 VS Code 的更新非常频繁,而且依赖复杂的 Electron 运行时。Flatpak 版本确保你总是运行最新的、隔离的环境。
游戏优化:Steam 与 Proton
在 Silverblue 上玩 Windows 游戏,Steam 的 Proton 是神器。但默认配置可能不够激进。
Steam 性能调优
- 启用 Steam Deck 的游戏匹配度
在 Steam 设置中,启用“Steam 兼容工具”的测试版。
- 修改启动参数
对于某些游戏,添加以下启动参数可以提升帧数:
PROTON_USE_WINED3D=1 %command%
或者对于 NVIDIA 显卡:
DXVK_HUD=1 %command%
DXVK_HUD=1 会显示实时帧数和硬件信息,帮你诊断性能瓶颈。
- 禁用 Steam 云同步的缓存
如果游戏支持,禁用云同步可以减少磁盘 I/O,提升加载速度。
原生 Linux 游戏优先
尽量玩原生 Linux 版本的游戏。它们通常比通过 Proton 运行的 Windows 版本更高效,因为少了一层翻译层。
# 在 Steam 库中筛选“Linux”标签
磁盘 I/O:ZRAM 与 Swap 策略
Silverblue 默认使用 ZRAM,这是个好东西。ZRAM 将压缩后的内存页放在 RAM 中,而不是写入磁盘。这大大减少了磁盘 I/O,对于 SSD 寿命和响应速度都有好处。
但如果你内存较小(比如 8GB 或更少),可能需要调整 ZRAM 大小。
调整 ZRAM 配置
编辑 /etc/systemd/zram-generator.conf:
[zram0]
zram-size = ram / 2
comp-algo = zstd
这表示 ZRAM 大小设为物理内存的一半,并使用 zstd 压缩算法(比默认的 lz4 压缩率更高,但 CPU 开销稍大)。
保存后重启:
sudo systemctl restart systemd-zram-setup@zram0.service
小建议:对于开发机器,8GB 内存建议将 ZRAM 设为物理内存的 1.5 倍,这样可以减少 swap 到磁盘的情况,提升整体流畅度。
网络优化:减少延迟
对于在线游戏或实时协作开发,网络延迟至关重要。
启用 BBR 拥塞控制
BBR 是 Google 开发的拥塞控制算法,通常比默认的 CUBIC 更高效。
# 检查当前拥塞控制算法
sysctl net.ipv4.tcp_congestion_control
# 设置为 BBR
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
# 永久生效
echo "net.ipv4.tcp_congestion_control = bbr" | sudo tee /etc/sysctl.d/99-bbr.conf
sudo sysctl --system
优化 DNS
使用更快的 DNS 服务器,比如 Cloudflare(1.1.1.1)或 Google(8.8.8.8)。
sudo tee /etc/NetworkManager/conf.d/dns.conf <<EOF
[main]
dns=cloudflare
ipv6.dns=2606:4700:4700::1111
EOF
sudo nmcli con mod "$(nmcli -t -f UUID,TYPE con show --active | grep ethernet | cut -d: -f1)" ipv4.dns "1.1.1.1,8.8.8.8" ipv6.dns "2606:4700:4700::1111,2001:4860:4860::8888"
sudo nmcli con up "$(nmcli -t -f NAME,TYPE con show --active | grep ethernet | cut -d: -f1)"
监控与诊断:了解你的系统
你不能优化你看不见的东西。
安装 Glances
Glances 是一个跨平台的系统监控工具,比 top 更直观。
# 在 toolbox 中安装
toolbox enter
dnf install glances
glances
使用 bpftrace 进行深层诊断
如果你遇到奇怪的性能问题,bpftrace 可以帮你深入内核层分析。
# 安装 bpftrace
sudo rpm-ostree install bpftrace
# 监控磁盘 I/O
sudo bpftrace -e 'tracepoint:block:block_bio_issue { @start[tid] = nsecs; }'
警告:bpftrace 功能强大,但 misuse 可能导致系统不稳定。建议在非生产环境先测试。
总结:Silverblue 是一种生活方式
优化 Fedora Silverblue 不仅仅是调几个参数,而是理解它的哲学:隔离、一致、可重现。
- 开发环境在 Toolbox 里,随意折腾,随时重置。
- 游戏通过 Flatpak 或 Steam,保持宿主机的纯净。
- 系统更新通过
rpm-ostree,永远有一个可回滚的备份。 - 性能调优通过
tuned和内核参数,让硬件发挥最大潜能。
刚开始你可能会觉得麻烦,比如“为什么我不能直接 sudo apt install”。但当你习惯了这种模式,你会发现你的系统越来越干净,越来越快,越来越稳定。
最后,记住一句话:Silverblue 不是用来“用”的,而是用来“构建”的。 构建一个属于你自己的、高效的工作环境。
现在,去打开终端,开始你的优化之旅吧!如果遇到任何问题,欢迎在评论区交流——虽然我不能亲自回答,但我的知识库会帮你找到答案。
