如何在 Ubuntu 计算机上配置 ZRAM

虽然 ZRAM 是一种出色的解决方案,可以用一些 CPU 马力换取更多 RAM,但您如何配置它以将更多或更少的 RAM 专用于 ZRAM? 如何更改压缩算法? 在什么情况下这样的改变是值得的? 继续阅读以了解如何在 Ubuntu 上配置 ZRAM。

检查您当前的 ZRAM 状态

大多数人通过 zram-config 脚本在他们的 Ubuntu、Mint 或其他兼容发行版上使用 ZRAM。 那是因为它允许您以最直接的方式利用 ZRAM。 您可以使用以下命令安装它:

它的默认值将 ZRAM 设置为计算机实际 RAM 的一半,分成多个分区,一个用于 CPU 的每个内核。 您可以通过以下方式查看:

在 Ubuntu Cat Proc Swaps 上配置 Zram

您可以在我们的屏幕截图中看到一个典型的交换文件(“/var/cache/swap/swapfile”条目)与八个 ZRAM 卷共存。 我的系统有 8GB 的​​ RAM。 如果将这些 ZRAM 卷加在一起,总和为 4GB,这是我们 RAM 量的一半。 但是,根据您的工作量,您可能需要更改该大小。

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

另一个值得研究的调整与 ZRAM 使用的压缩算法有关。 默认情况下,它使用 LZO 或 LZO-RLE,这在 CPU 上是轻量级的。 然而,在现代 CPU 上,较新的 ZSTD 算法通常提供更好的压缩率,并且感觉不到它对 CPU 的较高开销。 如果您的 PC 不到十年,则值得使用此算法而不是较旧的 LZO 变体。

您可以使用 zramctl 命令来检查 ZRAM 当前使用的算法。 类型 zramctl 在终端中并按 Enter 查看您的 ZRAM 交换。

在 Ubuntu Zramctl 上配置 Zram

Zramctl 应该已经在您的发行版中可用。 如果不是,因为它是 util-linux 软件包的一部分,您可以通过以下方式将其加入:

但是,要控制 ZRAM 的工作方式,您必须调整其主脚本。 让我们从更改它使用的 RAM 数量开始。

更改 ZRAM 大小

要更改 ZRAM 设置,您必须在 bin 文件夹中编辑其 exec 脚本。 在终端中键入以下命令:

在 Ubuntu Nano 上配置 Zram 初始化 Zram 交换

要更改 ZRAM 使用的 RAM 量,您必须编辑以下行:

在 Ubuntu 上配置 Zram 编辑初始化 Zram 交换

此行根据一些简单的计算定义了 ZRAM 将使用多少 RAM:

  1. totalmem 是您 PC 上安装的 RAM 量
  2. /2 将 totalmem 除以 2,转换为“RAM 总量的一半”
  3. / ${NRDEVICES} 将该数字除以 PC 上的内核数
  4. * 1024 将上述结果乘以 1024

您不能也不应该更改第 1 点和第 3 点中的任何内容,但您可以使用第 2 点和第 4 点中的值来调整 ZRAM 使用的 RAM 量。

  • 通过增加 / 2/ 4,您的 RAM 总量将除以四而不是二。 因此,ZRAM 将只使用您的 RAM 的四分之一而不是一半。 我们建议不要将整个 RAM 专用于 ZRAM,因此最好将此值保留为 / 2 如果您希望 ZRAM 使用更少的内存,请增加它。
在 Ubuntu 上配置 Zram 增加 Ram 使用
  • 同样,通过保持 / 2 但减少 1024512,您将获得相同的结果,因为您将每个设备的可用 RAM 减半。 如果您想让 ZRAM 使用更多 RAM,您可以将此值增加到 1536 反而。

更改 ZRAM 压缩算法

您可以从同一位置更改 ZRAM 的压缩算法。

首先,检查它当前使用的压缩算法:

您可以在高级自定义 ZRAM 配置中混合和匹配算法。 但是,如果您使用默认值,所有 ZRAM 分区将使用相同的算法。 因此,您不必检查所有这些 – 在上面的命令中,我们只检查第一个。

在 Ubuntu 上配置 Zram 检查压缩算法

我们已经在使用 ZSTD 算法,您可以在上面的屏幕截图中看到用括号括起来的算法。 现在,这被认为是压缩率、速度和资源需求之间的最佳解决方案,因此请保持原样。 但是,如果您使用默认值,您将启用 LZO 或 LZO-RLE。 要更改它,请返回到我们之前编辑的 init-zram-swapping exec 脚本。 在那里,找到以下行:

复制它,然后将其直接粘贴到下面,这样您就有了相同命令的两个实例。 这一行将我们之前看到的计算结果指定为每个 ZRAM 卷的大小。 但是,我们将使用它来定义压缩算法。

  1. 代替 $mem 在第一个实例中,在该行的开头 zstd.
  2. 代替 disksize 在该行的末尾 comp_algorithm.

调整后的行应如下所示:

在 Ubuntu Echo Zstd 上配置 Zram

我们调整后的线路呼应 zstd 作为参数中的值 comp_algorithm 反而。

如果你想使用不同的算法,改变 zstd 在上面的命令中使用算法的名称。

Save 调整后的文件,重新启动计算机,然后检查结果。

在 Ubuntu 上配置 Zram Zramctl 再次检查交换

确保在系统主动使用调整后的交换时检查系统在负载下的性能。 如果您觉得它卡住或结结巴巴,您可能做得过火了,需要调低您选择的值。 另一方面,如果它在飞行,您可能可以再增加一些。

既然您已经知道如何在 Ubuntu 中配置 ZRAM,那么如果您希望构建更强大的 PC,那么在构建 Linux 的 PC 时需要注意以下事项。

订阅我们的新闻!

我们的最新教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