如何在 Ubuntu Linux 上配置 ZRAM

虽然 ZRAM 是一个绝佳的解决方案,可以用一些 CPU 马力来获得更多 RAM,但如何配置它以将更多或更少的 RAM 专用于 ZRAM?如何更改压缩算法?在什么情况下值得进行此类更改?继续阅读以了解如何在 Ubuntu 上配置 ZRAM。

检查您当前的 ZRAM 状态

大多数人通过 zram-config 脚本在 Ubuntu 和基于 Debian 的 Linux 发行版上使用 ZRAM。这是因为它允许您以最直接的方式利用 ZRAM。您可以使用以下命令安装它:

接下来,检查您的 Ubuntu 计算机中是否已启用 ZRAM。您可以通过运行 zramctl 实用程序来做到这一点:

确保您的系统当前已禁用 Zswap:

Zswap 是一种替代 RAM 缓存解决方案,与 ZRAM 类似,每个 Linux 发行版都默认附带该解决方案。然而,与 ZRAM 不同的是,它依赖于物理交换分区,这意味着它在旧磁盘上可能会很慢。

重新启动计算机以在 Ubuntu 系统中创建初始 ZRAM 块设备。

了解正确的 ZRAM 设置

当您的计算机备份并运行时,检查它现在是否报告 ZRAM 分区:

显示可用交换文件和 ZRAM 块设备的终端。

您可以在我们的屏幕截图中看到与单个 ZRAM 块设备共存的典型交换文件。对此,我的系统有 4GB RAM 和 2GB ZRAM,这是我们 RAM 量的一半。但是,根据您的工作负载,您可能需要更改该大小。

  • 如果您正在处理多媒体和视频,它们的压缩性不是很好,因此最好减小 ZRAM 的大小并增加实际交换的大小。
  • 如果您正在使用大型数据库或高度可压缩的其他类型的数据,则情况恰恰相反。在这种情况下,您可以通过增加 ZRAM 的大小来提高计算机的响应速度。

另一个值得研究的调整与 ZRAM 使用的压缩算法有关。默认情况下,它使用LZO或LZO-RLE,这对CPU来说很轻。不过,在现代 CPU 上,较新的 ZSTD 算法通常会提供更好的压缩率,并且不会感觉到它对 CPU 造成的较高负担。如果您的电脑使用时间不到十年,那么值得使用此算法而不是较旧的 LZO 变体。

更改 ZRAM 大小

要更改 ZRAM 设置,您必须在“/usr/bin”文件夹中编辑其执行脚本。在终端中输入以下命令:

滚动浏览“init-zram-swapping”脚本并找到以mem.

终端突出显示 zram 交换脚本内的 mem 变量。

这定义了内核将为 ZRAM 块设备分配多少空间。默认情况下,它保留系统物理内存的一半。您可以通过将“1024”替换为“512”来将其减少到四分之一。

突出显示 mem 变量的较低内存偏移量的终端。

您还可以通过将 mem 值设置为“1536”来增加 ZRAM 占用的内存量。这会将四分之三的物理内存分配给 ZRAM。

终端突出显示 mem 变量的较高内存偏移量。

更改 ZRAM 压缩算法

您还可以从同一位置更改 ZRAM 的压缩算法。为此,请打开一个新的终端会话,然后列出 ZRAM 的所有可用压缩算法:

显示 ZRAM 模块所有可​​用压缩算法的终端。

您可以在高级自定义 ZRAM 配置中混合和匹配算法。但是,如果您使用默认值,所有 ZRAM 分区将使用相同的算法。

返回到我们之前编辑的“init-zram-swapping”执行脚本。在那里,找到以下行:

将其复制并直接粘贴到下面,以便您拥有同一命令的两个实例。

终端突出显示 ZRAM 块设备的重复 echo UNIX 管道。

$mem将行开头的第一个实例替换为“zstd”。

终端突出显示第一个 echo UNIX 管道的 zstd 字符串。

将行尾从“disksize”更改为“comp_algorithm”。

终端突出显示第一个 echo UNIX 管道的 comp_algorithm 字符串。

保存调整后的“init-zram-swapping”文件,然后重新启动计算机。

通过运行命令检查新的 ZRAM 设置是否正常工作zramctl

显示使用更大内存基础和不同算法的 ZRAM 块设备的终端。

当系统主动使用调整后的交换时,请务必检查系统在负载下的性能。如果您感觉它嘎嘎作响或结结巴巴,您可能做得太过分了,需要调低您选择的值。另一方面,如果它在飞行,你可能可以再增加一些。

配置系统的 ZRAM 只是优化 Ubuntu 系统的第一步。了解如何通过在 Ubuntu 上编译您自己的 Linux 内核来充分发挥计算机的性能。同时,如果您希望构建更强大的 PC,那么构建 Linux PC 时需要注意以下事项。

图片来源:Liam Briese,来自 Unsplash。所有修改和屏幕截图均由 Ramces Red 进行。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注