当工作副本通过NFS运行时,有没有办法提升svn性能?
(*)它和NFS挂载分区(/ home)是必需的。
我猜SVN客户端会在提交时读取整个树以查找更改。我不知道什么可以使结账缓慢。
答案 0 :(得分:3)
工作副本可以存储在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的引用全部搞砸了。最好弄清楚如何解决这些问题,并在列表中添加“提交”。