[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Subversion trunk (r1078338) HTTP(/WC?) performance problems?

From: John Beranek <john_at_redux.org.uk>
Date: Tue, 08 Mar 2011 17:52:34 +0000

On 08/03/11 17:34, Ivan Zhakov wrote:
> On Tue, Mar 8, 2011 at 19:49, Philip Martin <philip.martin_at_wandisco.com> wrote:
>> Ivan Zhakov <ivan_at_visualsvn.com> writes:
>>
>>> So, as a comparison, I ran the same tests to a localhost trunk(r1078338)
>>> server. Fedora 14 x86_64, Apache 2.2.17.
>>>
>>> trunk (http-library=neon):
>>> real 0m20.785s
>>> user 0m0.912s
>>> sys 0m1.659s
>>>
>>> trunk (http-library=serf):
>>> real 0m21.351s
>>> user 0m0.873s
>>> sys 0m1.639s
>>> ]]
>>>
>>> But with remote server running 1.6.16:
>>> [[[
>>> trunk (http-library=neon):
>>> real 0m15.881s
>>> user 0m0.968s
>>> sys 0m1.029s
>>>
>>> trunk (http-library=serf):
>>> real 2m45.159s
>>> user 0m1.057s
>>> sys 0m1.169s
>>> ]]]
>>>
>>> 15 seconds with ra_neon against 2:45 minutes with ra_serf.
>>
>> Importing a Subversion wc, client on laptop, server on desktop, across
>> LAN:
>>
>> 1.6.x client, 1.6.x server, serf : 20s
>> trunk client, 1.6.x server, serf : 34s
>> 1.6.x client, trunk server, serf : 20s
>> trunk client, trunk server, serf : 34s
>> any client, any server, neon : 20s
>>
>> So here it's serf-0.7.1 that has the performance problem.
>>
> It seems I found reason why ra_serf is slower than ra_neon. ra_serf
> sends CHECKOUT request for _each_ folder and file that being imported,
> while ra_neon perform it only for root directory. Maybe DAV experts
> can answer which behavior is correct: should WebDAV client CHECKOUT
> each resource being modified or it's fine to CHECKOUT only the root of
> commit operation?

This reminds me that it's readily apparent that there is still no
pipelining being done on an import/commit in either ra_neon or ra_serf,
even with a 'v2' server. Here's some numbers for that, again the same
dataset I've been using, now using a benchmark script I have in development.

trunk client in France -> trunk server in UK (ra_serf)
219s

trunk client in France -> trunk server in UK (ra_neon)
133s

trunk client in France -> trunk server in UK (ra_svn)
10s

John.

-- 
John Beranek                         To generalise is to be an idiot.
http://redux.org.uk/                                 -- William Blake

Received on 2011-03-08 18:53:20 CET

This is an archived mail posted to the Subversion Dev mailing list.