需要 Subversion svn+ssh 加速 - 我们可以减少每个连接的读取超时吗?

需要 Subversion svn+ssh 加速 - 我们可以减少每个连接的读取超时吗?

我有一系列脚本正在执行许多 svn 操作,并且耗时太长,我们不确定原因。例如

svn switch svn+ssh://srv/repo/...  ...

这通常需要大约 1.1 秒。我们在 RHEL 5.4 上使用 subversion 1.6.6。

时间ssh srv exit约为 80 毫秒(我们一直在努力降低这个时间)!因此时间是不是在 ssh 中花费。

strace在客户端和服务器上运行,我看到这个(sv服务器上是 svnserve,cl是客户端):

sv 08:29:43.470772 close(4)        = 0
sv 08:29:43.470839 unlink("/tmp/tempfile.tmp") = 0
sv 08:29:43.470937 write(1, "( success ( ) ) ", 16) = 16
sv 08:29:43.471062 read(0, "", 4096)       = 0
cl 08:29:44.019452 unlink("/export/.../.svn/lock") = 0

因此,似乎有半秒钟的时间被卡住了,等待最后一次读取完成。查看源代码,我猜这是 apr 库中的读取超时。虽然 subversion 调用库时超时时间不为零(忽略 HTML),但我没有看到这一点。

有没有办法可以缩短这个超时时间或者显著改善命令周转时间?

如果我们知道这会有所帮助,我们可以更新服务器版本,但无法升级客户端版本(因为大约有 500 个客户端系统正在使用)。如果需要,我们可以重新编译服务器或客户端。

谢谢

相关内容