【发布时间】:2017-01-29 18:35:33
【问题描述】:
我们的系统最近遇到了 CPU 使用率高峰,其根本原因仍然未知。过去,我们面临着高内存使用和磁盘警报,因为我们每晚都运行批量索引工作,更新几乎所有文档。但是高 CPU 使用率并不是问题。
目前收集的数据:
节点 03(6 个数据节点和 3 个主节点)遭受高 CPU 使用率 (> 95%) 5 分钟,导致响应时间峰值为 1 秒,而平均响应时间为 40 毫秒。 查看指标,在给定的高 CPU 节点上的索引计数略有增加,同时 Young GC 也有轻微的增加(但在这两种情况下都不像峰值)。
我不排除大量索引,因为我们确实有一个 kafka 消费者随时接受批量索引数据,但这控制在每秒最多 250 个文档的速度下,每个批量之间的延迟时间为 250 毫秒打电话。
此外,热线程端点确实提供了一些数据,虽然我还不能破译它。
更新
更新了问题标题,因为之前的观察结果是错误的。主要问题是响应时间加倍,并且 CPU 使用率不高,因为一段时间后使用率趋于稳定。
已经有了一些发展。峰值后,CPU使用率逐渐下降,属于正常现象。 但是,我们的响应时间始终保持在 100-250 毫秒之间(通常的平均值 - 35-100 毫秒)。
目前的响应中有一个接近锯齿形(不完全是一个均匀的锯齿形)模式。
此外,当峰值发生时,旧 GC 计数有一个小波动。
在节点统计中没有发现任何异常。找到后会更新。仍在发帖等待调查。
同时发布最近的热点话题-
【问题讨论】:
-
如果您有权访问日志,请检查您在 CPU 峰值期间运行的查询类型。排序结果是 CPU 密集型的。您可能正在运行返回大量结果的查询。只是猜测......
-
@jay 我们有一个带有硬编码结果大小值的业务逻辑设置。还检查了日志是否有任何异常。找不到任何东西。
-
所有热门话题都与搜索相关。你在高峰期有没有把热线程转储?您的查询有任何变化吗?聚合?如果您在这些服务器上进行了任何监控设置,您能否检查节点 03 在峰值时是否正在经历大量合并?
-
@jay 在高峰期间没有发生大量搜索查询。正如您在更新后的问题中看到的那样,我最关心的是响应时间增加了,这是平时的两倍。
标签: performance search elasticsearch