Ubuntu 将重新设计 Initram 虚拟文件系统的压缩策略,将成为linux下最好用最棒棒的文件系统


此前,Ubuntu 将其 Initramfs 的压缩算法从 LZ4-9 (LZ4 压缩算法最高等级)改成了 Zstd -19 (Zstd 压缩算法最高等级)。然而 12月9日,Canonical 公司的 Julian Andres Klode 提出,Zstd -19 压缩等级导致 Initramfs 出现非常严重的解压时间和内存消耗问题,目前他正在努力进行测试,以为 Ubuntu 重新设计恰当的 initramfs  压缩策略。

Initramfs 全称 init ram filesystem ——是 Linux 一种基于内存的虚拟文件系统:先把目标 root 目录以压缩的 cpio 格式存放。然后 Linux 系统启动时会把 Initramfs 文件解压缩,根据解压出来的文件类型/目录来加载真实的文件系统。一些 Linux 系统如果因非正常关机造成文件系统损坏,则再次开机时会停留 Initramfs 的解压阶段不能正常启动图形化界面。

关于 Initramfs 我们介绍到这,既然 Initramfs 涉及到压缩和解压缩,那压缩算法对它的加载速度影响就非常大。Ubuntu 将压缩算法改成  Zstd-19 后出现解压速度慢和内存消耗大的问题,对低端设备或者嵌入式硬件非常不友好,比如只有 512MB RAM 的 Raspberry Pi Zero(树莓派-zero),就老是崩溃。

为了搞清楚不同压缩等级所需的时间/内存,Canonical 公司的 Julian Andres Klode 做了不同压缩等级的测试。

在 ThinkPad T480s 桌面:

压缩等级用户态时间实耗时间 内存消耗压缩文件大小
lz4-99.65s11.09s12M64M
Zstd-15.69s6.99s24M57M
Zstd-612.59s8.58s99M47M
Zstd-1219.85s10.85s249M41M
Zstd-19 71.29s  26.95s 519M 35M
测试结果

在 树莓派 Pi 4 (arm64)的测试:

压缩等级用户态时间实耗时间 内存消耗压缩文件大小
lz4-921.10s 64.85s21M29M
Zstd-113.73s44.55s21M27M
Zstd-626.07s49.09s91M24M
Zstd-1248.18s54.67s203M22M
Zstd-19 130.07s92.80s350M20M
测试结果

从测试结果的时间和内存消耗来看,即使是最低级的 Zstd-1,也比最高等级的 lz4 算法要优秀得多,因此选择 Zstd 算法肯定是对的,问题就出在最高级的 Zstd-19 ,它对压缩效果的提升并不大,所需的时间和内存却大幅增加。

基于此测试结果,Julian Andres Klode  提出自适应压缩级别的思路:在 512 MB 及以下内存的硬件使用 Zstd-1 ,在 2 GB 及以下内存的设备上使用 Zstd-6,其余设备则使用 Zstd-12。如此一来,所有搭载 Unbuntu 设备的 Initramfs 都只会占用 5% 左右的内存,降低压缩级别还能让有快速 I/O 的硬件开机时间减少几分之一秒,岂不美哉?

新的 Initramfs 压缩策略最晚应该会在 Ubuntu 22.04  发布,22.04 是一个长期支持的版本(LTS),大概在明年 2 月冻结新特性,3 月底发测试版。

后续更新:

  • 在 Julian Andres Klode 提出“按内存决定压缩等级”的想法后,同属 Canonical 公司的 Heinrich Schuchardt 作了一些回应:设备内存只是问题之一,还要考虑 Cpu 性能等其他因素,比如 SiFive 的 Unmatched 和树莓派 4 这两款板子,虽然有 8G 内存,但是 CPU 性能拉跨,这种设备也应该使用低级的压缩算法。
  • ...后面有很多人参与讨论,涉及到对 I/O 的速度、开销,压缩算法边际收益等等的讨论,俺就不一一列举了,感兴趣的话可以从 Julian 的《重新评估默认的 initramfs 压缩》邮件开始阅读。

相關推薦

2022-01-13

Ubuntu 已经支持 Raspberry Pi(树莓派)4 Model B 的 4GB 和 8GB 内存版本(自 Ubuntu 20.10 版本支持)。现在 Ubuntu 团队计划进一步降低 Ubuntu 的硬件门槛,让即将发布的 Ubuntu 22.04 LTS 版本能在只有 2MB RAM 的Raspberry Pi 4 上运行。 然而

2022-11-24

