how to speed up mock?

Farkas Levente lfarkas at lfarkas.org
Mon Jan 18 15:21:45 UTC 2010


On 01/18/2010 04:10 PM, Seth Vidal wrote:
>
>
> On Mon, 18 Jan 2010, Farkas Levente wrote:
>
>> the real bottleneck is not the rpmbuild itself (with ccache it cab be
>> very fast), but the mock surroundings. suppose there is build which
>> takes about 2 minutes and in mock it takes about 5 minutes:-(
>> most of the time is in yum, python tar, gzip etc which all use only one
>> cpu/core and it's very slow!
>>
>
> the tar  and gzip are mostly  BUILDING the cache.

no tar and gzip used unpacking root cache.

> Mock currently makes a cached copy of the buildroot it just created so it
> doesn't have to redepsolve and download/install the rpms each time.

but have to run yum each time for the package specific depsolve and yum 
installs (ps axufww:)
---------------------------
\_ /usr/bin/python -tt /usr/sbin/mock -r testing-i386 --define rhel 5 
--define el5 1 --define dist .el5 --rebuild 
/home/robot/rpm/SRPMS/xyz-4.2.2-5280.el5.src.rpm
root     28319 49.5  0.8 255000 34292 pts/1    D    16:15   0:00 
   |                       \_ /usr/bin/python /usr/bin/yum --installroot 
/var/lib/mock/testing-i386/root/ install ccache rsync zip
---------------------------
and it much slower then the compile itself. it's very annoying when i 
try to rebuild only a dozen of packages most of the time.
eg in this output:
---------------------------
INFO: mock.py version 1.0.2 starting...
State Changed: init plugins
State Changed: start
INFO: Start(/home/robot/rpm/SRPMS/xyz-4.2.2-5280.el5.src.rpm) 
Config(testing-i386)
State Changed: lock buildroot
State Changed: clean
State Changed: init
State Changed: lock buildroot
Mock Version: 1.0.2
INFO: Mock Version: 1.0.2
INFO: enabled root cache
State Changed: unpacking root cache
INFO: enabled yum cache
State Changed: cleaning yum metadata
INFO: enabled ccache
State Changed: running yum
State Changed: setup
State Changed: build
INFO: Done(/home/robot/rpm/SRPMS/xyz-4.2.2-5280.el5.src.rpm) 
Config(testing-i386) 3 minutes 37 seconds
INFO: Results and/or logs in: /var/lib/mock/testing-i386/result
---------------------------
the time reach the "State Changed: build" is usually more then all other 
stuff before it.

> So the first time you run it makes a cache. You aren't clearing out the
> cache each time, are you? That would definitely eat up a lot of time.

of course not:-)

-- 
   Levente                               "Si vis pacem para bellum!"


More information about the devel mailing list