On Wed, May 5, 2010 at 9:21 AM, Brendan Farr-Gaynor
<brendan_at_resolutionim.com> wrote:
> I run a small team of web developers (6) who all work from an in-house repository.
> We make lots of commits and often and notice the performance gets pretty bad.
> Sometimes taking as long as 2 minutes to commit a change. We rely a lot on server-
> side software so we often need to commit to see what our code will do, this can get
> painful during a debug process where as a developer you'll often want to commit
> many little changes quickly within the span of 5-10 minutes.
We have a much larger team and an even crappier server, and we have no
performance issues. Subversion isn't exactly a big iron performance
sucking application. It's pretty light weight. The biggest issues tend
to be network bandwidth rather than server performance.
A few issues that you might want to look at:
* The Subversion server (like any server system) should be dedicated
to Subversion. It's not like Subversion needs a lot of horsepower, but
other disk intensive processes can hamper performance. With hardware
being so cheap these days, there's no reason not to have a dedicated
server.
I notice you said you're using Mac OS X Server as your Subversion
server. What else is that server doing? By the way, we tend to use
Linux servers, so I've never ran Subversion on Mac OS X Server (I have
on my personal Mac, though without problems, but not with serving a
half dozen people).
* Check to make sure the problem isn't with hook scripts. Hook scripts
that take a long time to run will slow things down.
* Don't store binary files in Subversion -- especially big ones that
change a lot. Use a Release Repository or a Build Server to store
binaries. We use Nexus and Hudson.
* Check to make sure that the problem isn't due to the anti-virus
software on Windows machines. Subversion makes a lot of files on the
local workspace. For example, if you check out 100 files, Subversion
not only sends out those 100 files over the network, but creates 100
copies of those files as part of the BASE in order to compare changes.
That saves bandwidth when doing "svn diff", but it can cause many
anti-virus checkers to slow down the local machine.
* Switch to using "svn" using "svnserve" instead of "http" using
"Apache's httpd" and see if that speeds things up. Apache can be a bit
slow -- especially if it has a lot of plugins added into to it.
--
David Weintraub
qazwart_at_gmail.com
Received on 2010-05-05 17:26:17 CEST