yum 3.2.23 more than 10x slower than 3.2.21?!

Roberto Ragusa mail at robertoragusa.it
Fri Jun 26 15:53:47 UTC 2009


Roberto Ragusa wrote:
> Joe Nall wrote:
>> On Jun 26, 2009, at 10:25 AM, Roberto Ragusa wrote:
>>
>>> Seth Vidal wrote:
>>>>
>>>> On Fri, 26 Jun 2009, Roberto Ragusa wrote:
>>>>
>>>>> Seth Vidal wrote:
>>>>>> and if you can make this happen every time with 3.2.23 if you could
>>>>>> please run:
>>>>>>
>>>>>> time yum -d 3 list updates | grep 'time:'
>>>>> You were not talking to me, but I tried and
>>>>> look at this: (added -C to avoid net access)
>>>>>
>>>>> # time yum -C -d 3 list updates --disablerepo=atrpms\* | grep 'time:'
>>>>> Config time: 0.271
>>>>> repo time: 0.001
>>>>> pkgsack time: 86.684
>>>> and you're POSITIVE nothing is being downloaded here? Nothing at all?
>>>>
>>>> Run it again, please and capture all the output and post it to a
>>>> pastebin.
>>>>
>>> I have a hint and it points to the "same rpms in more than one repo"
>>> hypothesis.
>>>
>>> yum -d 5 lists a lot of
>>>
>>> excluding for cost: firefox-3.0.11-1.fc10.i386 from updates
>>> excluding for cost: gnome-session-2.24.3-1.fc10.i386 from updates
>>> [...]
>>>
>>> I see something related to cost handling fixes in the yum Changelog.
>>>
>>> My guess is that elements are removed from an array one at a time
>>> and everything after that is moved back one position.
>>> Or some inefficiency of that kind.
>>>
>>> You may be able to reproduce it by configuring two updates repos.
>> The performance change occurred between 3.2.21-2 and 3.2.22-5 based on
>> testing on koji f10 downloads.
> 
> from rpm -q -changelog yum:
> 
> * Tue May 12 2009 Seth Vidal <skvidal at fedoraproject.org> - 3.2.22-5
> 
> 
> from ChangeLog in yum tar.gz:
> 
> 2009-04-13  James Antill <james at and.org>
> 
> 	* yum/yumRepo.py: Fix cost sorting of repos.
> 

Never programmed in python, but this could be O(N^2).

  for pkg in pkgs[1:]:
      if pkg.repo.cost > lowcost:
          msg = _('excluding for cost: %s from %s') % (pkg, pkg.repo.id)
          self.verbose_logger.log(logginglevels.DEBUG_3, msg)
          pkg.repo.sack.delPackage(pkg)



-- 
   Roberto Ragusa    mail at robertoragusa.it




More information about the fedora-devel-list mailing list