kledgeb UbuntuやLinuxの最新情報を紹介

Ubuntu 22.04 その14 - initramfsのデフォルトの圧縮形式を再検討

initramfsのデフォルトの圧縮形式を再検討

「initramfs」に使用するデフォルトの圧縮形式が再検討されています。


  • Revisiting default initramfs compression

LZ4からZstdに変更した

「initramfs」に使用するデフォルトの圧縮形式が「lz4 -9」から「zstd -19」へ変更されましたが、これにより以下の問題が引き起こされました。

  1. アーカイブの処理が非常に遅い
  2. アーカイブの処理に多くのメモリーが必要

「1.」の問題は「zstd -19」を採用するすべての環境で影響を受けます。
「2.」の問題は「Raspberry Pi Zero」のようなメモリー搭載量が少ない環境でメモリー不足によるクラッシュを引き起こします。

圧縮形式と圧縮レベルのテスト

「Ubuntu」の開発者は問題を共有するため、アーカイブの処理にかかる時間、アーカイブの処理時の消費メモリー、そしてアーカイブサイズの3つの観点から、圧縮形式と圧縮レベルのテストを行いました。

Ubuntu Desktop 22.04 LTS 開発版(amd64)

以下の結果は「Ubuntu Desktop 22.04 LTS 開発版(amd64)」で行われたテストの結果です。

圧縮形式/圧縮レベル ユーザータイム 経過時間 メモリー ファイルサイズ
lz4 9.65秒 11.09秒 12MB 64MB
-1 5.69秒 6.99秒 24MB 57MB
-6 12.59秒 8.58秒 99MB 47MB
-12 19.85秒 10.82秒 249MB 41MB
-19 71.29秒 26.95秒 519MB 35MB

ファイルサイズとリソース消費量のバランスから「-12」付近の圧縮レベルが妥協点になるのではないかとのことです。

Ubuntu 20.04 LTS(arm64/Raspberry Pi 4)

以下の結果は「Ubuntu 20.04 LTS(arm64/Raspberry Pi 4)」で行われたテストの結果です。
時間の計測対象は「mkinitramfs」のみが対象です。
「update-initramfs」ではファームウェアのコピーなど追加処理により、もっと多くの時間がかかります。

圧縮形式/圧縮レベル ユーザータイム 経過時間 メモリー ファイルサイズ
lz4 21.10秒 64.85秒 21MB 29MB
-1 13.73秒 44.55秒 21MB 27MB
-6 26.07秒 49.09秒 91MB 24MB
-12 48.18秒 54.67秒 203MB 22MB
-19 130.07秒 92.80秒 350MB 20MB

「-6」がいい感じであるとのことです。

適応圧縮を活用できないか?

「Zstd」は「適応圧縮(Adaptive compression)」をサポートしており、I/O速度による影響を加味しながら圧縮レベルを調整する機能を提供しています。
例えば「Raspberry Pi」のようにI/Oが遅い環境ではCPUのアイドル時間を抑えるため、より高い圧縮レベルが選択されるでしょう。
この機能を本件に活用できないか検討が提案されています。

メモリー搭載量に応じて圧縮レベルを調整する?

メモリー搭載量に応じて圧縮レベルを調整する方法も提案されています。
例えばメモリー搭載量の5%以内に抑えるなら、以下のような調整になります。

  1. メモリー搭載量が「512MB」以下なら「-1」
  2. メモリー搭載量が「2GB」以下なら「-6」もしくは「--adapt=min=1,max=6」
  3. それ以外なら「-12」もしくは「--adapt=min=12」

本件の解決に向けどのような方針や取り組みが好ましいのか、上記リンク先で議論が行われています。

Ubuntu
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 26.04 その42 - Ubuntu 26.04.1 LTS のリリーススケジュール
    Ubuntu 26.04.1 LTSのリリーススケジュール Ubuntu 26.04.1 LTS のリリーススケジュールを紹介します。
  • Ubuntu 26.04 その68 - Ubuntu 26.04.1 LTS がリリースされました・ディスクイメージのダウンロード
    Ubuntu 26.04.1 LTS リリース 2026年8月27日、Ubuntu 26.04.1 LTS がリリースされました。
  • Linux Mint その292 - Linux kernel 7.0 採用の Linux Mint 22.3 リリース・システム管理ツールにカーネル管理機能追加など
    Linux Mint 月刊ニュース Linux Mint 開発チームは Linux Mint 月刊ニュースにて、Linux Mint の開発状況や取り組みを紹介しています。
  • Linux その422 - GNOME Boxes の再構築と未来・Flatpak のみの提供やモダンな機能の実装など
    GNOME Boxes の再構築と未来 GNOME Boxes の再構築と未来が以下で紹介されています。
  • Kubuntu その117 - Kubuntu 26.04 LTS にもっと手厚いサポートを・最高の信頼性を誇る KDE 搭載ディストリビューションを目指して
    最高の信頼性を誇る KDE 搭載ディストリビューションを目指して Kubuntu 26.04 LTS に手厚いサポートが導入されました。
  • Linux その421 - GNOME Shell のデザイン構想と長期的な見通し
    GNOME Shell のデザイン構想と長期的な見通し GNOME Shell のデザイン構想と長期的な見通しが、以下で紹介されています。
  • Linux その420 - KDE Plasma で実装予定の新機能や改善・UI レイアウトの調整やリモートデスクトップの改善など
    KDE Plasma で実装予定の新機能や改善 KDE Plasma で実装予定の新機能や改善を紹介します。
  • Ubuntu 24.04 その96 - Ubuntu 24.04.5 LTS のリリース日変更
    Ubuntu 24.04.5 LTS のリリース日変更 Ubuntu 24.04.5 LTS のリリース日が変更されました。
  • Ubuntu 18.04 その195 - PolicyKitにクラッシュや権限の昇格など複数の脆弱性・今すぐアップデートを
    PolicyKitの脆弱性 2018年7月16日、クラッシュや権限の昇格など複数の脆弱性に対応した「PolicyKit」がリリースされました。
  • Linux その426 - GNOME 向けアプリとアップデートの紹介・AI アシスタントアプリやメールスイートなど
    GNOME 向けアプリとアップデートの紹介 GNOME 向けアプリとアップデートの紹介です。
記事のピックアップ
オプション