Subversion在Windows 7上的速度令人难以忍受

时间:2012-05-31 08:45:10

标签: performance svn windows-7 tortoisesvn visualsvn-server

我的公司目前在Windows XP上使用32位TortoiseSVN 1.6.16通过HTTPS连接到运行在同一网络(无代理)的Windows Server 2003上的VisualSVN-Server 2.1.19。我们使用自签名证书和使用Windows凭据的Kerberos身份验证(我想这是一个特定于VisualSVN的功能)。在这个设置中,一切都很有效。

当我的公司决定转向Windows 7时,我们尝试在Windows 7 64位上使用TortoiseSVN 1.7.6 64位,这导致了以下问题:

  • 任何涉及服务器的操作(repo-browser,checkout,update,checkin,...)都是无法忍受的,例如
    • 打开repo-browser(10个项目):15分钟
    • 更新新文件50个文件:1分钟
    • 签入一个空文件:30秒
  • 乌龟表示正常的传输速度和0字节/秒。许多小文件似乎比几个大文件慢。
  • 当使用neon作为http-lib时,连接速度慢导致各种故障(serf仍然很慢,但操作成功完成且没有错误)
  • EasySVN,SmartSVN和TortoiseSVN附带的SVN命令行客户端显示相同的行为。与TortoiseSVN 1.6.16 64位相同。
  • 将服务器协议更改为HTTP(无SSL)不会改善这种情况

另一方面

  • TortoiseSVN 1.7.6 Windows XP 32位可以正常使用我们的服务器
  • 通过浏览器访问/ WebDAV即使在Windows 7下也能正常运行
  • 服务器端日志不显示错误甚至警告

我发现有几个帖子也抱怨Windows 7上的行为缓慢,但它们不适合我的账单,因为它们是本地操作或仅限于TortoiseSVN。

由于没有迹象表明Windows 7上的Subversion存在普遍问题,我怀疑它可能是我们的操作系统的网络参数或协议版本。是否有任何参数可以影响Subversion的性能?

我不得不承认我并不熟悉Subversion(或者更确切地说是neon / serf)究竟依赖于OS以及哪些部分。任何有关这方面的信息将不胜感激。

subversion'servers'文件中是否有任何参数我应该测试?您如何看待Wireshark连接的机会对我有帮助?

欢迎类似的经历,意见,提示,帮助和吸管。

Wireshark显示了零星的零星间隙。显然由VisualSVN Server引起的TCP流中5秒。

  • https:服务器确认客户端问候,然后在发送服务器hello之前等待5秒
  • https:服务器确认客户端密钥,并且在提供加密握手数据之前需要5秒钟
  • https:即使在握手之外,服务器有时会发送一个ACK(在TCP级别上),然后等待5秒,然后再将某些内容发送回客户端(数据已加密,因此很难判断是否在某些时候发生了中断感兴趣的)
  • http:在NTLM身份验证期间的两个服务器端传输
  • http:在服务器发送FIN标志之前

4 个答案:

答案 0 :(得分:7)

Windows 7针对旧服务器的典型故障是IPv6网络。

如果您的计算机没有SVN服务器侦听IPv6地址,Windows 7可能仍会尝试首先进行TCP6连接(如果您查看TortoiseSVN进程的打开套接字,可以在Process Explorer中看到它尝试操作时,这会有几秒钟的超时,然后重试IPv4。

简单的解决方案是将服务器升级到支持IPv6的服务器,或者为Windows 7客户端禁用IPv6。

答案 1 :(得分:4)

您可以验证的另一件事(上面的答案对我们不起作用)是Internet Explorer设置,尤其是如果您有IE9。我们发现,通过在Automatically detect settings中禁用选项Internet Options -> Connection tab -> LAN settings,SVN再次开始正常工作。

答案 2 :(得分:0)

问题从未得到妥善解决。最有可能的是,客户端和服务器之间的公司内部网络路径在某种程度上是错误的。当我们将SVN服务器移动到另一台机器时,问题就变得过时了。即使使用Windows 7,服务器和客户端的设置也完全正常。

答案 3 :(得分:0)

我有一个非常缓慢的存储库浏览,慢速更新,减慢一切的相同症状。

我的SVN服务器有两个以太网卡,因此它有两个以太网IP地址。 SVN服务器只侦听其中一个IP地址。因此,通过WINS或NetBIOS进行名称解析可以解决“错误”问题。 IP地址。

TortoiseSVN会重试,最终名称解析会找到正确的' IP地址,事情会有效。