For a Linux or Windows system, what tricks do you do to optimize your Subversion server?
The following are my current tricks for a Linux system serving over Apache with HTTPS and backed by Active Directory using LDAP authentication.
- Enabling KeepAlive on Apache
- Disable SVNPathAuthz
- Increase LDAP Cache
- Using the FSFS storage method instead of BDB
- Feel free to call this into question. I don't have hard proof that FSFS out performs BDB, only lots of tribal knowledge and hearsay.
I can't say much about the performance difference between BDB and FSFS, but I can definitely say that FSFS is far more stable. I'd suggest using it over BDB simply to preserve your sanity. When we had a largish repos running on BDB, we had to run recovery on it at least once a week, often several times. It was irritating. Now that we use FSFS, it's been rock solid.
"svnadmin pack"
is a neglected documentation command, but ran it often may be helpful especially if your commits are small.I measured significant performance improvements when using svnserve instead of mod_dav_svn and Apache.
I performed some measurements in order to analyse repository performance in a project I'm working in, and the result was to setup an svnserve server in addition to the previously used Apache server. See http://www.ohrner.net/software/tipps_en.php, Section "Subversion Performance" for reference and measurement results.
I realise that using svnserve is not always an option, but often it is, at least if used in addition to WebDAV / DeltaV access, and if it is, it may be rewarding.
Gunter Ohrner