Yum, It’s Starting to Get Tasty

The release of Fedora 11 promises numerous new improvements. One such improvement is an updated and more efficient package manager. How does it compare to the previous release, version 10?

Red Hat Inc is a publicly listed company and one of the largest players open source sector. They sell support and services for their open source technology, Red Hat Enterprise Linux (RHEL). RHEL is built on the community driven Linux distribution called Fedora, which the company sponsors. It is one of the most popular Linux distributions, claiming to have at least 10 million users.

Fedora is a binary distribution which uses the RPM Package Manager for its binary package system. The binary packages themselves are in this format, but RPM is also a manager, able to install, remove and manage these files. RPM has been around for a long time and is part of the Linux Standard Base. Many other distributions such as Mandriva and openSUSE use this as their primary package management, while distributions such as Debian and Ubuntu use the Deb package format. Debs themselves are very similar to RPM’s but the programs which manage them are very different.

When you install an application under Linux, it often utilises external libraries to provide functionality. Installing a single application may result in numerous other packages needing to be installed, called dependencies. Back in the dark old days, there was no way to automatically manage the installation of these dependencies and what resulted was known as “dependency hell“. Before you can install a particular package, you need to install a dependency. But when you try to install that dependency, it has dependencies of its own! And so on and on it goes.

To combat this problem, numerous wrappers have been created around the RPM package manager which endeavour to handle this issue safely (and sanely!). Recently, openSUSE developed and released a brand new manager called Zypper, Mandriva uses their own called Urpmi. Fedora on the other hand, has adopted another called Yum, the Yellowdog Updater, Modified. The website states: “Yum is an automatic updater and package installer/remover for rpm systems. It automatically computes dependencies and figures out what things should occur to install packages. It makes it easier to maintain groups of machines without having to manually update each one using rpm.”

Fedora 11 has just been released with one of the many cited improvements being an upgrade to version 4.7.0 of rpm. The wiki entry suggests this should greatly improve performance: “Memory consumption in transactions has been reduced dramatically. A testcase of “everything install” of Fedora 10 used to top out at near 1.5GB memory consumption, now the peak with the same package set is just over 300MB. Also gone is the quadratic memory consumption on large number of identical basenames. After the peak during Preparing-stage, heap consumption drops to mere megabytes during the actual transaction.” A second new feature which will greatly assist in the performance of package management on Fedora is the Presto plugin for Yum. Presto is not enabled by default, but once installed it provides support for deltas, a binary difference from an earlier version which reduces the amount of download required.

Fedora 11, known as Leonidas, should offer a much nicer package management experience. While the major improvements are in the area of memory usage, do the newer products offer much in the way of a speed improvement? How does it compare to Cambridge, Fedora 10?

For the purposes of the test, both Fedora 10 Cambridge and Fedora 11 Leonidas were installed on the same computer one after the other, using the installation DVD. The the same partitions were used and although Leonidas ships with ext4 by default, only ext3 was used. Naturally the actual list of packages may not be identical, however both consisted of the default install option which incorporates the GNOME desktop as well as the Office and Productivity packages. Both systems also received the latest updates. These tests are by no means intensive, however they should provide at least some insight into the differences between the two systems for every day usage. Finally, the latest Cambridge updates comes with RPM 4.6.1 and Yum 3.2.21, while Leonidas ships RPM 4.7.0 and Yum 3.2.22.

Test 1
One of the improvements listed is better memory usage. To see how much of an impact this might be, both systems are installed via the DVD installer and total memory usage is recorded upon completion. This measures memory usage which will include not only the RPM transactions, but also the entire installer (Anaconda) and the live environment. Results are measured using the memory program, free. Results are shown in kilobytes.

Cambridge result
total used free shared buffers
2068488 1989840 78648 0 99956

Leonidas result
total used free shared buffers
2057692 1967556 90136 0 138412

Conclusion
Leonidas appears to use around 100MB less memory than Cambridge, but really there is no major difference between the two.

Test 2
This is a direct RPM command which runs a query on the local package database to reveal which packages are installed on the system. This does not utilize Yum, but does make use of the RPM command itself. Results are measured using the time command and shows overall time taken, as well as breaking it down to kernel and user space components.

Command
rpm -qa

Cambridge result
real 0m4.225s
user 0m2.332s
sys 0m0.145s

Leonidas result
real 0m4.098s
user 0m1.688s
sys 0m0.120s

Conclusion
Leonidas is slightly faster, but essentially the speed is the same.

Next: Test 3 — Yum and the Internet

Comments on "Yum, It’s Starting to Get Tasty"

robinbowes

“This is where Leonidas starts to show its prowess over Cambridge as removing all 15 packages was over 4 seconds faster.”

Hrm, 28 secs vs. 32 secs.

Hardly earth-shattering, is it?

Reply
voidmain

As a Debian/Ubuntu/Mint user, a comparison with APT (what we debs consider the current king of package management) would be nice.

Reply
robinbowes

PS. The comment count is one out.

I see two comments, yet the title says “3 comments on Yum…”

*This* is the third comment!

Reply
jsilve1

Is this article interesting to anyone? It is not poorly written, it is just about as dull as you can get. The subject matter is dull, I guess, but even that could have been made more interesting by comparing it to the other mentioned package manages (urpmi, Zypper, Apt-get, et. al.), perhaps. Or maybe just having this article be a subsection in a larger article about Fedora 11.

Sometimes, Linux-Mag, you are just plain boring. Sorry. True.

Reply
hallmarc

Clearly Mr. Smart does not know how to conduct performance analyses. Yes, this article may give the casual user a sense of “Leonidas has improved things,” but it’s hardly useful for anything else. Does anyone actually need to see the output of _yum_ and _time_ for this article? No. That space is better utilized by giving us a single table with the relevant statistics. And please, show us percentages, e.g., the removal of mono represents a 13% improvement, and _always_ conduct multiple test runs to increase the validity of your findings (be careful to avoid caching effects). I would argue in this case that wall clock time is the only thing that matters to the majority of Linux Magazine readers, because they are not doing massive package installs and uninstalls on a regular basis. The sys time would be important if yum were constantly updating packages in the background and hammering CPU capacity…but it doesn’t.

Reply
ctryon

I’ve used Fedora since, well, since it was still called Red Hat, and one of the very few things that I really hate in the distribution is the horrendous Add/Remove Software GUI they run on top of RPM/yum. It’s so bad I don’t even remember what it is called, since I always use the command line. I’m not sure why they can’t take a simple look at the package manager in either Ubuntu or SUSE, either one of which is light-years ahead of the Fedora manager. The search function is useless, and even if you find something, it doesn’t tell you much about what the packages are. If you actually install something, it doesn’t give you any feedback as to what is happening (if anything IS happening), or even what dependencies it’s installing for you! Some of this may be related to the underlying meta-data that the RPM system supplies compared to what is in the DEB packages.

Making RPM a little faster is always a good thing, but I’d like to see an overhaul of what the user actually does to interact with the packaging system

Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>