![subversion 在提交时间歇性挂起(停止)](https://linux22.com/image/728563/subversion%20%E5%9C%A8%E6%8F%90%E4%BA%A4%E6%97%B6%E9%97%B4%E6%AD%87%E6%80%A7%E6%8C%82%E8%B5%B7%EF%BC%88%E5%81%9C%E6%AD%A2%EF%BC%89.png)
每当我们的 SVN 用户在服务器空闲一段时间后尝试提交到存储库时(例如,当天的第一次提交),提交对话框都会挂起整整一分钟,无论提交的大小如何。提交完成后,状态消息会显示类似“1 分 0 秒内传输了 5 千字节”的内容。后续提交将立即进行。我在另一个论坛上看到有人建议这可能与 LDAP 缓存有关,但我不知道该如何调查。您能解释一下是什么原因造成的吗?
更新:我在本地服务器上使用 SVN,由 CollabNet 的 SubversionEdge(v5.2.2)和 TortoiseSVN 1.10 安装。后端是 ActiveDirectory(在单独的公司服务器上维护)。LDAP 通过 SubversionEdge 配置。我可以访问设置页面,但它们对我来说都是希腊语(我没有任何 LDAP 专业知识)。
更新 #2:我怀疑这个问题可能与 Gerald 描述的问题有关,这里。但是,该问题已通过调整解决LDAPConnectionPoolTTL
,但该设置在我的 SVN/LDAP 设置的身份验证页面上不可用,所以我不知道如何调整它。
答案1
谢谢GeraldSchneider 对类似问题的详细描述我能够确定问题与称为 的 LDAP 身份验证设置有关LDAPConnectionPoolTTL
。难题在于找出如何在 CollabNet 管理门户中调整该设置。不是在身份验证页面上。相反,您必须导航到“服务器设置”,然后单击“高级设置”链接,然后在那页面上有这两个字段:
Connection Pool TTL
(默认值:-1——尝试无限期地重用连接)
和,
Timeout
(默认值:60 秒;这对应于 LDAP 响应时间)
我不太清楚这些字段的最佳设置是什么。我在各种论坛上找到了很多建议:
- Gerald 的帖子建议将 Pool TTL 设置为 0,禁用现有连接的重用,但我不清楚这会对性能造成什么影响。
- 一个论坛建议池 TTL 为 60 秒
- 二 其他论坛建议 Pool 为 900,Timeout 为 10(以及一些对 httpd.conf 文件的其他更改)。
- Atlassian 建议池 TTL 为 30 秒,并且IBM 建议10.
就我个人而言,我决定尝试将 Pool TTL 设置为 899,并将 LDAP 响应超时减少到 10。