在弹性搜索中,为什么所用时间会有所不同?
如果首次击中时间较长并且下次击中时间缩短,则可以。
所用时间从80毫秒增加到20毫秒再次增加到70?
以下是样本
**"took": 17,**
"timed_out": false,
"_shards": {
"total": 246,
"successful": 245,
我很困惑,真的不明白为什么和为什么?提前谢谢?
答案 0 :(得分:1)
那么,在你的情况下,你搜索246个分片,所以你要么a)所有这些分片都在一个节点上,这意味着该节点上可能少于246个核心需要为所有这些分片提供服务,或者b)具有多个节点的集群。
在这两种情况下,由于不同的搜索查询,不同的网络延迟,争夺资源的其他进程(例如CPU),缓存命中/未命中,来自群集上其他用户的流量,您将在响应中遇到一些差异,操作系统内存管理,JVM垃圾收集,...列表相当长,这种行为对于执行Elasticsearch操作的分布式系统来说是完全正常的。
如果您必须维护系统,请定义一些您想要遵守的SLA。然后监控那些,只要你低于那个 - 不用担心。您可以查看一些选项,例如调整内存,线程池,GC和缓存设置,......列表也很长,但所有这些都要求您首先想出对行为的期望。你的系统,又称SLA。