2

I have a SVN repository behind an Apache HTTPS server that stores small and large (+1GB) files. When I commit a large file, the transfer speed is about 10MB/sec (using a 1GBit network line). When I look at CPU utilization on the server, it is saturated with about 85% being consumed by apache2, and some 15% by the disk driver.

I have already tried disabling Apache logging and SSL, but that didn't help to improve the transfer speed. This makes me think that mod_dav_svn is using most of the CPU? I have also tried to increase the amount of available cores on the server (default = 1 core), but this mysteriously slows down the commits while httpd remains using 1 core. And setting SVNCompressionLevel 0 also didn't result in any noticeable speed improvement.

Is there any way to significantly increase the transfer speed through parallelization or some other optimization?

Server:

  • Debian 9.3
  • Apache 2.4.25
  • libapache2-mod-svn 1.9.5
  • svn repository: default FSFS config (i.e. all commented out in fsfs.conf). The HDD can write up to 30Mb/sec (hardware limited) without saturating the CPU (tested with copying). FS is NTFS, using ntfs-3g with big_writes enabled which is using some 10-15% CPU while writing @10MB/sec.

Client:

  • svn 1.8.13

CPU: first generation Intel Core @3.20Ghz

Obviously, I would be very pleased if I could transfer at 25-30MB/sec.

bahrep
  • 29,961
  • 12
  • 103
  • 150
Davor Josipovic
  • 5,296
  • 1
  • 39
  • 57

1 Answers1

0

Is there any way to significantly increase the transfer speed through parallelization or some other optimization?

Yes, there is. However, the question lacks necessary details about the SVN client and server version, the server's and FSFS repository configuration and the hardware it runs on. It is hard to tell what kind of optimizations will help in your case. You may want to upgrade your server and client to the latest versions and disable the compression in the server's config.

FYI: VisualSVN Server in my tests can deliver 1Gbps speed.

bahrep
  • 29,961
  • 12
  • 103
  • 150
  • what was I thinking... I updated the question. In short, mostly using latest stuff. – Davor Josipovic Jan 12 '18 at 12:41
  • A was just looking at the default VisualSVN config files (both SVN FSFS and Apache) and I don't see any setting that can explain such a high speed. It all seems pretty default to me. It even has some optimizations disabled, such as the `SVNCacheXXX` directives. – Davor Josipovic Jan 12 '18 at 18:06
  • Just did a test with default VisualSVN and have similar performance, albeit with latest Intel CPU. The CPU is saturated and write speed is 16MB/s. And checkout transfer speed is even worse: 13MB/s with CPU saturated. Go figure... – Davor Josipovic Jan 12 '18 at 18:29