我们计划在网络自身速度很慢的环境中安装Subversion存储库。 之前使用的VCS是VSS,使用它是一场噩梦(不仅仅是因为它的“功能”)。
所以,我的问题是Svnserve和apache模块之间的选择。我知道由于无状态协议,apache模块会变慢,但我不知道它意味着增加多少时间。
是否有某些基准或规则表明两台服务器之间的平均速度差异?
答案 0 :(得分: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合并操作期间测量了最显着的性能损失 - 如果例如,您会立即注意到svn日志性能更差。使用Eclipse Subversion插件Subclipse。
作者还提供a benchmark比较两者。
我运行snvserv,在Berkely DB后端上提供大约50个存储库,并且对性能没有任何抱怨。不过,作为旁注,只有10个用户。
我实际上发现svnserve非常容易安装和维护,并且不会因缺乏未来而惩罚你。可以为svnserve启用SSH,并且如果你是'一个存储库,很多项目'的那种人'Steve Robbins谈到的话,也可以使用基于路径的安全性。)
答案 1 :(得分:2)
从我自己的基准测试中,我发现在对500meg标记周围的回购操作时,DAV,SVN和FILE之间几乎没有区别。 DAV模型的主要优点是可以获得更精细的安全性,特别是如果您是“一个回购,很多项目”的人,
答案 2 :(得分:2)
您可能有兴趣知道SVN的1.7版本将具有faster HTTP protocol。新的mod_dav_svn
模块将支持旧的和新的HTTP协议。
我将使用HTTP并升级到SVN 1.7以稍后修复性能损失。这是一项更多的工作,但它的优势在于您可以使用任何Apache身份验证模块。这很好,以避免引入另一个用户密码。例如,您可以与Windows域控制器集成。