[Yum-devel] [PATCH] Use multiple applydeltarpm workers

James Antill james at fedoraproject.org
Fri Feb 22 21:29:22 UTC 2013


On Fri, 2013-02-22 at 16:36 +0100, Zdenek Pavlas wrote:
> Did some real-world testing.

 Seems fine, although I'm still confused about what is
calling .rebuild() and how it handles the pkg being in an intermediate
state after this patch.

 Also note sure "wait" is the correct function name, as what happens is
that:

self.wait(conf.limit) == wait until we can add a job to hit "limit".
                      == wait until only limit-1 jobs are running.
                      == (when "limit" jobs are running)
                         wait for a single job to finish.
self.wait(1) == wait for all jobs to finish.

>   Haven't been updating my F17
> for some time, and now 88 updates are available.  Skipped
> applying updates with --downloadonly so only the setup, DL,
> and rebuild times are reported:
> 
> 1) download RPMs only
> Total 235 MB
> real    0m35.433s
> user    0m9.543s
> sys 0m2.865s

 Yeh, most people aren't downloading at almost 10MB/s :).

> 2) use yum-presto-0.7.3-1.fc17.noarch
> Presto reduced the update size by 88% (from 197 M to 25 M).
> real    2m50.171s
> user    2m1.482s
> sys 0m4.633s
> 
> 3) use the new drpm code
> Delta RPMs reduced 197 M of updates to 25 M (87% saved)
> 
> 1 worker:
> real	2m17.530s
> user	2m6.819s
> sys	0m3.539s
> 
> 2 workers:
> real	1m21.588s
> user	2m20.474s
> sys	0m2.965s
> 
> 4 workers:
> real	1m10.760s
> user	2m40.738s
> sys	0m3.699s
>
> 6 workers:
> real	1m23.832s
> user	4m33.390s
> sys	0m6.313s

 How many CPUs do you have? What kind of disk, and IO do you have? Maybe
defaulting to -1 == os.sysconf("SC_NPROCESSORS_ONLN") is better?

> There's only a little gain in parallelizing downloads, since
> I use a single fast local mirror and only one concurrent
> connection is used.  Spawning more workers helps a lot.

 Also we don't have progress for drpm => rpm conversion anymore ...
given the numbers above I'm guessing that yum just stopped after
downloading, showing nothing for over a minute?
 Getting data on what that's going to look like for normal users is
probably good ... as I'm very sure we'll get bug reports about yum
"hanging" for a minute (we did before, as we didn't have progress on the
plugin to start with).

 Do you have a plan to add extra progress data, or merge it into the
download progress in some way?

 How hard would it be to start downloading .rpms if we get to the end of
the download stage and we still have N .drpm => .rpm conversions to do?



More information about the Yum-devel mailing list