虚拟化环境 Linux 发行版。Proxmox VE 基于 Debian,使用基于 Ubuntu 的定制内核,包含安装程序、网页控制台和命令行工具,并且向第三方工具提供了 REST API。Proxmox VE 支持两类虚拟化技术:基于容器的 LXC(自 4.0 版开始,3.4 版及以前

2022-01-05

,比如 Canonical 。据外媒 Phoronix 报导,Canonical 正在招聘 Ubuntu 桌面游戏产品经理,意图通过和一些对游戏有所了解的产品经理的合作,赶上 V 社这股 Linux 游戏的东风。从 Canonical 的介绍来看, Ubuntu 似乎要发力了: 我们将使

2024-04-04

隐藏的后门,而 liblzma 是 xz 的一部分,恰好也是 Debian、Ubuntu、Fedora 和其他基于 systemd 的 Linux 系统上的 OpenSSH sshd 的依赖项。 该后门会监视攻击者在 SSH 会话开始时发送的隐藏命令,从而使攻击者能够在目标系统上运行任意命

2022-04-25

格式的通用替代品。 JPEG 是指联合影像专家小组,它是设计该格式的委员会。 X 是指自 2000 年以来的几个 JPEG 标准的名称的一部分: JPEG XT 、 JPEG XR 、JPEG XS 。 L 代表长期,因为创建这种格式的意图是替换旧的 JPEG 文件格式

2022-10-15

处理器 —— Ryzen 9 7950X,他们将测试微软 Windows 11 22H2、Ubuntu 22.04.1 LTS 和即将推出的 Ubuntu 22.10 在该处理器下的性能基准测试。 此次测试的系统如下: Windows 11 Pro 22H2 Ubuntu 22.04.1 LTS Ubuntu 22.10 "Kinetic Kudu" + Linux 5.19 Ubuntu 22.1

2023-01-19

根据当下的时间自动调整;系统通知的样式也经过调整和重新设计,提供更统一的视觉感受。 虚拟桌面管理 FydeOS v16 提供更完善的虚拟桌面控制和管理能力。现在你可以保存当前桌面的所有应用程序以及浏览器打开的标

2022-04-04

计划,新版本主要聚焦于以下变更: 强调色和 Libadwaita 重新着色 API 库有助于定义 GNOME 应用程序的视觉语言和用户体验,使实现一个重要的个性化功能变得简单:可定制的强调色。 CHRIS DAVIS 计划在不久的将来向 xdg-desktop-portal

2021-11-16

indows 11 Pro Build 22000 系统 参与测试的 Linux 系统: Ubuntu 21.10 + Linux 5.16 Git Ubuntu 21.10 + Linux 5.15 Ubuntu 21.10 Clear Linux 35250 Fedora Workstation 35 此次一共进行了 104 项测试,其中包括浏览器基准测试、视频编码、图像编码和

2022-05-19

建设 开源代码无国界,开源企业有国界 俄乌冲突后,Ubuntu 开发商 Canonical 宣布对俄罗斯企业停止支持和专业服务。这不是第一家在“危机时刻”按下“暂停键”的开源操作系统及社区, 今年 3 月初,SUSE 和 RedHat 也先后宣

2023-06-16

Canonical 今天宣布,Ubuntu 22.10(Kinetic Kudu)操作系统版本将于 2023 年 7 月 20 日达到生命周期结束,并敦促用户尽快将其系统升级到最新的 Ubuntu 23.04(Lunar Lobster)版本。 Ubuntu 22.10 于 2022 年 10 月 20 日发布,它是一个短期支持版

2023-01-12

升级了安装界面的交互) Linux 一键安装包(适用于Ubuntu17+,centos7.x) 64位  注:Linux 一键安装包必须直接解压到 /opt 目录下。 低版本 Linux 一键安装包(适用于ubuntu16及以下版本、centos7.3及以下版本) 64位

2022-08-09

Rescuezilla 是基于 Ubuntu 的专业 Linux 发行版,主要用于系统修复等救援工作。它有极其易于使用的图形环境,包括完整的系统备份、裸机恢复、分区编辑、取消删除文件、Web 浏览等功能。 目前,Rescuezilla 2.4 发布了,该版本带来

2022-10-01

Ubuntu 22.10 Beta 现已可供下载,最终稳定版将于 10 月 20 日发布。此版本具体更新内容包括: 最新的 GNOME 43 版本将Kinetic与它的大部分主要新功能结合起来。有一个新的“快速设置”,可以更轻松地管理日常系统任务;调整