We're running a Subversion server on a Linux VPS over HTTP (so the URL is http://repository/svn/project/trunk) but it is stupidly slow. By slow I mean at most about 4KB/s checkouts and checkins. Test downloads from the VPS seem to be just fine.
Where would I start looking for information on this?
FWIW it's running Ubuntu 8.04 and Linux 2.6.18 (yes I know that's old).
There could be a variety of possibilities. I've written a comprehensive guide on tracking down performance problems in network services, which should give you a good chance of finding the problem. Yes, it's long, but this isn't a trivial topic you're delving into.
I think you should start of monitoring your memory usage/cpu usage and then monitor your server network activity.
Try this tutorial. It describes the main linux monitoring tools that will help you.
Check memory use of both host and guest OS. And are you running the virtio disk & network drivers?
apart from the network tools to check the system setup, you can try running svnserve on the server for a while - replace any http: urls wth svn: ones and try accessing the repository.
The SVN protocol is a lot faster, especially for WAN systems and might show up if your http server is the bottleneck rather than the server itself.
Otherwise, often a VM performance problem lies in its disk IO. If you have it on VMware to automatically expand its disk size, then you will see slow perf on checkins (but checkout should be fine).
If you're checking out a lot of files, try it without the virus scanner running.