ALHP:优化你的archlinux性能
chatdeprime
编辑于 2023年09月18日 04:18

什么是ALHP?我是否应该尝试?

    ALHP 是一个旨在提高arch linux(一个小有名气的GNU/Linux操作系统)性能的项目。它达到这一目的方式是通过启用不同的x86_64微架构等级优化、-O3编译参数以及LTO优化重新编译了archlinux的 [core]、[extra]、[multilib]软件仓库仓库。它在自动编译这些包后将他们的版本号增加了0.1,这样当用户把ALHP的仓库加入到pacman源后,pacman将优先安装ALHP的“较高版本”的包而不是官方源里的包,从而让用户使用这些根据更优编译参数编译好的程序。

    简而言之,这是一个针对arch linux的性能优化项目。非arch的其他发行版强烈不建议使用(比如 某些arch衍生发行版)。这通常会引发库版本混乱的问题。

    如果你在一些arm设备上用arch linux arm(或者其他的什么cpu架构 e.g. riscv、loongson)那么这个东西和你无缘,因为ALHP只为x86_64构建了包。

    如果你在用archlinux,那么我非常推荐你试一下,但需要指出的是:ALHP目前中国镜像不那太好用,在更新系统时会慢亿点点(我这边实测不用魔法有一次更了半个小时)。(如果你会魔法🧙,那这可能不是什么问题)

    永远不要在你的U盘上尝试ALHP。(显然ALHP需要你的系统启动的机器上cpu不能变)

    我发现archlinux在B站具有一定的热度,但还没有人在这里分享过ALHP(截至本专栏发布时),所以写了这篇专栏分享一下。(本来想发视频 但最近比较忙没时间qwq)

    基于本专栏的读者群体,我在此假定您已经了解了arch linux的滚动更新机制并且有足够的计算机知识以支持您能力手动安装一次archlinux。

如何使用ALHP?

  1.检查你的cpu微架构等级

        x86_64被划分为多个微架构等级( x86-64 feature levels),其主要差异在于扩展的指令集支持。要检查你的cpu支持的微架构等级,需要通过指令

/lib/ld-linux-x86-64.so.2 --help

对于结果中受支持的等级 会标注(supported, searched)。

        比如在我这里 结果为:

这说明我的cpu(R7-4800H)最高支持x86-64-v3。

        这里的结果要记住,后面会用到。这里如果看错了,后面可能会导致你更新后系统无法启动。

        需要注意的是,这个结果在不同cpu上是不一样的。使用alhp后一定要注意不要随便复制粘贴配置文件或者不要装在移动硬盘上

        如果您的cpu只支持x86-64-v1,那么恭喜您,你直接用官方源就行了,您的cpu不支持任何x86扩展指令集,您可以不用折腾了。

  2.安装密钥和镜像列表

        这些东西在AUR上有打包 在这里可以使用你的aur助手来安装它们,比如使用paru时,需要键入一下指令

paru -S alhp-keyring alhp-mirrorlist

  3.启用ALHP

        在你的/etc/pacman.conf中服务器镜像源这里添加

[core-x86-64-v3]

Include = /etc/pacman.d/alhp-mirrorlist

[extra-x86-64-v3]

Include = /etc/pacman.d/alhp-mirrorlist

        这些内容应当在[core]、[extra]、[community]上方,否则pacman还是会优先从官方仓库的镜像下载这些包。

        如果你的cpu微架构等级不是x86-64-v3,则使用你所支持的最高微架构等级替代上面的"x86-64-v3"。

        目前ALHP还没有为x86-64-v4编译包。

        如果你需要开启32位应用程序的alhp支持(据我所知,这主要发生在你需要用wine跑32位windows程序时),你还需要在/etc/pacman.conf中添加

[multilib-x86-64-v3]

Include = /etc/pacman.d/alhp-mirrorlist

        做完这些以后,你已经配置好了alhp。修改完镜像站(可选)后更新即可使用到alhp优化后的软件包

  4.镜像

        更改/etc/pacman.d/alhp-mirrorlist,操作和换源时更改/etc/pacman.d/mirrorlist的操作一样,国内默认的cloudflare就是非魔法最适合的源了,不用做任何改动。

        虽然国内有上海科大的镜像,但据我的使用体验,这个镜像有时候不是那么稳定,故不推荐。

  5.更新

pacman -Syu

        arch linux 下的常规操作

如何禁用ALHP?

        如果不会魔法的你实在忍受不了缓慢的更新速度想要禁用ALHP,只需把/etc/pacman.conf中的ALHP源的内容删掉并删除alhp-keyring 和 alhp-mirrorlist然后用pacman -Syuu更新

END

    总的来说,alhp确实有很大作用(主要是性能方面)。在我看来,它是我选择archlinux的一大原因。如果你在使用中遇到了意料之外的问题,我可能无法第一时间恢复,因为我近期真的很忙。但我愿意在空余时间帮助大家解决问题。限于我的水平,专栏如有问题欢迎各位伙伴指出。希望这期专栏有帮助到你。