Linux To Go 系统优化
Contents
本文主要讲述如何优化配置 U 盘上安装的 Debian/Linux 系统,使其适配各种硬件主机并优化 U 盘上性能。
在高速 U 盘上安装 Linux 系统随身携带使用是很方便的事情,这跟 LiveCD 模式不同,所有的系统配置和文件都是随盘保存,不会随着重启重置,也不会因为更换机器而产生差异。
硬件及系统选择
U 盘硬件直接影响系统性能,主要影响指标为容量以及主控性能。
建议使用 U 盘容量大于等于 128G,不管是文件系统大小还是从用户数据考量,过小的容量很容易造成磁盘满载,而 U 盘满载会导致 IO 等待 GC 处理而卡顿,影响体验和 U 盘寿命。
而 U 盘主控同样影响,尤其是主控的 4K 随机读写性能。市面上大多数 U 盘都是连续读写速度还不错,但是小文件 4K 性能很渣,而操作系统大多数都是受制于 4K 读写性能。这里推荐三星的三款 U 盘,Bar Plus,Fit Plus,Duo Plus,这三款 4K 性能都很优异(4K IO > 10MB/s)。
系统镜像方面,推荐使用最新内核 (5.6 以上)的系统,这样可以支持最新的硬件平台而保证在各个硬件上启动,而且新的内核已知问题更少。这里推荐使用 Debian testing(bullseye),镜像建议使用附带非自由驱动的 firmware-debian-testing-dvd DVD 镜像。
分区及挂载优化
U 盘相对于 SSD,存在天然的短板(读写性能差,没有磨损平衡等),所以选择合适的文件系统并适当配置,可以提升不少性能和寿命优化。
本文推荐 U 盘系统将根 /
和用户目录 /home
独立分区,并且采用 btrfs
文件系统。独立分区可以后期更换系统而保留用户文件数据,使用 btrfs
可以获得一些先进的文件系统特性,但是使用 btrfs
文件系统可能存在不稳定的情况,所以推荐安装的系统都尽量使用最新的内核(越新的内核中 btrfs
已知问题越少)。
在安装完系统后,建议修改 /etc/fstab
中 btrfs
文件系统的挂载参数如下:
|
|
其中:
noatime
. 默认为relatime
,每次读取文件会更新文件访问时间而增加 IO,修改为noatime
后可以大幅提升文件系统性能。compress=lzo
. 启用文件系统透明压缩(lzo 算法),可以缩小文件系统占用磁盘空间(在/
上大概可以获得 30% 压缩,在/home
上大约可以获得 20% 的压缩),提升 IO 吞吐量(因为压缩),而代价仅略微增加 CPU 消耗(btrfs
压缩算法有 3 种,默认为zlib
,压缩效果好,但是占用 CPU 高,lzo
压缩快,CPU 占用低,zstd
在两者之间,但是 grub 目前还不支持zstd
压缩 )。ssd_spread
. 启用btrfs
为低速 SSD 设备的优化策略。autodefrag
. 启用在线整理,可以后台自动优化文件系统布局。
需要注意的是,在系统安装时,默认 btrfs
是不激活透明压缩的,在修改 /etc/fstab
后,透明压缩也只对新生成的文件生效,想要对已有文件进行压缩处理,需要执行如下指令:
|
|
想要粗略知道 btrfs
文件系统大小和占用磁盘大小,可以执行如下指令:
|
|
源及驱动安装
针对 Debian testing 系统的更新源建议使用清华大学开源镜像站的源(国内):
|
|
建议在系统中安装如下额外驱动包,以适配广泛的平台硬件:
|
|