我在存储小型和大型 (+1GB) 文件的 Apache HTTPS 服务器后面有一个 SVN 存储库。当我提交一个大文件时,传输速度大约为 10MB/秒(使用 1GBit 网络线路)。当我查看服务器上的 CPU 利用率时,它已经饱和,大约 85% 被 apache2 消耗,大约 15% 被磁盘驱动程序消耗。
我已经尝试禁用 Apache 日志记录和 SSL,但这无助于提高传输速度。这让我觉得mod_dav_svn
是占用了大部分的CPU?我还尝试增加服务器上可用核心的数量(默认 = 1 个核心),但这会莫名其妙地减慢提交速度,而 httpd 仍然使用 1 个核心。并且设置SVNCompressionLevel 0
也没有导致任何明显的速度提升。
有没有办法通过并行化或其他优化来显着提高传输速度?
服务器:
- Debian 9.3
- 阿帕奇 2.4.25
- libapache2-mod-svn 1.9.5
- svn 存储库:默认 FSFS 配置(即在 中全部注释掉
fsfs.conf
)。HDD 可以写入高达 30Mb/秒(硬件受限)而不会使 CPU 饱和(通过复制测试)。FS 是 NTFS,使用ntfs-3g
withbig_writes
enabled 在写入 @10MB/sec 时使用大约 10-15% CPU。
客户:
- svn 1.8.13
CPU:第一代英特尔酷睿@3.20Ghz
显然,如果我能以 25-30MB/秒的速度传输,我会非常高兴。