apache Svnserve VS mod_dav_svn

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/502585/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-13 17:12:35  来源:igfitidea点击:

Svnserve VS mod_dav_svn

svnapachebenchmarking

提问by gizmo

We plan to install a Subversion repository in an environment where the network is quite slow on its own. The previous VCS used there was VSS, and it was a nightmare to use it (not only because of its "feature").

我们计划在网络本身很慢的环境中安装一个 Subversion 存储库。之前用的VCS是VSS,用起来简直是噩梦(不仅是因为它的“特性”)。

So, my question is the choice between Svnserve and the apache module. I know that the apache module will be slower due to the stateless protocol, but I've no idea how much is the increase of the time it implies.
Is there somewhere some benchmarks or rules that indicate the average difference of speed between the two servers?

所以,我的问题是 Svnserve 和 apache 模块之间的选择。我知道由于无状态协议,apache 模块会变慢,但我不知道它意味着多少时间增加。
是否有一些基准或规则表明两台服务器之间的平均速度差异?

采纳答案by Martijn Laarman

Taken from this resource,

取自这个资源

In most cases, if the version control system Subversion's performance is discussed, the topics revolve around the repository backends used (Berkeley DB (bdb) vs. FSFS) and tuning some server software or even hardware parameters.

It seems to be less known that the choice of the server variant used - the Apache Subversion mod_dav_svn module or the standalone svnserve server - have a great impact to measured and perceived subversion performance. Usually svnserve is significantly faster than Apache mod_dav_svn

In a synthetic, non-representative benchmark test I performed using Subversion 1.4.5, Subversion 1.1.1 and Apache 2.0, mod_dav_svn's performance was 30% to 400% slower than svnserve's. svnserve's performance was close to local direct accesses to the repository using the svn command line tools.

The most significant performance penalty was measured during svn log and svn merge operations against the mod_dav_svn server - you'll notice worse svn log performance immediately if eg. using the Eclipse Subversion plugin Subclipse.

在大多数情况下,如果讨论版本控制系统 Subversion 的性能,主题将围绕所使用的存储库后端(Berkeley DB (bdb) 与 FSFS)以及调整某些服务器软件甚至硬件参数展开。

似乎鲜为人知的是,所使用的服务器变体的选择——Apache Subversion mod_dav_svn 模块或独立的 svnserve 服务器——对测量和感知的颠覆性能有很大影响。通常 svnserve 比 Apache mod_dav_svn 快得多

在我使用 Subversion 1.4.5、Subversion 1.1.1 和 Apache 2.0 执行的综合、非代表性基准测试中,mod_dav_svn 的性能比 svnserve 慢 30% 到 400%。svnserve 的性能接近于使用 svn 命令行工具本地直接访问存储库。

最显着的性能损失是在针对 mod_dav_svn 服务器的 svn log 和 svn 合并操作期间测量的 - 如果例如,您会立即注意到更糟糕的 svn log 性能。使用 Eclipse Subversion 插件 Subclipse。

The author also provides a benchmarkcomparing the two.

作者还提供比较两者的基准

I run snvserv that serves about 50 repositories on Berkely DBbackends and have had no complaints on the performance. As a side note there are only 10 users, though.

我运行的 snvserv 在Berkely DB后端提供大约 50 个存储库,并且对性能没有任何抱怨。不过,作为旁注,只有 10 个用户。

I actually found svnserve very easy to install and maintain and doesn't penalise you in lack of futures. SSH can be enabled for svnserve and path based security is also possible if you're the '"one repository, many projects" kind of guy' Steve Robbins talks about :)

我实际上发现 svnserve 非常易于安装和维护,并且不会因为缺乏未来而惩罚你。可以为 svnserve 启用 SSH,如果您是“一个存储库,多个项目”类型的人,那么基于路径的安全性也是可能的,Steve Robbins 谈到 :)

回答by Wim Coenen

You might be interested in knowing that the 1.7 release of SVN will feature a faster HTTP protocol. The new mod_dav_svnmodule will support both the old and the new HTTP protocol.

您可能有兴趣了解 SVN 的 1.7 版本将采用更快的 HTTP 协议。新mod_dav_svn模块将同时支持旧的和新的 HTTP 协议。

I'd go with HTTP and upgrade to SVN 1.7 to fix the performance penalty later. It's a bit more work, but it has the advantage that you can use any of the Apache authentication modules. This is great to avoid introducing yet another user password. For example, you can integrate with your windows domain controller.

我会使用 HTTP 并升级到 SVN 1.7 以修复稍后的性能损失。这需要更多的工作,但它的优点是您可以使用任何 Apache 身份验证模块。这对于避免引入另一个用户密码非常有用。例如,您可以与 Windows 域控制器集成。

回答by Steven Robbins

From my own benchmarking I found virtually no difference between the DAV, SVN and FILE when doing operations on a repo around the 500meg mark. The main advantage with the DAV model is the more granular security you get, especially if you are a "one repo, many projects" kind of guy,

从我自己的基准测试中,我发现在大约 500meg 标记的 repo 上执行操作时,DAV、SVN 和 FILE 之间几乎没有区别。DAV 模型的主要优点是您可以获得更细粒度的安全性,特别是如果您是“一个仓库,多个项目”类型的人,