[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 15:30:56 +0200

On Tue, Apr 22, 2014 at 2:55 PM, Florian Ludwig
<vierzigundzwei_at_gmail.com> wrote:
>
>>
>> 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.
>
>
> You assume that the file operation performance of Windows on NTFS and Linux
> on NTFS is the same - which I am sure it is not. First of all the NTFS
> driver on Linux is FUSE-based so it runs in userspace and therefor slower
> than kernel based drivers such as ext4. Also ext4 is one of the most used
> file system on Linux so I expect its code to be much more optimized.

Okay, I handwaved a bit too much. Maybe we should just take the
Linux+NTFS numbers with a grain of salt then, and mainly focus on
Linux+ext4 vs. Windows+NTFS. The fact remains that there are two
variables changing. But maybe it's not a big issue for this
comparison, and it's almost unavoidable.

>
>> 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.
>
>
> I tried that, it bring down the checkout times (better result of two runs):
>
> * Linux ext4: 1m 15s
> * Linux NTFS: 3m 2s
> * Windows NTW: 6m 52s
>
> So there is no noteworthy change on Linux but Windows performance improved
> by 25% (9m 19s down to 6m 52s).

Interesting (especially that it changes nothing for Linux+ext4 ---
that might suggest that this combination has far more agressive disk
caching so it doesn't have to sync often with the underlying harddisk
even with exclusive-locking=false ... or something like that).

OK, so the factor (Windows NTFS vs. Linux ext4) then becomes around 5.5.

> It is still slow and further improvements
> would be welcome.

I agree. Unfortunately I don't have the expertise nor the time to dive
into this myself. I hope one of the other developers can take a
further look.

-- 
Johan
>> 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'.
>
>
>  Linux:
>
> svn, version 1.8.8 (r1568071)
>    compiled Feb 28 2014, 19:40:43 on x86_64-redhat-linux-gnu
>
> Copyright (C) 2013 The Apache Software Foundation.
> This software consists of contributions made by many people;
> see the NOTICE file for more information.
> Subversion is open source software, see http://subversion.apache.org/
>
> The following repository access (RA) modules are available:
>
> * ra_svn : Module for accessing a repository using the svn network protocol.
>   - with Cyrus SASL authentication
>   - handles 'svn' scheme
> * ra_local : Module for accessing a repository on local disk.
>   - handles 'file' scheme
> * ra_serf : Module for accessing a repository via WebDAV protocol using
> serf.
>   - using serf 1.3.4
>   - handles 'http' scheme
>   - handles 'https' scheme
>
> System information:
>
> * running on x86_64-unknown-linux-gnu
>   - Fedora release 20 (Heisenbug) (Heisenbug) [Linux 3.13.8-200.fc20.x86_64]
> * linked dependencies:
>   - APR 1.5.0 (compiled with 1.5.0)
>   - APR-Util 1.5.3 (compiled with 1.5.3)
>   - SQLite 3.8.4.2 (compiled with 3.8.3)
>
> Windows:
>
> svn, version 1.8.8 (r1568071)
>    compiled Apr 12 2014, 14:17:25 on x86-microsoft-windows
>
> Copyright (C) 2013 The Apache Software Foundation.
> This software consists of contributions made by many people;
> see the NOTICE file for more information.
> Subversion is open source software, see http://subversion.apache.org/
>
> The following repository access (RA) modules are available:
>
> * ra_svn : Module for accessing a repository using the svn network protocol.
>   - with Cyrus SASL authentication
>   - handles 'svn' scheme
> * ra_local : Module for accessing a repository on local disk.
>   - handles 'file' scheme
> * ra_serf : Module for accessing a repository via WebDAV protocol using
> serf.
>   - using serf 1.3.4
>   - handles 'http' scheme
>   - handles 'https' scheme
>
> System information:
>
> * running on x86_64-microsoft-windows6.1.7601
>   - Windows 7 Ultimate N, Service Pack 1, build 7601 [6.1 Client
> Multiprocessor Free]
> * linked dependencies:
>   - APR 1.5.0 (compiled with 1.5.0)
>   - APR-Util 1.5.3 (compiled with 1.5.3)
>   - SQLite 3.8.3.1 (compiled with 3.8.3.1)
> * loaded shared libraries:
>   - C:\Program Files\TortoiseSVN\bin\svn.exe   (1.8.8.60743)
>   - C:\Windows\SYSTEM32\ntdll.dll   (6.1.7601.18247)
>   - C:\Windows\system32\kernel32.dll   (6.1.7601.18409)
>   - C:\Windows\system32\KERNELBASE.dll   (6.1.7601.18229)
>   - C:\Program Files\TortoiseSVN\bin\libsvn_tsvn.dll   (1.8.8.60743)
>   - C:\Program Files\TortoiseSVN\bin\libapr_tsvn.dll   (1.5)
>   - C:\Windows\system32\WS2_32.dll   (6.1.7601.17514)
>   - C:\Windows\system32\msvcrt.dll   (7.0.7601.17744)
>   - C:\Windows\system32\RPCRT4.dll   (6.1.7601.18205)
>   - C:\Windows\system32\NSI.dll   (6.1.7600.16385)
>   - C:\Windows\system32\MSWSOCK.dll   (6.1.7601.18254)
>   - C:\Windows\system32\user32.dll   (6.1.7601.17514)
>   - C:\Windows\system32\GDI32.dll   (6.1.7601.18275)
>   - C:\Windows\system32\LPK.dll   (6.1.7601.18177)
>   - C:\Windows\system32\USP10.dll   (1.626.7601.18009)
>   - C:\Windows\system32\ADVAPI32.dll   (6.1.7601.18247)
>   - C:\Windows\SYSTEM32\sechost.dll   (6.1.7600.16385)
>   - C:\Windows\system32\SHELL32.dll   (6.1.7601.18222)
>   - C:\Windows\system32\SHLWAPI.dll   (6.1.7601.17514)
>   - C:\Windows\system32\MSVCR110.dll   (11.0.51106.1)
>   - C:\Program Files\TortoiseSVN\bin\libaprutil_tsvn.dll   (1.5.3)
>   - C:\Windows\system32\WLDAP32.dll   (6.1.7601.17514)
>   - C:\Program Files\TortoiseSVN\bin\intl3_tsvn.dll   (0.14.6)
>   - C:\Program Files\TortoiseSVN\bin\libsasl.dll   (2.1.24)
>   - C:\Windows\system32\ole32.dll   (6.1.7601.17514)
>   - C:\Windows\system32\Secur32.dll   (6.1.7601.18270)
>   - C:\Windows\system32\SSPICLI.DLL   (6.1.7601.18270)
>   - C:\Windows\system32\CRYPT32.dll   (6.1.7601.18277)
>   - C:\Windows\system32\MSASN1.dll   (6.1.7601.17514)
>   - C:\Windows\system32\VERSION.dll   (6.1.7600.16385)
>   - C:\Windows\system32\IMM32.DLL   (6.1.7600.16385)
>   - C:\Windows\system32\MSCTF.dll   (6.1.7600.16385)
>   - C:\Windows\system32\profapi.dll   (6.1.7600.16385)
>   - C:\Program Files\TortoiseSVN\bin\saslANONYMOUS.dll   (2.1.24)
>   - C:\Program Files\TortoiseSVN\bin\saslCRAMMD5.dll   (2.1.24)
>   - C:\Program Files\TortoiseSVN\bin\saslDIGESTMD5.dll   (2.1.24)
>   - C:\Program Files\TortoiseSVN\bin\saslGSSAPI.dll   (2.1.24)
>   - C:\Program Files\TortoiseSVN\bin\saslLOGIN.dll   (2.1.24)
>   - C:\Program Files\TortoiseSVN\bin\saslNTLM.dll   (2.1.24)
>   - C:\Program Files\TortoiseSVN\bin\saslPLAIN.dll   (2.1.24)
>   - C:\Windows\system32\Msimg32.DLL   (6.1.7600.16385)
>   - C:\Windows\system32\api-ms-win-downlevel-advapi32-l1-1-0.dll
> (6.2.9200.16492)
>   - C:\Windows\system32\psapi.dll   (6.1.7600.16385)
Received on 2014-04-22 15:31:55 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.