Fedora 23 cloud image (and, for that matter, minimal anything) bloat

Pádraig Brady P at draigBrady.com
Mon Sep 21 16:36:29 UTC 2015


On 21/09/15 16:07, Matthew Miller wrote:
> Fedora-Cloud-Base-20141203-21.x86_64.qcow2:       151M  
> Fedora-Cloud-Base-23_Beta-20150915.x86_64.qcow2:  275M
> 
> In just one year — 82% more awesome? 
> 
> I'd really like this to stay below 200MB as a competitive threshold.
> Or, if we're going to be bigger than that, be bigger for REASONS, not
> just accretion.
> 
> tl;dr: grub2 is a lot to blame, but there seem to be some new
> questionable dep chains from systemd, and general dep growth across the
> board.
> 
> 
> Disk use at first boot:
> 
>   [f21]$ df -h  /
>   Filesystem      Size  Used Avail Use% Mounted on
>   /dev/vda1        20G  359M   19G   2% /
> 
>   [f23b]$ df -h  /
>   Filesystem      Size  Used Avail Use% Mounted on
>   /dev/vda1        20G  578M   19G   4% /
> 
> RPMs installed:
> 
>   [f21]$ rpm -qa | wc -l
>   226
> 
>   [f23b]$ rpm -qa | wc -l
>   264
> 
> Top 20 rpms by reported size:
> 
>   $ rpm -qa --qf '%{size} %{name}\n'|sort -nr|head -20
>   120417342 glibc-common
>   42307839 kernel-core
>   25000497 python-libs
>   22438155 systemd
>   14623272 coreutils
>   14000291 glibc
>   11282056 ruby-libs      # hey, at least we lost this
>   10845519 glib2
>   10593004 selinux-policy-targeted
>   9389116 cracklib-dicts  # https://bugzilla.redhat.com/show_bug.cgi?id=865521
>   9078043 python-boto
>   8792531 util-linux
>   7084188 bash
>   6669884 gnupg2
>   5844544 yum
>   4893790 policycoreutils
>   3786564 file-libs
>   3540004 shadow-utils
>   3458312 groff-base      # who doesn't love groff?
>   2997717 tar
> 
> 
>   $ rpm -qa --qf '%{size} %{name}\n'|sort -nr|head -20
>   125195206 glibc-common
>   86298752 linux-firmware   # sadface, but hard
>   53291365 kernel-core
>   36004297 grub2-tools      # this is ridiculous
>   28453336 python3-libs     # 13% growth
>   27233273 systemd          # 21% growth
>   16648994 grub2            # *sigh*
>   14486819 glibc
>   14287847 coreutils        # this package got _smaller!_

... and more secure, due to lots of hard work minimizing dependencies,
like using glibc's printf implementation rather than our own.
Thanks for noticing :)

Note coreutils also got a new ./configure --enable-single-binary
option recently to build all tools to a single binary like busybox.
The tradeoff is somewhat higher startup cost, and RAM cost,
due to all shared libs being linked. Chromium is using this
build configuration I understand.

cheers,
Pádraig.



More information about the devel mailing list