Windows 上的 svn 客户端非常慢,Linux 上的 svn 客户端非常快

sus*_*erg 5 svn windows https tortoisesvn visualsvn-server

我被迫使用位于我们 Windows 域中的 Visual-svn-server。问题是使用windows客户端速度超级慢。奇怪的是,同一个存储库在 Linux 客户端上速度非常快。差别就像 3 秒和 90 秒一样。我知道应该有人修复服务器,而不是我尝试修复客户端,但我没有改变这样做。

因此,为了调试这个问题,我使用wireshark进行了一些包捕获,看起来像Windows,在执行“svn up”(在最新存储库上)时,在与实际的svn服务器再次对话之前做了相当多的ldap协商。这需要时间。Linux svn 客户端在执行“svn up”时不会执行任何 ldap 调用。问题不在我的机器上,而是在我所有同事的 Windows 客户端上。

我尝试使用配置选项 http-auth-types (http://svnbook.red-bean.com/en/1.7/svn.advanced.confarea.html)强制 svn 客户端进行“基本”身份验证,但没有帮助。我认为这将是基本的,没有 ldap,http-basic-auth。我能够确认该设置已包含在内,因为将其设置为“摘要”表示身份验证方法不可用。但即使这样也需要大约 60 秒,所以我的猜测是它在尝试进行身份验证之前做了 ldap-wacko 的事情。

我使用的 Subversion 客户端是 Tortoise svn 官方版本的 1.8 系列。我也尝试过 slicksvn 客户端,它确实有同样的问题。svn 版本显示 ra_serf 正在处理 https 请求,我的存储库是 Visual-svn 服务器,位于https://my_server_intra_dns_name/

当使用浏览器打开地址时,它再次达到应有的速度,因此问题不应该与 dns 或类似问题有关。

我是linux人,所以我对windows有点迷茫,但是有人知道这里发生了什么吗?

---- 编辑 ---- 我还在 Windows 主机上使用了 Linux 作为来宾操作系统,在 Linux 中执行 svn up 大约需要 3 秒,与本机 Windows 'svn.exe up' 相比,需要花费一分钟!

bah*_*rep 2

如果 Windows 计算机与 Internet 的连接有限,那么您可能会注意到通过 HTTPS 对远程存储库运行 Subversion 客户端命令时的延迟。

使用流量分析器,您可以注意到,当 Windows 尝试访问ctldl.windowsupdate.com并超时时,就会发生延迟。Windows 尝试访问ctldl.windowsupdate.com检查证书信任列表(即证书吊销列表)。由于 Internet 连接有限,Windows 可能无法访问它,从而导致这些延迟。

如果不是您的情况,那么我建议联系 VisualSVN 的支持团队进行调查

  • @susundberg Windows 使用 LDAP 进行证书吊销检查(如果可能)。 (2认同)