Apache 上的 LDAP 连接很慢?

Apache 上的 LDAP 连接很慢?

我正在尝试排除故障,为什么第一次调用 Web 服务需要一分钟以上的时间,而后续调用则需要不到一秒的时间(这种情况每 10 分钟以上重复一次,没有调用)。我在服务器上运行了 Wireshark,发现的区别是慢速请求调用 LDAP,而另一个请求没有。在慢速请求中,我可以看到客户端/服务器 Hello 和 Handshake 以及 LDAP 调用。然后服务器等待(或处理其他请求),直到恰好 60 秒后(见下图),再次调用 LDAP,之后立即开始执行代码的第一行。

每次都需要恰好 60 秒这一事实让我认为某处存在超时,但我在配置方面遇到了困难。

其他非 Web 服务请求直接从第二个 LDAP 调用开始,但此 REST 请求由于某种原因受到惩罚。

有什么想法可以改善这一点吗?任何想法都会有很大帮助。谢谢

查看执行时间

答案1

找到原因:Windows 似乎在 15 分钟后关闭 LDAP 连接,但默认的 Apache 行为似乎是尝试无限期地重新使用该连接。如果 Apache 在 Windows 关闭连接后尝试重新使用它,则需要 60 秒的延迟才能等待连接超时,这与我的问题相符。

许多论坛报告称,在 Apache 配置中将 LDAPConnectionPoolTTL 降低到低于 MaxConnIdleTime 的值可以解决他们的问题,但对我来说唯一有效的方法是将其设置为 0,从而完全禁用对现有连接的重用。

相关内容