目录 - [N卡动态功耗调节](性能优化.md#n卡动态功耗调节) - [显卡超频和定频降压](性能优化.md#lact进行显卡offset) - [替换zen内核](性能优化.md#安装zen内核) --- ## N卡动态功耗调节 ```bash sudo systemctl enable --now nvidia-powerd.service ``` ## LACT进行显卡offset 使用软件商城安装的 lact 即可。 ## 交换空间和zram 参考资料: > [Zram vs zswap vs swap? : r/archlinux](https://www.reddit.com/r/archlinux/comments/1ivwv1l/zram_vs_zswap_vs_swap/) | [Zswap vs zram in 2023, what's the actual practical difference? : r/linux](https://www.reddit.com/r/linux/comments/11dkhz7/zswap_vs_zram_in_2023) | [linux - ZRAM vs ZSWAP for lower end hardware? - Super User](https://superuser.com/questions/1727160/zram-vs-zswap-for-lower-end-hardware) 简单来说,硬盘 swap 交换空间会频繁的读写硬盘,导致硬盘寿命下降。故使用内存作为交换空间。有两种方法,zswap 和 zram。 zswap 依托于 swap 运行,是硬盘 swap 的缓存,还是会有硬盘读写,虽然可以关闭 zswap 的写回,但 zram 更加优雅、简洁。 zram 是把内存的一部分动态地作为 swap 交换空间,和硬盘 swap 一样都是 swap 设备。zram 占满前完全不会有硬盘 swap 的读写。 > CachyOS已默认启用zram,无需再手动设置zram,建议保持CachyOS的默认设置 ### 不需要睡眠的话删除硬盘swap后开启zram 1. 关闭 swap ```bash sudo swapoff /swap/swapfile ``` 2. 删除 swap 文件 ```bash sudo rm /swap/swapfile ``` 3. 编辑 fstab ```bash sudo vim /etc/fstab ``` 注释掉 swap 相关的内容。 ### zram内存压缩 1. 安装 zram-generator ```bash sudo pacman -S zram-generator ``` 2. 编辑配置文件 ```bash sudo vim /etc/systemd/zram-generator.conf ``` ```ini [zram0] zram-size = ram compression-algorithm = zstd ``` `zram-size` 设置最多存储多少数据,注意这里设置的是压缩之前的大小。 `compression-algorithm` 这一行设置使用 zstd 算法。 3. 禁用 zswap ```bash sudo vim /etc/default/grub ``` ```text # 在 GRUB_CMDLINE_LINUX_DEFAULT="" 里写入 zswap.enabled=0 GRUB_CMDLINE_LINUX_DEFAULT="... zswap.enabled=0 ..." ``` 4. 重新生成 GRUB 的配置文件 ```bash sudo grub-mkconfig -o /boot/grub/grub.cfg ``` 5. reboot 6. 验证 zswap 是否关闭 ```bash sudo grep -R . /sys/kernel/debug/zswap/ ``` 7. 验证 zram 是否开启 ```bash sudo zramctl 或者 swapon ``` ## 安装zen内核 ps:会导致功耗略微增加。 1. 安装内核和头文件 ```bash sudo pacman -S linux-zen linux-zen-headers ``` 2. 可选:安装 DKMS 显卡驱动 如果你是 N 卡且之前安装的是 nvidia-open 而不是 -dkms 后缀的驱动包的话需要换成 -dkms 后缀的驱动包。 ```bash sudo pacman -S nvidia-open-dkms ``` 3. 重新生成 GRUB ```bash sudo grub-mkconfig -o /boot/grub/grub.cfg ``` 4. 重启 ```bash reboot ``` 第一次启动时可能要在 GRUB 的 Arch advance 启动项里选择 zen 内核的启动项。 下一节:[小技巧](小技巧.md) ---