From: "Shawn O. Pearce" <spearce@spearce.org>
To: Robin Rosenberg <robin.rosenberg@dewire.com>
Cc: git@vger.kernel.org
Subject: Re: [JGIT RFC PATCH 2/2] Rewrite WindowCache to be easier to follow and maintain
Date: Tue, 28 Apr 2009 08:28:22 -0700 [thread overview]
Message-ID: <20090428152822.GP23604@spearce.org> (raw)
In-Reply-To: <1240885572-1755-2-git-send-email-spearce@spearce.org>
"Shawn O. Pearce" <spearce@spearce.org> wrote:
>
> This rewrite generalizes most of the cache logic into a new class,
...
> I'm tossing this out there for tonight. Please don't apply until
> I give a final yay or nay.
...
> I'm going to burn this in tonight for about 12 hours by pounding
> a whole bunch of clients against it.
Yay.
This patch looks solid to me.
I ran it overnight for 12 hours on a test rig. 4-way Intel(R)
Xeon(R) CPU 5148 @ 2.33GHz with 32 GiB physical memory. The git://
server process was launched with:
java -Xmx8192m -classpath jgit \
org.spearce.jgit.pgm.Main daemon
--port 8853 --export-all base
Note that is the default WindowCacheConfig.
I ran 8 concurrent clone clients on two 2-way systems, 4 clients
per host. The clone clients randomly selected between three
repositories on each clone attempt:
linux-2.6 fork (322M on disk)
repo.git (1.6M on disk)
gerrit.git (9.3M on disk)
I used C git `git clone --bare ...` for the clients to try and
speed up the client side of the test.
In 12 hours the clients successfully completed a total of 2,456
clones, and appear to have been averaging 10,999 KiB/s at peak on
one test host and 4,969 KiB/s on the other. So JGit was pushing
somewhere around 63,872 KiB/s. I'm not sure what the network can
really do here; the test clients are in my office and the server
is in a data center somewhere in the same state.
At peak (when all clients picked the linux-2.6 fork roughly around
the same time) I saw the server JVM approaching 380% CPU utilization.
Not too bad giving that the WindowCacheConfig's default settings are
woefully inadequate for 8 concurrent PackWriters on linux-2.6.
Unfortunately, this quad is largest SMP box I have available.
I'm sure we're wasting CPU spinning through cache entries under load.
I still need to do throughput testing, and that may lead to some
tuning changes. But the code is cleaner and didn't fall over,
so I say we move ahead and apply this rewrite.
--
Shawn.
next prev parent reply other threads:[~2009-04-28 15:29 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-28 2:26 [JGIT PATCH 1/2] Don't use ByteWindows when checking pack file headers/footers Shawn O. Pearce
2009-04-28 2:26 ` [JGIT RFC PATCH 2/2] Rewrite WindowCache to be easier to follow and maintain Shawn O. Pearce
2009-04-28 15:28 ` Shawn O. Pearce [this message]
2009-04-28 23:19 ` Robin Rosenberg
2009-04-28 23:30 ` Shawn O. Pearce
2009-04-29 17:16 ` Shawn O. Pearce
2009-04-30 7:34 ` Ferry Huberts (Pelagic)
2009-05-06 14:15 ` [PATCH] Link to the Sun JVM bug mentioned in OffsetCache Shawn O. Pearce
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=20090428152822.GP23604@spearce.org \
--to=spearce@spearce.org \
--cc=git@vger.kernel.org \
--cc=robin.rosenberg@dewire.com \
/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).