Svn Subversion性能调整

Svn Subversion性能调整,svn,Svn,我们有一个3.5 Gb的SVN存储库,最近从一个6 Gb的存储库迁移过来。我们保留所有内部制作的软件,并有许多小的共享组件。我们也做了很多标记。项目保留其二进制依赖项的副本,主要是lib。我们现在不能移动到GIT 我们开发人员的第一印象是Subversion非常慢,我一直告诉他们与历史相关的操作非常慢,但也有优势 通过mod_dav_svn和自定义身份验证进行访问。授权将通过提交后挂钩实现,因为我们每年外包一些项目,并需要详细的安全规则 我们希望优化访问,以便: 没有“svn包” 实现了身份验

我们有一个3.5 Gb的SVN存储库,最近从一个6 Gb的存储库迁移过来。我们保留所有内部制作的软件,并有许多小的共享组件。我们也做了很多标记。项目保留其二进制依赖项的副本,主要是lib。我们现在不能移动到GIT

我们开发人员的第一印象是Subversion非常慢,我一直告诉他们与历史相关的操作非常慢,但也有优势

通过mod_dav_svn和自定义身份验证进行访问。授权将通过提交后挂钩实现,因为我们每年外包一些项目,并需要详细的安全规则

我们希望优化访问,以便:

  • 没有“svn包”
  • 实现了身份验证缓存
  • 已准备好评估SVN服务
我们存储库的布局如下所示:

\root
 \proyect1
  \trunk
   <files>
  \docs
  \branches
  \tags
   \proyect1-1.2.3-beta
    <files>
   \proyect1-1.3.0
     <files>
   etc...
 .
 .
 .
 \proyectn
\root
\项目1
\树干
\文件
\分支机构
\标签
\项目1-1.2.3-beta
\项目1-1.3.0
等
.
.
.
\项目

以前是否有其他与硬件无关的优化显示了成功?我们文件的布局有什么不同吗?

我只对我经历过的部分进行评论

1) 首先,它很大!通常,最好将二进制文件和库放在存储库之外,即使有时将所有内容放在一起更方便。我们有这样的项目(在我工作的地方),其中的文件在存储库中没有位置,而且占据了很多位置。它在每次签出或重要提交时都会杀死服务器,其他项目都很好

通常,分离项目也是一个好主意,使用
svn:externals
您有足够的灵活性在必要时链接它们,并且可以避免单点故障问题、庞大的存储库大小、更容易进行备份等等

但你不能总是选择那些参数

2) 它是Linux Apache服务器,还是在Windows上运行?我看到了两者之间的巨大差异,Windows版本往往较慢,并且对配置非常敏感

3) 我将使用
svnserve
而不是apachemod\u dav\u svn进行测试。网络上的负载较轻,当许多人共享同一台服务器时(也取决于网络配置),这也可能成为阻塞点

4) 您使用的是1.5还是更好的1.6?文件系统已经得到了改进,如果您是从以前的版本迁移过来的,那么执行转储/加载通常是有好处的()。我们对大型存储库进行了一些测试,获得了几个百分点,但我们观察到的结果有很大差异

5)你也可以考虑这个(从)-虽然我从未尝试过这种特殊的可能性:

从Subversion 1.6开始,FSFS文件系统具有多个可配置参数,管理员可以使用这些参数微调其存储库的性能或磁盘使用情况。您可以在存储库的db/fsfs.conf文件中找到这些选项及其文档

6) 如果钩子脚本的实现不好,可能会产生影响,从而给服务器交互增加额外的延迟


7) TortoiseSVN使用日志缓存,有时很烦人(它会锁定您无法删除的文件-如果您不知道这一点,可能会令人惊讶),但在用户浏览日志时,它提供了更快的响应(除了在Windows上是一个集成良好的客户端)。

简短回答:尝试svnserve!在我不久前做的几个基准测试中,对于大多数操作,它比mod_dav_svn快了几倍

我们随后切换到svnserve,到目前为止还没有回顾,但如果需要,您也可以并行操作这两台服务器,并对其进行正确配置

长故事和测量结果见/

开发人员的第一印象是Subversion非常有用 慢点,我一直告诉他们历史相关的操作是 也有好处

Apache Subversion是一个集中式版本控制系统。SVN完全能够存储GB(如果不是TB)的数据,包括文本和二进制文件或艺术家资产。您甚至可以将其分发—使用
svnsync
或。多站点或分布式存储库可帮助您提高性能,并在全球范围内部署您的版本

请注意,现代颠覆比十年前快得多


除此之外,我想说的是,很多关于“svn性能”的抱怨都是由1)执行访问扫描的防病毒或防火墙2)3)网络问题引起的。

注意,这个问题在serverfault.com上更合适。我同意,我不知道serverfault存在=你可以在那里复制这个问题,你可能会得到更多的答案。我认为这不违反网站政策。