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

Matthew Miller mattdm at fedoraproject.org
Mon Sep 21 15:06:59 UTC 2015


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!_
  11143743 glib2
  11129880 selinux-policy-targeted
  9389116 cracklib-dicts
  9261499 python3-boto
  9237998 util-linux
  9224255 fedora-logos      # this is also grub's fault.
  7517574 gnupg2
  7143418 bash
  6574678 python3-pip       # :(
  5888883 hwdata            # this is ALSO grub's fault
  5423400 xkeyboard-config  # really???? looks like a systemd dep chain
                              involving plymouth

Okay, let's look on disk:


  [f21]$ sudo du -sh * 2>/dev/null|sort -h
  [...]
  36K	home
  40K	root
  228K	run
  21M	boot
  22M	etc
  34M	var
  276M	usr


  [f23b]$ sudo du -sh * 2>/dev/null|sort -h
  [...]
  40K	root
  264K	run
  16M	etc
  45M	boot      # ugh
  171M	var       # oww
  463M	usr       # oww oww oww

  Breakdown:
 
   - boot is mostly grub, but initramfs is also doubled
   - var: DNF cache is full of stuff! 123M... oh, hey, that wasn't
     there when we booted. `df -h /` is now up to 702M. Maybe multiple
     repos would help here, or some other more clever design. Does
     every cloud image in the world _really_ need to replicate
     dependency data so I can `dnf install
     /usr/share/minetest/builtin/mainmenu/init_simple.lua`?

   - usr: 

      * linux-firmware is the biggest thing here
      * python3 is another good chunk
      * also kernel modules, but, eh, whatchagonnado
      * oh, and of course, grub2.
  
-- 
Matthew Miller
<mattdm at fedoraproject.org>
Fedora Project Leader


More information about the cloud mailing list