[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: Ivan Zhakov <ivan_at_visualsvn.com>
Date: Mon, 14 Mar 2011 23:56:49 +0300

On Mon, Mar 14, 2011 at 23:26, Lieven Govaerts <svnlgo_at_mobsol.be> wrote:
>
>
> On Mon, Mar 14, 2011 at 8:52 PM, Ivan Zhakov <ivan_at_visualsvn.com> wrote:
>>
>> On Mon, Mar 14, 2011 at 22:47, John Beranek <john_at_redux.org.uk> wrote:
>> > On 14/03/2011 19:45, Ivan Zhakov wrote:
>> >> On Mon, Mar 14, 2011 at 20:46, John Beranek <john_at_redux.org.uk> wrote:
>> >>> On 14/03/11 17:14, Philip Martin wrote:
>> >>>> Ivan Zhakov <ivan_at_visualsvn.com> writes:
>> >>>>
>> >>>>> I investigated your problem with high CPU usage and fixed in serf in
>> >>>>> r1456. Could you please test it and confirm that problem with high
>> >>>>> CPU
>> >>>>> load is fixed in your case?
>> >>>>
>> >>>
>> >>> Hmm, your timings still don't match mine. I still see ra_serf being
>> >>> (significantly) slower than ra_neon. With serf r1456 and SVN r1081484
>> >>>
>> >>> Export over a LAN from a trunk server:
>> >>>
>> >>> trunk ra_neon: 1.42
>> >>> trunk ra_serf: 2.44
>> >>>
>> >>> Export over localhost from a trunk server:
>> >>>
>> >>> trunk ra_neon: 1.69
>> >>> trunk ra_serf: 3.00
>> >>>
>> >>> [I imagine this is a little slower because one host (a dual-core
>> >>> workstation) is now both client and server]
>> >>>
>> >>> Cheers,
>> >> Hi John,
>> >>
>> >> Does your server requires authentication? What is MaxKeepAliveRequests
>> >> settings?
>> >
>> > Yes, and:
>> >
>> > Timeout 300000
>> > KeepAlive On
>> > MaxKeepAliveRequests 0
>> > KeepAliveTimeout 500000
>> >
>> Thanks,
>>
>> Authentication is one problem, because serf sends many pipelined
>> requests and gets 403 authorization required reply, and only after
>> that sends requests with authorization headers. This is place for
>> optimization.
>
> Hu? serf sends the first request and then waits for the authentication
> header of the 401 result before sending the next request. Did we loose that
> mechanism when moving authz from ra_serf to serf?
As far I remember, now it works different.
1. Send all pipelined requests
2. When get the first 401 response, serf switching off pipelining
3. Perform authentication handshake (sending requests and receiving
responses one by one)
4. Switching pipelining on and sending all outstanding requests.

-- 
Ivan Zhakov
Received on 2011-03-14 21:57:40 CET

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