On Wed, Apr 16, 2014 at 7:13 PM, Florian Ludwig
<vierzigundz...@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

Reply via email to