我的公司目前在 Windows XP 上使用 TortoiseSVN 1.6.16 32 位通过 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 浏览器(10 个项目):15 分钟
- 更新 50 个文件的新签出:1 分钟
- 签入单个空文件:30 秒
- 乌龟交替显示正常传输速度和 0 字节/秒。许多小文件似乎比一些大文件慢。
- 使用 neon 作为 http-lib 时连接慢导致各种失败(serf 仍然很慢,但操作成功完成且没有错误)
- EasySVN、SmartSVN 和 TortoiseSVN 附带的 SVN 命令行客户端显示相同的行为。与 TortoiseSVN 1.6.16 64 位相同。
- 将服务器协议更改为 HTTP(无 SSL)并不能改善这种情况
另一方面
- Windows XP 上的 TortoiseSVN 1.7.6 32 位在我们的服务器上运行良好
- 通过浏览器/WebDAV 访问即使在 Windows 7 下也能正常工作
- 服务器端日志不显示错误甚至警告
我发现几个帖子也抱怨 Windows 7 上的缓慢行为,但它们不符合我的要求,因为它们是本地操作或仅限于 TortoiseSVN。
由于没有迹象表明 Windows 7 上的 Subversion 存在一般问题,我怀疑这可能是我们操作系统的网络参数或协议版本。是否有任何已知会影响 Subversion 性能的参数?
我不得不承认我不熟悉 Subversion(或者更确切地说是 neon/serf)是如何依赖操作系统以及依赖于哪些部分的。任何有关这方面的信息将不胜感激。
我应该测试的 subversion 'servers' 文件中是否有任何参数?您如何看待 Wiresharking 连接对我有帮助的机会?
欢迎类似的经验、意见、提示、帮助和吸管。
Wireshark 显示 ca 的零星间隙。TCP 流中的 5 秒显然是由 VisualSVN 服务器引起的。
- https:服务器确认客户端问候,然后等待 5 秒,然后再发送服务器问候
- https:服务器确认客户端密钥,然后在提供其加密握手数据之前需要 5 秒
- https:即使在握手之外,服务器有时也会发送一个 ACK(在 TCP 级别),然后等待 5 秒,然后再将某些内容发送回客户端(数据是加密的,因此很难判断中断是否发生在某个感兴趣的点)
- http:在 NTLM 身份验证期间在两个服务器端传输
- http:在服务器发送 FIN 标志之前