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

Re: HTTP network traffic of simple SVN commands

From: Ryan Schmidt <subversion-2007b_at_ryandesign.com>
Date: Fri, 11 Jan 2008 18:23:06 -0600

On Jan 11, 2008, at 17:47, Karen Tracey wrote:

> At 06:10 AM 1/11/2008, Thomas Pircher wrote:
>
>> [this is probably a FAQ, but I could not find it in the Subversion
>> FAQ.]
>> A simple 'svn cat file' produces an incredible network traffic. For
>> example, a
>> svn cat http://svn.collab.net/repos/svn/trunk/BUGS
>> produces over 70 packets over the network. When I do it on our
>> internal
>> SVN server (HTTP with authentication) I get the beauty of 278 IP
>> packets
>> transferred over the wire.
>>
>> The SVN client and our internal server are both on version 1.4.4
>> and are
>> running on Linux.
>>
>> Is this due to a misconfiguration on my side? Is it possible to
>> optimize
>> the traffic? I'm accessing our internal SVN server through a
>> _very_ slow
>> VPN, so reducing the amounts of packets would give me a huge benefit.
>
> Based on a wild guess and some experiments I just tried, the 70 vs.
> 278 packets is probably a result of your internal SVN server being
> configured with KeepAlive Off. For my own server (where I use
> https://) I get 86 packets for a small file cat with KeepAlive On
> and 343 with KeepAlive Off. So configuring KeepAlive On in the
> Apache config for your internal server could help. (svn.collab.net
> is apparently configured with it On)
>
> Still, 70+ packets for a tiny-file cat seems like a lot. I took my
> own packet capture for the BUGS file with a tool that could parse
> the payloads and it shows that the SVN client issues 18 PROPFINDs
> before finally sending the GET for the file. Each of these is sent
> in two pieces, first the headers and than the xml of the content;
> the response comes in a single packet. So that is 3*18 = 54
> packets, plus 2 for the actual GET and its response, plus 6 for
> typical minimum TCP connection setup and teardown: 62 packets. In
> my trace there were an additional 14 packets of TCP overhead from
> bare ACKs that did not get piggypbacked on data, for a total
> exchange of 76 packets.
>
> What are all those PROPFINDs? Oddly, 11 of them seem to be
> duplicates of ones requested earlier in the exchange. I know
> nothing of SVN internals, so I have no idea why it does this.
> There may be a good reason, or I may be missing some subtle
> difference in the requests. It may also be a case of this just not
> being an optimized path -- after all, most often you are expected
> to be operating on your working copy, and not going to the server
> at all. Update and commit are the paths I would hope would be
> optimized, more than cat.
>
> But, in case anyone is interested or could explain the behavior,
> I'll append my breakdown of the "svn cat http://svn.collab.net/
> repos/svn/trunk/BUGS" traffic below. There seems to be a (6 times
> repeated) pattern of 3 PROPFINDs in sequence where the 1st is
> always the same and the 2nd and 3rd start to vary after three go-
> rounds.

Maybe "SVNPathAuthz off" in your httpd.conf would help, if you don't
need path-based authorization.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-01-12 01:26:50 CET

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.