SVN工作副本通过NFS

时间:2013-07-09 16:00:59

标签: linux svn nfs

当工作副本通过NFS运行时,有没有办法提升svn性能?

(*)它和NFS挂载分区(/ home)是必需的。

我猜SVN客户端会在提交时读取整个树以查找更改。我不知道什么可以使结账缓慢。

3 个答案:

答案 0 :(得分:3)

根据Subversion FAQ

  

工作副本可以存储在NFS上(一种常见的情况是主目录位于NFS服务器上)。在Linux NFS服务器上,由于在检出文件时Subversion内部使用的重命名量,一些用户报告应禁用“子树检查”(默认情况下启用它)。有关如何禁用子树检查的详细信息,请参阅NFS Howto Server Guide和exports(5)。

结帐性能可能受到一些因素的限制,但在您的情况下很可能是该NFS安装的I / O - 除非您使网络连接饱和,或服务器尺寸过小。

答案 1 :(得分:0)

使用“nolock”选项进行安装。它实际上是OS本地锁,而不是NFS服务器端锁。

我从这个选项中获得了更好的表现。

答案 2 :(得分:-1)

基于NFS的检出性能非常糟糕,以至于它成为主要的瓶颈,而不是Subversion服务器的带宽。 Bryce Denney和Wilson Snyder的rsvn是一个perl脚本,它使用ssh登录NFS服务器(假设允许)并远程运行svn命令。在我的测试中,它的性能提高了几个数量级。摘自手册页:

  

NAME

     

rsvn - 远程svn - 如果可能,在文件服务器上运行subversion命令

     

概要

     

rsvn ANY_SVN_COMMAND     rsvn更新     rsvn --test

     

说明

     

如果可能,请在文件服务器上运行svn命令,而不必等待NFS。否则像往常一样运行svn。某些SVN命令将始终在本地运行,既可以是“安全”,也可以是因为在文件服务器上运行没有任何好处(svn log)。

     

默认情况下将发送到文件服务器的命令是这些(及其缩写):

add checkout cleanup diff merge resolved
revert status switch update
     

为什么提交不能远程运行?因为它将启动一个编辑器,它不会总是通过非交互式SSH工作,或者你可以使用-m“FOO BAR”并且shell的引用全部搞砸了。最好弄清楚如何解决这些问题,并在列表中添加“提交”。