7

我们计划在网络本身非常慢的环境中安装 Subversion 存储库。以前在那里使用的 VCS 是 VSS,使用它是一场噩梦(不仅仅是因为它的“功能”)。

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

4

3 回答 3

6

取自此资源

在大多数情况下,如果讨论版本控制系统 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 merge 操作期间测量的 - 例如,您会立即注意到更差的 svn log 性能。使用 Eclipse Subversion 插件 Subclipse。

作者还提供了一个比较两者的基准。

我运行 snvserv,它在Berkely DB后端为大约 50 个存储库提供服务,并且对性能没有任何抱怨。不过,附带说明一下,只有 10 个用户。

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

于 2009-02-02T09:16:57.757 回答
2

从我自己的基准测试中,我发现 DAV、SVN 和 FILE 在对 500meg 左右的 repo 进行操作时几乎没有区别。DAV 模型的主要优势是您可以获得更细粒度的安全性,特别是如果您是“一个 repo,许多项目”类型的人,

于 2009-02-02T09:09:47.537 回答
2

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

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

于 2011-02-05T15:41:09.383 回答