git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Michael Poole <mdpoole@troilus.org>
Cc: Miles Bader <miles@gnu.org>, Michael Witten <mfwitten@gmail.com>,
	Frans Pop <elendil@planet.nl>,
	git@vger.kernel.org
Subject: Re: 'git gc --aggressive' effectively unusable
Date: Sun, 4 Apr 2010 16:38:51 -0400	[thread overview]
Message-ID: <20100404203850.GA8798@coredump.intra.peff.net> (raw)
In-Reply-To: <87zl1js248.fsf@troilus.org>

On Sun, Apr 04, 2010 at 10:50:47AM -0400, Michael Poole wrote:

> > Are you sure it doesn't subsequently speed up again?
> 
> I have seen asymptotic slowdown as "git gc --aggressive" progresses on
> certain repositories.  It is particularly bad with
> git://git.infradead.org/gcc.git (on an x86-64 system with 4 GB RAM).
> git seemed to be thrashing swap badly as time went on.  I don't know
> that git gc --aggressive would *never* finish on my gcc-git repository.
> I just know that it got to about 80% done in less than an hour, to 90%
> after twelve hours, and about 94% after another twelve hours.  (The same
> operation on linux-2.6.git takes about 40 minutes with all the default
> settings.)
> 
> I may have been dreaming, but I thought with some 1.6.x version of git,
> reducing core.packedGitLimit and pack.windowLimit (now windowMemory?)
> mostly made the thrashing go away.  When I try again with v1.7.0.2,
> though, it doesn't seem to help very much -- there is still a lot of
> swapping, and the git process got to about 7 GB virtual size before I
> killed it after about 10 hours of operation.

I packed Frans' sample kernel repo with "git gc --aggressive" last
night. It did finish after about 9 hours. I didn't take memory usage
measurements, but here's what time said:

  real    535m38.898s
  user    216m46.437s
  sys     0m24.186s

That's 3.6 hours of CPU time over almost 9 hours (on a dual-core
machine). The non-agressive pack was about 680M, and the result was
480M. The machine has 2G of RAM, and not much else running. So I would
really not expect there to be much disk I/O required, but clearly we
were waiting quite a bit.

I'll try tweaking a few of the pack memory limits and try again.

-Peff

  reply	other threads:[~2010-04-04 20:39 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-02 22:05 'git gc --aggressive' effectively unusable Frans Pop
2010-04-02 22:12 ` Frans Pop
2010-04-03 21:16 ` Frans Pop
2010-04-03 21:33 ` Michael Witten
2010-04-03 21:42   ` Michael Witten
2010-04-03 23:23   ` Frans Pop
2010-04-03 23:42     ` Michael Witten
2010-04-04  0:14     ` Miles Bader
2010-04-04 14:50       ` Michael Poole
2010-04-04 20:38         ` Jeff King [this message]
2010-04-04 21:49           ` Jeff King
2010-04-05 21:07             ` Nicolas Pitre
2010-04-04  4:27     ` Mike Galbraith

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100404203850.GA8798@coredump.intra.peff.net \
    --to=peff@peff.net \
    --cc=elendil@planet.nl \
    --cc=git@vger.kernel.org \
    --cc=mdpoole@troilus.org \
    --cc=mfwitten@gmail.com \
    --cc=miles@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).