Re: Slow git pushes: sitting 1 minute in pack-objects
- From
Jeff King <peff@peff.net>
- Date
- Mar 19, 2015, 21:07 UTC
- Message-ID
- <20150319210731.GA8363@peff.net>
- In-Reply-To
- <CAH8BJxErCMk1JQMMKm9_j4bckB7bEVB+r28_zYovE=pe1nUa_Q@mail.gmail.com>
On Thu, Mar 19, 2015 at 04:31:36PM -0400, Stephen Morton wrote:
Show 9 quoted lines
> > Hmm. The "push" process must feed the set of object boundaries to > > "pack-objects" so it knows what to pack (i.e., what we want to send, and > > what the other side has). > > > > 120,000 is an awfully large number of objects to be pass there, though. > > Does the repo you are pushing to by any chance have an extremely large > > number of refs (e.g., on the order of 120K tags)? > > No. There are on the order of 9,500 refs (mostly tags) but nowhere near 120k.
I think you mentioned that it uses alternates to share objects with other repos. Does the repository (or repositories) pointed to by the alternates file have a large number of refs (especially distinct refs, as I think modern git will squelch duplicate sha1s).
Show 5 quoted lines
> It did _not_ happen in a new clone --a push took just 5s -- and I > think the culprit could have been "repack.writebitmaps=true". Although > I had thought writebitmaps was not originally enabled, I now suspect > that it was. Let me follow up on that first, before I recompile git > with your changes.
It's certainly possible that bitmaps have an impact here. They should not contribute to the 120K objects being passed to pack-objects, but it's possible that size is a red herring (or possibly the number of objects is choking something in the bitmap code path that does not have problems otherwise).
-Peff