Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 搜索响应时间不稳定地翻倍_Performance_Search_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Performance,Search,elasticsearch" /> elasticsearch,Performance,Search,elasticsearch" />

Performance 搜索响应时间不稳定地翻倍

Performance 搜索响应时间不稳定地翻倍,performance,search,elasticsearch,Performance,Search,elasticsearch,我们的系统最近面临CPU使用高峰,其根本原因尚不清楚。在过去,我们面临着高内存使用率和磁盘警报,因为我们每天晚上都要进行批量索引,更新几乎所有的文档。但是高CPU使用率并不是问题 迄今收集的数据: 节点03(共6个数据节点和3个主节点)在5分钟内CPU使用率较高(>95%),导致响应时间峰值为1秒,而平均响应时间为40ms。 通过这些度量,在给定的高CPU节点上的索引计数有一个轻微的波动,同时,在年轻的GC中也有一个轻微的波动(尽管在这两种情况下都不像峰值) 我不排除繁重的索引,因为我们确实有一

我们的系统最近面临CPU使用高峰,其根本原因尚不清楚。在过去,我们面临着高内存使用率和磁盘警报,因为我们每天晚上都要进行批量索引,更新几乎所有的文档。但是高CPU使用率并不是问题

迄今收集的数据:

节点03(共6个数据节点和3个主节点)在5分钟内CPU使用率较高(>95%),导致响应时间峰值为1秒,而平均响应时间为40ms。 通过这些度量,在给定的高CPU节点上的索引计数有一个轻微的波动,同时,在年轻的GC中也有一个轻微的波动(尽管在这两种情况下都不像峰值)

我不排除繁重的索引,因为我们确实有一个卡夫卡消费者在任何时候都接受批量索引数据,但这是以每秒最多250个文档的速度控制的,每次批量调用之间的延迟时间为250毫秒

此外,热线程端点确实提供了一些数据,尽管我还不能破译它

更新

更新了问题标题,因为之前的观察结果是错误的。主要问题是响应时间加倍,CPU使用率不高,因为使用率在一段时间后趋于稳定。

有了一些进展。在峰值之后,CPU使用率逐渐降低,这是正常的。 然而,我们的响应时间始终保持在100-250毫秒之间(通常的平均值为-35-100毫秒)

当前的响应中有一个近似于牙锯(不完全是统一的牙锯)的模式

此外,当出现峰值时,旧GC计数有一个小的波动

在节点统计中未发现任何异常。将在找到时更新。仍在进行调查

还发布了最近的热门帖子-


节点03显然经历了大量索引

                "bulk": {
                "threads": 8,
                "queue": 0,
                "active": 0,
                "rejected": 0,
                "largest": 8,
                "completed": 9528532
我将节点04的统计信息与节点03进行了比较。我在03上还注意到了一些事情

  • 4144165个文档但256087749(索引总数)索引请求
  • 只有节点03具有41个打开的上下文。因此,在您获取此统计数据时,它有41个搜索请求。所有其他节点均为0
  • 与其他节点相比,节点03和节点01的合并数量非常高
您是否有将特定文档发送到特定节点的路由逻辑?或者这些节点是否包含更新频率更高的索引

还有,当您看到峰值时,您或您的应用程序是否对节点03上的索引进行了优化?从节点统计数据来看,03是唯一具有“已完成”优化的节点


另外,刷新间隔是多少?ES中的默认值为1秒。这可能会在批量索引时触发大量合并

节点03显然经历了大量索引

                "bulk": {
                "threads": 8,
                "queue": 0,
                "active": 0,
                "rejected": 0,
                "largest": 8,
                "completed": 9528532
我将节点04的统计信息与节点03进行了比较。我在03上还注意到了一些事情

  • 4144165个文档但256087749(索引总数)索引请求
  • 只有节点03具有41个打开的上下文。因此,在您获取此统计数据时,它有41个搜索请求。所有其他节点均为0
  • 与其他节点相比,节点03和节点01的合并数量非常高
您是否有将特定文档发送到特定节点的路由逻辑?或者这些节点是否包含更新频率更高的索引

还有,当您看到峰值时,您或您的应用程序是否对节点03上的索引进行了优化?从节点统计数据来看,03是唯一具有“已完成”优化的节点


另外,刷新间隔是多少?ES中的默认值为1秒。这可能会在批量索引时触发大量合并

如果您可以访问日志,请检查在cpu峰值期间运行的查询类型。排序结果是Cpu密集型的。您可能正在运行返回大量结果的查询。只是猜测…@jay我们有一个带有硬编码结果大小值的业务逻辑设置。还检查了日志中的任何anamoly。找不到任何内容。所有热线程都与搜索相关。你有没有在扣球时把热丝甩了?您的查询有什么变化吗?聚合?如果您在这些服务器上有任何监视设置,是否可以检查节点03在出现峰值时是否正在进行大量合并?@jay在峰值期间没有出现大量搜索查询。正如您在更新的问题中所看到的,我主要关心的是响应时间的增加,这是平时的两倍。如果您可以访问日志,请检查在cpu峰值期间运行的查询类型。排序结果是Cpu密集型的。您可能正在运行返回大量结果的查询。只是猜测…@jay我们有一个带有硬编码结果大小值的业务逻辑设置。还检查了日志中的任何anamoly。找不到任何内容。所有热线程都与搜索相关。你有没有在扣球时把热丝甩了?您的查询有什么变化吗?聚合?如果您在这些服务器上有任何监视设置,是否可以检查节点03在出现峰值时是否正在进行大量合并?@jay在峰值期间没有出现大量搜索查询。正如您在更新的问题中所看到的,我主要关心的是响应时间的增加,这是平时的两倍。索引请求数量的增加可能是因为我们有一个午夜工作,更新几乎所有的文档。此外,我们目前没有逻辑来路由搜索请求。目前,我们将所有搜索请求发送到前3个节点。此外,我们的批量索引大多在午夜运行,如果在此期间搜索响应上升,我们也没问题。当前刷新间隔设置为1秒。关于路由问题。我怀疑只有一个节点会接收所有搜索请求。虽然我们没有适当的路由逻辑,但我们的应用服务器会根据可用性向节点发送请求。即便如此,我们也没有那么多的搜索请求
                "bulk": {
                "threads": 8,
                "queue": 0,
                "active": 0,
                "rejected": 0,
                "largest": 8,
                "completed": 9528532