elasticsearch - ElasticSearch 配置文件 API `time_in_nanoseconds` 值高于 `took` 时间
问题描述
我正在使用 ElasticSearch 配置文件 API 来帮助处理慢速查询。
当我阅读弹性搜索分析文档时,听起来time_in_nanos
分片中查询的值应该小于took
运行分析查询时的总时间。
但是,我得到了以下结果:
{
"took": 109695,
...
"profile": {
"shards": [
{
"searches": [
{
"query": [
{
"type": "BooleanQuery",
"time": "1550750.786ms",
"time_in_nanos": 1550750786163
...
}
]
}
]
}
...
]
}
}
所以,我看到查询took
109695
ms ~= 109
seconds 这似乎是正确的。
但是,我看到了对应于超过分钟的1550750786163
值。这与值不匹配。该命令大约需要 2 分钟,因此时间似乎准确,而time_in_nanos
20
took
curl
took
time_in_nanos
时间似乎不准确。
time_in_nanos
解释ElasticSearch 配置文件查询中的值的正确方法是什么?
ES 版本:5.6
解决方案
根据 Elastic search Github 存储库,配置文件时间是抽样的结果。因为它们是抽样的,所以原始计时数字对于大型查询可能不准确。
但是,这些数字可用于将查询的部分与查询的其他部分进行比较,以确定各个部分的相对费用。
推荐阅读
- google-sheets - 当将数据从一张纸的单元格传输到另一张纸时,我得到#ref!错误。我该如何解决?
- python - 填充python数据框中缺少的日期列
- delphi - 如何访问元类引用的 TList 中的类变量?
- node.js - NextJS/Strapi 上传图片给特定用户
- git - 你如何进入 Alpine/git 容器?
- excel - 使用 RegEX 匹配 Excel 模式
- php - 使用 Ajax 调用中的变量来切换 WPML 语言
- html - 如何准确指定导航栏的高度
- android - 我的 android 应用程序不断停止。我检查了 logcat 及其 classcastexception
- r - 如何使用 R 按条件索引数据框的特定行和列?