why doesn't yum cache anything?

Farkas Levente lfarkas at bppiac.hu
Mon Jan 3 15:43:00 UTC 2005


Konstantin Ryabitsev wrote:
> On Sun, 02 Jan 2005 21:59:58 +0100, Farkas Levente <lfarkas at bppiac.hu> wrote:
> 
>>just try out a:
>>time yum -C list mtr
>>it has nothing to do with the network and the speed is almost the same!
> 
> 
> In my experience it isn't, but then again, doing "yum list \*mtr\*"
> only takes 8 seconds on my laptop. If it takes longer on other
> machines, considering mine is certainly not the fastest of the bunch,
> my suspicion is that the slowdown is not dependent on the processor.
> Memory and network would be my suspects.
> 
> 
>>it seems there are two place where yum is very slow:
>>- loading the local metadata (even if using the pickle files)
>>- the dependencie resolution
>>probably it needs to investigate further what is the real reason and how
>>can be solve. if yum be so slow for a long time, there will be someone
>>who create another package using a better/more clever local cache file
>>format and and may be reimplement it in a faster language (may be a
>>better/faster server side metadata format).
[skip]
> Feel free to encourage anyone to come up with a system better than yum
> that doesn't do things the apt way, i.e. doing everything outside of
> RPM and then just making a system call to the binary. I believe anyone
> attempting to re-implement yum will soon run into exactly the same
> problems as those faced by Seth et al. If someone does come up with an
> application that functions speedily and covers the same robust set of
> features that yum provides, then I'm sure Seth will have no problem
> stepping aside and letting the poor bastard who replaces him to take
> all the abuse. In fact, as someone for whom Seth is a direct
> supervisor, I'll downright encourage that development. :)
> 
> However, I believe that until RPM is replaced with an able enough
> alternative, things will not dramatically improve, however much you
> desire them to, and however many times you rewrite yum. Feel free to
> prove me incorrect.

first of all i do NOT like to blame anyone especially not seth since i 
like yum as the only usable tool. but that doesn't mean i can't tell my 
point of view and my critics. in short:
- yum is slow (rather slow) and it can (and i hope will) be faster!
imho it's better to not show any kind of exmaples, but
- even if nothing changed on the system (add/remove) like in case of 
list it takes a long time to get the result.
- even when only package name, version, release, epoc information will 
be enough (which is the most usualy case!!!! ie. yum 
install/erase/update/check-update/list) it load, parse and build 
python's object from all data which is about 95-99% is waste of 
resources (time and memory). this is just my estimation based on that 
the rpm filename is longer than the EVR string and only the pickle file 
is loaded:
-----------------------------------
# ls /mnt/download/mirror/fedora/3/i386/os/Fedora/RPMS/|wc -c
48537
# ls -l /var/cache/yum/os/
total 6252
drwxr-xr-x  2 root root    4096 Dec 20 18:48 headers/
drwxr-xr-x  2 root root    4096 Nov 12 10:06 packages/
-rw-r--r--  1 root root  816171 Nov  4 00:22 primary.xml.gz
-rw-r--r--  1 root root 5532228 Nov 12 10:06 
primary.xml.gz.ce7bdfd5a6066a4f18c498b693faa16597a0733c.pickle
-rw-r--r--  1 root root    1140 Nov  4 00:22 repomd.xml
-----------------------------------
and to show a much slower case when someone use more repos:
---------------------------------------------
# cat /proc/cpuinfo /proc/meminfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 2
model name      : Intel(R) Pentium(R) 4 CPU 2.20GHz
stepping        : 4
cpu MHz         : 2222.143
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca 
cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips        : 4374.52

MemTotal:      1035124 kB
MemFree:        108180 kB
Buffers:         98368 kB
Cached:         589540 kB
SwapCached:         12 kB
Active:         687336 kB
Inactive:       185700 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:      1035124 kB
LowFree:        108180 kB
SwapTotal:     2008084 kB
SwapFree:      2006912 kB
Dirty:           63892 kB
Writeback:           0 kB
Mapped:         430524 kB
Slab:            26996 kB
Committed_AS:   831304 kB
PageTables:       6096 kB
VmallocTotal:  3088376 kB
VmallocUsed:      3672 kB
VmallocChunk:  3084504 kB
HugePages_Total:     0
HugePages_Free:      0
Hugepagesize:     4096 kB

# time yum -C list mtr
Setting up Repo:  dag
Setting up Repo:  freshrpms
Setting up Repo:  jpackage16-generic
Setting up Repo:  jpackage16-fc3
Setting up Repo:  updates
Setting up Repo:  Newrpms
Setting up Repo:  addons
Setting up Repo:  os
Setting up Repo:  pre-extras
Reading repository metadata in from local files
dag       : ################################################## 1531/1531
freshrpms : ################################################## 456/456
jpackage16: ################################################## 1277/1277
jpackage16: ################################################## 19/19
updates   : ################################################## 407/407
Newrpms   : ################################################## 374/374
addons    : ################################################## 10/10
os        : ################################################## 2622/2622
pre-extras: ################################################## 630/630
Excluding Packages in global exclude list
Finished
Installed Packages
mtr.i386                                 2:0.65-1.1.fc3.rf      installed

real    0m39.976s
user    0m11.271s
sys     0m1.030s
---------------------------------------------

-- 
   Levente                               "Si vis pacem para bellum!"




More information about the fedora-devel-list mailing list