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