A simple Subversion benchmarking tool included in the Subversion 1.8 release helps you sort out performance complaints from developers more quickly. Whenever someone complains about slow Subversion performance, you know there are at least three possibilities:
The Subversion server is actually slow, perhaps due to heavy load.
The user’s machine is slow. Recall that the Subversion client does some disk I/O and other processing during some operations, and the user might be running virus scanners and the like.
The user suffers from a slow network connection.
The svn-bench command is a lightweight Subversion client that omits most of the local processing. That makes it easier to get a real performance measurement without being affected by the user’s virus scanner or slow file system.
If you run svn-bench on the Subversion server itself you’ll get a baseline performance metric for a few Subversion operations. If that baseline seems slow, you can try to improve the server performance.
If you then run svn-bench on a client workstation, you can get a sense of the effects of network latency. If there’s little latency apparent, then the problem may lie in the user’s workstation.
For instance, I ran svn-bench null-export on the trunk of a Subversion repository. On the server itself, the real time was 4.1 seconds. On a workstation connected over a slow network, the real time was 32.5 seconds. That’s a good indicator that network latency is slowing things down. Just to confirm my suspicion, I ran a normal svn export on that workstation and the time only slowed down by a second or so, which gives me a good sense that the problem lies in the network.
svn-bench is a simple but useful tool for Subversion benchmarking. You can try it out by downloading a certified SVN 1.8 binary. If you need help with Subversion performance analysis, our team of Subversion experts can help.