git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Long clone time after "done."

From
UMUri Moszkowicz <uri@4refs.com>
Date
Nov 26, 2012, 18:06 UTC
Message-ID
<CAMJd5AQAYt7tBVPrC6KVSa7nEfoWTAHnDZKUPS7QBCFxR5THkw@mail.gmail.com>
In-Reply-To
<CAMJd5AQOH=uu1c3enr5fES+Bw4FHZuP++J7-aCM2B+f_G3YMtg@mail.gmail.com>

Hi guys, Any further interest on this scalability problem or should I move on?

Thanks, Uri

On Thu, Nov 8, 2012 at 5:35 PM, Uri Moszkowicz <uri@4refs.com> wrote:
Show 50 quoted lines
> I tried on the local disk as well and it didn't help. I managed to
> find a SUSE11 machine and tried it there but no luck so I think we can
> eliminate NFS and OS as significant factors now.
>
> I ran with perf and here's the report:
>
> ESC[31m    69.07%ESC[m              git  /lib64/libc-2.11.1.so
>                                          [.] memcpy
> ESC[31m    12.33%ESC[m              git
> <prefix>/git-1.8.0.rc2.suse11/bin/git                           [.]
> blk_SHA1_Block
> ESC[31m     5.11%ESC[m              git
> <prefix>/zlib/local/lib/libz.so.1.2.5                           [.]
> inflate_fast
> ESC[32m     2.61%ESC[m              git
> <prefix>/zlib/local/lib/libz.so.1.2.5                           [.]
> adler32
> ESC[32m     1.98%ESC[m              git  /lib64/libc-2.11.1.so
>                                          [.] _int_malloc
> ESC[32m     0.86%ESC[m              git  [kernel]
>                                          [k] clear_page_c
>
> Does this help? Machine has 396GB of RAM if it matters.
>
> On Thu, Nov 8, 2012 at 4:33 PM, Jeff King <peff@peff.net> wrote:
>> On Thu, Nov 08, 2012 at 04:16:59PM -0600, Uri Moszkowicz wrote:
>>
>>> I ran "git cat-file commit some-tag" for every tag. They seem to be
>>> roughly uniformly distributed between 0s and 2s and about 2/3 of the
>>> time seems to be system. My disk is mounted over NFS so I tried on the
>>> local disk and it didn't make a difference.
>>>
>>> I have only one 1.97GB pack. I ran "git gc --aggressive" before.
>>
>> Ah. NFS. That is almost certainly the source of the problem. Git will
>> aggressively mmap. I would not be surprised to find that RHEL4's NFS
>> implementation is not particularly fast at mmap-ing 2G files, and is
>> spending a bunch of time in the kernel servicing the requests.
>>
>> Aside from upgrading your OS or getting off of NFS, I don't have a lot
>> of advice.  The performance characteristics you are seeing are so
>> grossly off of what is normal that using git is probably going to be
>> painful. Your 2s cat-files should be more like .002s. I don't think
>> there's anything for git to fix here.
>>
>> You could try building with NO_MMAP, which will emulate it with pread.
>> That might fare better under your NFS implementation. Or it might be
>> just as bad.
>>
>> -Peff
Previous: Uri Moszkowicz
Message 13 of 13 in “Long clone time after "done."”
  1. Uri MoszkowiczOct 23, 2012
  2. Nguyen Thai Ngoc DuyOct 24, 2012
  3. Uri MoszkowiczOct 24, 2012
  4. Uri MoszkowiczNov 7, 2012
  5. Jeff KingNov 8, 2012
  6. Uri MoszkowiczNov 8, 2012
  7. Jeff KingNov 8, 2012
  8. Uri MoszkowiczNov 8, 2012
  9. Jeff KingNov 8, 2012
  10. Uri MoszkowiczNov 8, 2012
  11. Jeff KingNov 8, 2012
  12. Uri MoszkowiczNov 8, 2012
  13. Uri MoszkowiczNov 26, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.