大变更集对Subversion有什么影响?

时间:2012-08-22 00:39:50

标签: svn fsfs

我最近向我的svn存储库提交了一个大型变更集(~7,000个文件)。这7,000个文件仅占使用FSFS后端并与svnserve 1.7一起提供的存储库总大小的5%。从那以后,在这次大型提交之后的结账修改需要花费20倍的时间。

Subversion在内部做什么导致速度减慢,有没有办法解决这个问题?

更新

  1. 在手动检出错误修订版时,我可以查看结帐开始变慢的点。结帐开始是非常快速地将文件添加到工作副本(您无法足够快地读取tty输出)。一旦结帐到达某个目录(错误的修订将2,000个文件添加到此目录(其中已包含17,000个文件)),文件将被添加到工作副本中,速度明显变慢(如每秒5个文件),用于其余的结帐。在错误的版本之前进行的修订会在整个时间内非常快速地将文件添加到工作副本中。该目录中的文件各约为1KB。

  2. 我为版本1.6和1.7编译了我自己的版本svnserve - with-debuging和--with-gprof,以便我们可以深入了解正在发生的事情。一些进一步的讨论表明,svnadmin 1.7中与内存缓存相关的一些增强功能实际上是在此版本中将其删除。 即,使用svnserve 1.6服务存储库会使此问题消失。我猜这是在http://subversion.apache.org/docs/release-notes/1.7.html#server-performance-tuning讨论的内存缓存,基于错误修订版(以及它之前的版本)的结帐时间的gprof配置文件。在rBAD中,某些svn fsfs到内存缓存函数的调用比rGOOD大约多2,000,000,000倍。

1 个答案:

答案 0 :(得分:0)

是的,SVN v1.7版本推出了许多性能增强功能。 但基于一些一般性假设。对于像单次提交中的大量文件或具有巨大尺寸的文件这样的极端情况,需要调整相关注释中指定的预设参数。