> -----Original Message-----
> From: Johan Corveleyn [mailto:jcor...@gmail.com]
> Sent: vrijdag 27 maart 2015 22:03
> To: users@subversion.apache.org
> Subject: Branching slow 1.8.11 https
> 
> Does the following ring a bell for someone?
> 
> Recently upgraded our server (on Solaris 10 SPARC) from 1.5.4 to
> 1.8.11 (CollabNet package). Some time after that, we discovered that
> branching was very slow. I'm talking about pure server-side branching
> ('svn copy $URL/trunk $URL/branches/br1'). I'm testing with a 1.8.11
> client (tried both from same machine as the server, and from another
> machine on the LAN (100 Mbit)).
> 
> - Branching trunk (containing many directories and files): 6-8 minutes
> - Branching a subfolder of trunk: 20-30 seconds (still very slow)
> - Branching a single file is fast (< 0.5s or so).
> 
> So it seems the performance degrades depending on the depth or size of the
> tree.
> 
> Now, it gets more interesting:
> - The resulting rev file on the server is always very small (as it
> should be, it contains only a lightweight 'copy' of the trunk node).
> - Our repos is currently served via https (Apache 2.2.29).
> - Branching with file:/// urls is fast (branching trunk takes 0.6s).
> - When starting an svnserve instance serving the same repository, and
> branching with svn:// urls, it's fast as well (also 0.6s).
> - We reproduced it on a copy of the production repo.
> - Experimenting with the test copy, we found that
> $repos/dav/activities.d contains ~2000 files. When we clear that
> directory, the branching times go down by more than half (~2 minutes
> for trunk, ~10s for subdir of trunk --- i.e. still slow, but it
> definitely has an impact).
> - With a 1.7 client connecting with neon, the problem is the same.
> - During the 'svn copy', an httpd child consumes a lot of cpu (around
> half a core).
> - There is no authz configured for this repo (SVNPathAuthz off).
> - Backend is still in 1.5 format (we have not run svnadmin upgrade
> yet, a dump+load is planned in a couple of weeks).
> 
> So it seems clearly mod_dav_svn related (and not for instance related
> to the FSFS backend).
> 
> I don't think we have anything special in our httpd config:
> [[[
>    <Location /test_svn>
>       SVNInMemoryCacheSize 131072
>       SVNCacheFullTexts on
>       SVNCacheTextDeltas on
>       SSLRequireSSL
>       AuthName "TEST Subversion Repository"
>       AuthType Basic
>       AuthBasicProvider ldap
>       AuthBasicAuthoritative off
>       AuthLDAPURL "ldap://redacted:389";
>       AuthLDAPBindDN "redacted"
>       AuthLDAPBindPassword redacted
>       Require ldap-group redacted
>       DAV svn
>       SVNPath /path/to/test_repos
>       SVNPathAuthz off
>    </Location>
> ]]]
> 
> Any ideas?
> Why the cpu usage by the server, what's it doing?
> What is the dav/activities.d directory for? How come it contains so
> many files? Is it ok to purge the old files from that directory?

Httpd's mod_dav was updated in some recent version to do a full lock traversal 
on copies and moves. I think we already applied some optimizations, but the 
real fix would be that mod_dav shouldn't do this work (which our repos layer 
already does).

I'm not sure which release we applied the first set of optimizations.

        Bert
> 
> --
> Johan

Reply via email to