Gentoo Linux以其高度的自定义性和性能而闻名,通过适当的优化可以进一步提升系统的性能和响应速度。本文将介绍多种Gentoo Linux的优化技巧,涵盖编译、内核、启动、存储等多个方面。
一、编译优化
1. 优化MAKEOPTS
MAKEOPTS控制并行编译的进程数,合理设置可以显著提高编译速度:
# 设置为CPU核心数+1(推荐)
nano /etc/portage/make.conf
MAKEOPTS="-j$(($(nproc)+1))"
2. 优化CFLAGS/CXXFLAGS
CFLAGS和CXXFLAGS控制C/C++编译器的优化选项:
nano /etc/portage/make.conf
# 基础优化(适用于大多数系统)
CFLAGS="-O2 -march=native -pipe"
CXXFLAGS="${CFLAGS}"
# 高级优化(谨慎使用)
# CFLAGS="-O3 -march=native -pipe -flto -fno-plt -fstack-protector-strong"
# CXXFLAGS="${CFLAGS}"
3. 使用LTO(链接时间优化)
LTO可以在链接阶段进行跨文件优化:
nano /etc/portage/make.conf
LDFLAGS="-fuse-ld=gold -Wl,-O1 -Wl,--as-needed"
# 启用全局LTO(谨慎使用,可能导致编译问题)
# USE="lto"
4. 配置ccache
ccache可以缓存编译结果,加快重复编译速度:
# 安装ccache
sudo emerge dev-util/ccache
# 配置ccache
nano /etc/portage/make.conf
FEATURES="ccache"
CCACHE_SIZE="10G"
CCACHE_DIR="/var/cache/ccache"
# 查看ccache状态
ccache -s
5. 优化USE标志
USE标志是Gentoo优化的核心,只启用需要的功能:
# 查看当前USE标志
emerge --info | grep USE
# 设置全局USE标志
nano /etc/portage/make.conf
USE="X kde5 opengl networkmanager bluetooth -gnome -qt4 -ipv6"
# 为特定软件包设置USE标志
nano /etc/portage/package.use
www-client/firefox wayland
net-misc/networkmanager -bluetooth
二、内核优化
1. 编译自定义内核
参考《Gentoo Linux内核编译指南》,编译只包含必要功能的内核:
# 进入内核源代码目录
cd /usr/src/linux
# 配置内核(精简功能)
make menuconfig
# 编译并安装
make -j$(nproc)
make modules_install
make install
2. 启用内核抢占
提高桌面系统的响应性:
# 在menuconfig中启用
Processor type and features → Preemption Model → Preemptible Kernel (Low-Latency Desktop)
3. 优化I/O调度器
根据存储设备类型选择合适的I/O调度器:
# 查看当前I/O调度器
cat /sys/block/sda/queue/scheduler
# 为SSD设置mq-deadline
nano /etc/default/grub
GRUB_CMDLINE_LINUX="... elevator=mq-deadline"
# 更新GRUB
grub-mkconfig -o /boot/grub/grub.cfg
4. 启用透明大页
提高内存访问效率:
# 在menuconfig中启用
Memory Management options → Transparent Hugepage Support
# 或运行时启用
echo always > /sys/kernel/mm/transparent_hugepage/enabled
三、启动优化
1. 优化启动服务
只启用必要的系统服务:
# 查看当前启用的服务
rc-status
# 禁用不必要的服务
sudo rc-update del cupsd default
sudo rc-update del bluetooth default
# 启用需要的服务
sudo rc-update add sshd default
sudo rc-update add NetworkManager default
2. 使用OpenRC优化
调整OpenRC的启动参数:
# 启用并行启动服务
nano /etc/rc.conf
RC_PARALLEL="yes"
# 调整服务依赖
eix-sync
sudo emerge sys-apps/openrc-utils
3. 优化GRUB
加快GRUB的启动速度:
nano /etc/default/grub
# 减少超时时间
GRUB_TIMEOUT=2
# 禁用图形界面(可选)
# GRUB_TERMINAL=console
# 更新GRUB
grub-mkconfig -o /boot/grub/grub.cfg
4. 使用tmpfs
将临时目录挂载到内存中:
nano /etc/fstab
# 添加以下行
tmpfs /tmp tmpfs defaults,nosuid,nodev,noatime,size=2G 0 0
tmpfs /var/tmp tmpfs defaults,nosuid,nodev,noatime,size=512M 0 0
tmpfs /run tmpfs defaults,nosuid,nodev,noatime,size=1G 0 0
四、存储优化
1. 文件系统优化
为文件系统启用合适的挂载选项:
nano /etc/fstab
# 为ext4文件系统优化
/dev/sda2 / ext4 noatime,errors=remount-ro 0 1
# 为btrfs文件系统优化
# /dev/sda2 / btrfs noatime,compress=zstd,space_cache=v2 0 1
2. 使用SSD优化
如果使用SSD,启用TRIM和相关优化:
# 启用TRIM
nano /etc/fstab
/dev/sda2 / ext4 noatime,discard,errors=remount-ro 0 1
# 或使用fstrim.timer(推荐)
sudo systemctl enable fstrim.timer
3. 优化swap使用
调整swap使用策略:
# 查看当前swappiness
cat /proc/sys/vm/swappiness
# 降低swappiness(减少swap使用)
nano /etc/sysctl.conf
vm.swappiness=10
vm.vfs_cache_pressure=50
五、内存和CPU优化
1. 优化内存管理
nano /etc/sysctl.conf
# 增加文件句柄限制
fs.file-max=2097152
# 提高内存映射限制
vm.max_map_count=262144
# 应用设置
sysctl -p
2. CPU频率调节
启用CPU频率调节以平衡性能和功耗:
# 安装cpupower
sudo emerge sys-power/cpupower
# 启用cpupower服务
sudo rc-update add cpupower default
# 配置cpupower
nano /etc/default/cpupower
# 桌面系统
CPUPOWER_START_OPTS="frequency-set -g performance"
# 笔记本电脑
# CPUPOWER_START_OPTS="frequency-set -g ondemand"
3. 启用NUMA支持
如果CPU支持NUMA,启用相关优化:
# 安装numactl
sudo emerge sys-process/numactl
# 查看NUMA信息
numactl --hardware
# 使用numactl运行程序
numactl --cpunodebind=0 --membind=0 command
六、网络优化
1. 调整网络缓冲区
nano /etc/sysctl.conf
# 增加网络缓冲区大小
net.core.rmem_default=262144
net.core.rmem_max=16777216
net.core.wmem_default=262144
net.core.wmem_max=16777216
# 启用TCP窗口缩放
net.ipv4.tcp_window_scaling=1
# 启用TCP快速打开
net.ipv4.tcp_fastopen=3
2. 使用更快的DNS服务器
# 编辑resolv.conf
nano /etc/resolv.conf
nameserver 1.1.1.1 # Cloudflare DNS
nameserver 8.8.8.8 # Google DNS
# 或使用systemd-resolved
# sudo emerge net-dns/systemd-resolved
# sudo systemctl enable systemd-resolved
七、应用程序优化
1. 使用轻量级应用
选择轻量级应用替代资源密集型应用:
# 轻量级终端替代konsole/gnome-terminal
sudo emerge x11-terms/alacritty
# 轻量级文本编辑器替代kate/gedit
sudo emerge app-editors/nano app-editors/vim
# 轻量级浏览器替代firefox/chrome
sudo emerge www-client/qutebrowser
2. 优化Firefox
# 启用硬件加速
# 在about:config中设置
layers.acceleration.force-enabled = true
# 启用量子渲染
layout.css.grid.enabled = true
# 减少内存使用
browser.sessionhistory.max_total_viewers = 10
3. 优化KDE Plasma
# 禁用不必要的视觉效果
系统设置 → 工作区行为 → 桌面特效 → 减少特效
# 启用文件索引但限制范围
系统设置 → 搜索 → 文件搜索 → 调整索引位置
# 优化启动应用
系统设置 → 开机和关机 → 自动启动 → 禁用不必要的应用
八、系统维护
1. 定期清理系统
# 清理旧的portage包
sudo emerge --depclean
sudo eclean-dist
sudo eclean-pkg
# 清理临时文件
sudo rm -rf /tmp/*
sudo rm -rf /var/tmp/*
# 清理日志文件
sudo journalctl --vacuum-size=100M
2. 更新系统
保持系统更新以获取性能改进和安全补丁:
# 同步并更新系统
eix-sync
sudo emerge -uDN @world
sudo emerge --depclean
sudo revdep-rebuild
3. 监控系统性能
使用工具监控系统性能并识别瓶颈:
# 安装监控工具
sudo emerge app-benchmarks/sysbench app-misc/screenfetch sys-process/htop
# 监控CPU和内存
htop
# 监控磁盘I/O
iotop
# 监控网络流量
iftop
# 系统基准测试
sysbench cpu --cpu-max-prime=20000 run
九、高级优化
1. 使用Preload
Preload可以学习并预加载常用程序到内存:
# 安装preload
sudo emerge sys-apps/preload
# 启用preload服务
sudo rc-update add preload default
2. 启用OverlayFS
使用OverlayFS加速文件系统访问:
# 在fstab中配置
/dev/sda2 / ext4 noatime,errors=remount-ro 0 1
overlay /var/lib/docker/overlay2 overlay noatime,lowerdir=/,upperdir=/var/lib/docker/overlay2,workdir=/var/lib/docker/overlay2/work 0 0
3. 使用zram
zram可以将内存压缩用作交换空间:
# 安装zram-generator
sudo emerge sys-kernel/zram-generator
# 配置zram
nano /etc/systemd/zram-generator.conf
[zram0]
zram-size = ram / 2
compression-algorithm = zstd
# 启用zram
sudo systemctl enable /dev/zram0
十、注意事项
- 稳定性优先:不要过度优化,可能导致系统不稳定
- 逐步优化:每次只进行一项优化,测试后再进行下一项
- 备份配置:修改配置文件前进行备份
- 文档记录:记录所做的优化,便于问题排查
- 根据硬件调整:不同硬件配置需要不同的优化策略
总结
Gentoo Linux的优化是一个持续的过程,通过合理配置编译选项、内核、服务和应用程序,可以显著提升系统性能。记住,优化应该根据实际需求和硬件配置进行,而不是盲目追求最高性能。
通过本文介绍的技巧,你可以打造一个既高效又稳定的Gentoo Linux系统。