Subject: Re: Git very slow ?

From: Ken Moffat <[email-masked]>
Date: Sun, 8 Mar 2015 23:31:54 +0000

On Sun, Mar 08, 2015 at 12:39:10PM -0700, Linus Torvalds wrote:
> On Sun, Mar 8, 2015 at 12:02 PM, Ken Moffat <[email-masked]> wrote:
> >
> > The comments on git bisect were for linus'skernel tree, on a local
> > disk.  2.3GB of repo, just under 57000 files.
> 
> Ugh. I hope you are talking about checked-out size.
> 
>     [torvalds@i7 linux]$ du -sh .git
>    850M .git
> 
> because otherwise it sounds like that repo hasn't been repacked in forever.
> 

 Yes - I had finished bisecting, with the build still present.

> To really pack things (which can slow things down for old history as
> people said, but on the whole it tends to be a big win due to less
> IO), do
> 
>    git repack -adf --window=200 --depth=200
> 
> and go away for a while. Oh, and make sure your machine has enough
> memory and CPU to make that "for a while" not be *too* long.
> 

 For that, many thanks - this desktop has about 7GB (integrated
graphics steal a bit), current AMD desktop, and the repack of my
scripts repo took about 56 seconds.  I'll do that on my copy of
the kernel tomorrow (it's on another machine).

> You should have a few hundred files (just a few tens of files directly
> after the repack) and that roughly 850MB of space for the repository
> information itself.
> 
> But yeah, fully checked out and built with all the modules etc, you
> would have much more.
> 
> That said, if you have something fairly that is consistently really
> slow (like the "git commit" you mentioned), *before* doing the repack,
> do
> 
>    strace -o ../trace-file -Ttt git commit
> 
> and we can get a much better guess about why it's so slow. Send it to
> me in private email if you don't want to make it public, and I can
> take a look.

 I don't think you need to look - it was taking most of the time
(about 8 seconds) looping through the many files below .git/objects.
The trace was just over 9000 lines, repeating after the repack was
less than 1300 lines.  It's available (97K after using xz) if you
think it would be useful, but I think you have already diagnosed the
problem and solution.
> 
> > ping between them gives times of 0.25 to 0.3 seconds
> 
> .. and I *really* hope that was not seconds, but ms. Otherwise your
> nfsv3 setup is going to be really really painful.
> 
>                           Linus

 Yes, I'm not always good at knowing the right units.  Thanks for the
help.

ĸen
-- 
Nanny Ogg usually went to bed early. After all, she was an old lady.
Sometimes she went to bed as early as 6 a.m.