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!"