Thursday 30 May 2019

Re: Supporting LZ4 as initramfs compressor

On Thu, May 30, 2019 at 11:35:26AM +0100, Dimitri John Ledkov wrote:
> I see a lot of code in livecd-rootfs that tries hard to use lzma
> compression for the initaller (first-boot) initrd.
> On the classic, subsequent initrds get rebuild as gzip, and on core
> lzma persists.
> I do wonder what compression we should use by default for the
> installer media, Ubuntu Core, cloud images.

> Is the rationale for lzma installer initrds still valid? And what was
> it? Smallest size initrd?

Yes, the rationale for using lzma on installer images was to prioritize size
over speed, because of fixed size limits for the installer image.

At the time this was implemented, we were still fitting the Ubuntu Desktop
installer onto a CD.

So this is definitely a decision that is subject to review.

> > On 19/03/18 14:59, Balint Reczey wrote:
> > > Hi,
> > >
> > > Initramfs-tools uses gzip compression by default which served us well
> > > for quite some time but LZ4 offers way faster decompression while
> > > making a only slightly bigger initramfs files.
> > >
> > > On my old laptop the initramfs extraction time decreased from ~1.2s to ~0.24s:
> > > (with lz4)
> > > kernel: [ 0.297726] Unpacking initramfs...
> > > kernel: [ 0.535061] Freeing initrd memory: 77940K
> > > kernel: [ 0.301637] Unpacking initramfs...
> > > kernel: [ 0.539109] Freeing initrd memory: 77940K
> > > (with gzip)
> > > kernel: [ 0.273748] Unpacking initramfs...
> > > kernel: [ 1.490066] Freeing initrd memory: 57140K
> > > kernel: [ 0.281729] Unpacking initramfs...
> > > kernel: [ 1.498493] Freeing initrd memory: 57140K
> > >
> > > The increase in the initrd.img size is ~14%:
> > > (lz4)
> > > -rw-r--r-- 1 root root 66709065 márc 19 14:24
> > > /boot/initrd.img-4.15.0-12-generic
> > > (gzip)
> > > -rw-r--r-- 1 root root 58510993 márc 19 12:57
> > > /boot/initrd.img-4.15.0-12-generic.bak
> > >
> > > Initramfs creation speed also improved a bit from ~24s to ~21s wall clock time:
> > > (lz4)
> > > update-initramfs: Generating /boot/initrd.img-4.15.0-12-generic
> > > 14.97user 6.31system 0:20.47elapsed 103%CPU (0avgtext+0avgdata
> > > 22368maxresident)k
> > > update-initramfs: Generating /boot/initrd.img-4.15.0-12-generic
> > > 15.18user 6.49system 0:20.48elapsed 105%CPU (0avgtext+0avgdata
> > > 22308maxresident)k
> > > (gzip)
> > > update-initramfs: Generating /boot/initrd.img-4.15.0-12-generic
> > > 18.23user 6.77system 0:23.61elapsed 105%CPU (0avgtext+0avgdata
> > > 22396maxresident)k
> > > update-initramfs: Generating /boot/initrd.img-4.15.0-12-generic
> > > 18.38user 6.83system 0:23.82elapsed 105%CPU (0avgtext+0avgdata
> > > 22292maxresident)k
> > >
> > > Base on the results I plan adding LZ4 compression support to
> > > initramfs-tools as requested in LP: #1488620 [1] in the next days
> > > without setting it as default and I propose setting LZ4 as default for
> > > 18.10.
> > >
> > > I'm aware of the old problem of /boot filling up with kernels and
> > > initramfs files but unattended-upgrades already removes old kernels
> > > [2] and update-manager is planned to do the same starting with 18.04
> > > [3] thus Ubuntu systems will have enough space in /boot to allow
> > > slightly bigger initrd files.
> > >
> > > Cheers,
> > > Balint
> > >
> > > [1] https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1488620
> > > [2] https://launchpad.net/ubuntu/+source/unattended-upgrades/1.0ubuntu1
> > > [3] https://code.launchpad.net/~rbalint/update-manager/remove-autoremovable-kernels/+merge/341599
> > >
> >
> >
> > --
> > ubuntu-devel mailing list
> > ubuntu-devel@lists.ubuntu.com
> > Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel
>
>
>
> --
> Regards,
>
> Dimitri.
>
> --
> ubuntu-devel mailing list
> ubuntu-devel@lists.ubuntu.com
> Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel

--
Steve Langasek Give me a lever long enough and a Free OS
Debian Developer to set it on, and I can move the world.
Ubuntu Developer https://www.debian.org/
slangasek@ubuntu.com vorlon@debian.org