我需要一些有关如何诊断Elasticseach慢查询的建议。
设置
行为
问题 -有时,响应时间会在100-200毫秒之间跳跃,但是所需的时间仍然是1毫秒。我也能够在本地复制此行为(使用ElasticSearch泊坞窗)。
这是我捕获的Fiddler的踪迹,这是我的应用程序对Elasticsearch的调用:
ClientConnected: 17:28:44.325
ClientBeginRequest: 17:34:34.953
GotRequestHeaders: 17:34:34.953
ClientDoneRequest: 17:34:34.953
Determine Gateway: 0ms
DNS Lookup: 0ms
TCP/IP Connect: 0ms
HTTPS Handshake: 0ms
ServerConnected: 17:34:27.538
FiddlerBeginRequest: 17:34:34.953
ServerGotRequest: 17:34:34.953
ServerBeginResponse: 17:34:35.171
GotResponseHeaders: 17:34:35.171
ServerDoneResponse: 17:34:35.172
ClientBeginResponse: 17:34:35.172
ClientDoneResponse: 17:34:35.178
因此,上面说的是Elasticsearch集群花了218ms来处理请求。但是花费的时间是1毫秒。
我如何跟踪这个缓慢的请求?显然,这不是查询速度(因为使用率较低),因此它一定是集群中的某个东西。
有什么建议吗?
编辑
这是来自Kibana的一些数据,在15分钟的负载测试中,我做了:
所以..根据我的愚蠢分析,那里看上去还不错。
以下是我的性能监控工具中的统计信息。您可以清楚地看到峰值和缓慢的异常值:
不确定从这里还能去哪里?我应该寻找其他指标吗?
答案 0 :(得分:-1)
只是要弄清楚took
(从Elastic Discuss复制而来)中没有的内容:
由于took
太低,因此查询或响应本身可能没什么问题。此外,您从Elasticsearch发布的所有统计数据看起来都很不错。我想知道这可能是网络还是序列化中的某个东西?
PS:我认为这不是真的,您只需要通过API而不是配置文件来启用它。但是由于您的took
太低,因此您在这里找不到任何相关内容。
注意:ElasticCloud =没有慢日志