【发布时间】:2012-01-05 10:39:19
【问题描述】:
我有一个生产网络服务器托管搜索,另一台机器托管 Solr 搜索服务器(在同一个房间的子网上,所以没有网络问题)。 90% 以上的情况一切正常,但我始终收到少量 The operation has timed out 错误。
我已将 SolrNet 初始化中的超时时间增加到 30 秒 (!)
SolrNet.Startup.Init<SolrDataObject>(
new SolrNet.Impl.SolrConnection(
System.Configuration.ConfigurationManager.AppSettings["URL"]
) {Timeout = 30000}
);
...但发生的一切是我开始收到这条消息,而不是我之前看到的Unable to connect to the remote server。似乎对超时错误的数量没有影响。
我可以在 any 日志中看到 nothing(相信我,我已经看过了!)并且显然我的配置是正确的,因为它在大多数情况下都有效。任何人都知道如何找到有关此问题的更多信息?
编辑:
我现在已将 HttpRequest 连接数从 2 个增加到“大量”(我看到最多 10 个连接) - 但这对这个问题没有明显的影响。
防火墙设置为允许两台机器之间的任何连接。
我们还用我们的服务器主机检查了硬件,据他们说,连接没有问题。
编辑 2:
我们仍然看到这个问题。
我们现在正在记录超时时间,它们大多刚刚超过 30 秒 - 这是 SolrNet 层的超时时间;不过,有些是 20 秒——这是 Tomcat 默认的超时时间——这表明它是机器之间的实际连接。
但不确定从哪里开始 - 它们位于 VLAN 上,我们专门使用 VLAN 地址 - ping 的响应时间总是
【问题讨论】:
-
你的提交/优化策略是什么?
-
希望这能回答您的问题:我们每 15 分钟执行一次 dataimporthandler delta;并在一夜之间完全进口。但我不做任何优化。我现在要去读一读……你有什么建议?
-
嗯,已经阅读,并且刚刚添加了一个预定的更新?optimize=true 在完全导入后的每晚...但是TBH 我不相信优化会做很多考虑到超时超过 30 秒,通常会在不到一秒的时间内返回。