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

Re: Subversion Windows Performance compared to Linux

From: Johan Corveleyn <jcorvel_at_gmail.com>
Date: Tue, 22 Apr 2014 11:25:55 +0200

On Wed, Apr 16, 2014 at 7:13 PM, Florian Ludwig
<vierzigundzwei_at_gmail.com> wrote:
> Hi,
>
> this topic was raised several times in the past - the answers range from
> "will be better/solved in the next version 1.7" or "it is due to ntfs vs
> ext3/4" or it's the AV, network setup or the Windows file indexing service.
> After disabling all those and running a test checkout on Linux and Windows
> on the same machine I still get a result of Linux being 7.3x times faster.
> Any ideas why?
>
> Versions:
> * 1.8.8 on Linux
> * 1.8.6.254 command line from tortoise
> * 1.7.16 svnserve linux
>
> Note: Upgrading the server might be an option but I guess that is not the
> root cause of the problem here?
>
>
> The repository:
> * Checkout size: 8.9 GB (without .svn folder 4.9 GB)
> * 410 Folders
> * 23,706 files
>
>
> Commands used to test:
> * Linux: $ time svn co svn://10.0.0.1/test > /dev/null
> * Windows: PS Measure-Command { svn co svn://10.0.0.1/test > $null }
>
> Results (tests run twice, better result taken):
> * Linux on ext4 (journaling enabled): 1m 16s
> * Linux on NTFS*: 3m 29s
> * Windows 7 on NTFS*: 9m 19s
>
> [*] Same partition

Interesting. I think you'll find a much larger difference with a 1.6
client and older (the old working copy generation) ... 1.7+ has closed
the gap a bit, but as you show there is still a very significant
difference.

From your numbers I deduce that the performance degradation can be
attributed partly to NTFS vs. ext4, and partly to Windows7 vs. Linux:
* NTFS vs. ext4: roughly a factor 3 slower.
* Windows 7 vs. Linux: roughly a factor 2.5 slower.

Another interesting data point might be: what does the client-side
option exclusive-locking [1] (available as of 1.8) do to the test
results? Can you give that a try? Just adding "--config-option
config:working-copy:exclusive-locking=true" to your command line
invocations should do the trick.

Also: it would be good to know the exact versions of sqlite and other
libraries that your svn (client) versions were built with. As of 1.8,
this information is provided by 'svn --version --verbose'.

[1] http://subversion.apache.org/docs/release-notes/1.8.html#exclusivelocking

>
> Client Machine
> --------------
>
> * Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz
> * checkout to HDD not SSD
> * 1 GBit LAN to server
> * Linux, Fedora 20 64 bit
> * Windows 7, 64 bit
> * AV deactivated
> * IPv6 deactivated
> * Windows file indexing service deactivated
> * Windows auto updates deactivated
>
>
> Server Setup
> ----------------
>
> $ svnserve -d --memory-cache-size 2048 -r /srv/svn_repos/ --cache-txdeltas
> yes --cache-fulltexts yes -c 0
>
> Thanks for any pointers,
> Florian

-- 
Johan
Received on 2014-04-22 11:26:53 CEST

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.