性能统计参考
此页面说明了 Solr 公开的某些统计信息。
有两种方法可用于检索指标。首先,可以使用 指标 API,或者启用 JMX 并从 MBean 请求处理程序 或通过 JConsole 等外部工具获取指标。以下说明重点介绍使用指标 API 检索指标,但如果使用 MBean 请求处理程序或外部工具,则指标名称相同。
这些统计信息是按核心的。在 SolrCloud 模式下运行时,这些统计信息将与单个副本的性能相关联。
请求处理程序统计信息
更新请求处理程序
更新请求处理程序是将数据发送到 Solr 的端点。我们可以看到发出了多少更新请求、执行速度有多快以及有关请求的其他有价值的信息。
注册表和路径:solr.<core>:UPDATE./update
可以使用 API 请求(例如 http://localhost:8983/solr/admin/metrics?group=core&prefix=UPDATE
)请求更新请求处理程序统计信息。
搜索请求处理程序
可用于衡量和跟踪搜索查询数量、响应时间等。如果不使用“select”处理程序,则需要相应地更改路径。类似地,如果使用“sql”处理程序或“export”处理程序、实时处理程序“get”或任何其他处理程序,也可以找到类似的统计信息。
注册表和路径:solr.<core>:QUERY./select
可以使用 API 请求(例如 http://localhost:8983/solr/admin/metrics?group=core&prefix=QUERY./select
)请求 /select
请求处理程序的统计信息。
请求处理程序的常用统计信息
所有更新和搜索请求处理程序都将提供以下统计信息。
请求时间
具体而言,要获取请求时间,您可以发送类似这样的 API 请求
-
http://localhost:8983/solr/admin/metrics?group=core&prefix=UPDATE./update.requestTimes
-
http://localhost:8983/solr/admin/metrics?group=core&prefix=QUERY./select.requestTimes
属性 | 说明 |
---|---|
15minRate |
过去 15 分钟内每秒收到的请求数。 |
5minRate |
过去 5 分钟内每秒收到的请求数。 |
p75_ms |
属于第 75个百分位的请求的请求处理时间。例如,如果收到 100 个请求,那么此统计数据将报告第 75个最快的请求时间。 |
p95_ms |
属于第 95个百分位的请求的请求处理时间(以毫秒为单位)。例如,如果收到 100 个请求,那么此统计数据将报告第 95个最快的请求时间。 |
p999_ms |
属于第 99.9个百分位的请求的请求处理时间(以毫秒为单位)。例如,如果收到 1000 个请求,那么此统计数据将报告第 999个最快的请求时间。 |
p99_ms |
属于第 99个百分位的请求的请求处理时间(以毫秒为单位)。例如,如果收到 100 个请求,那么此统计数据将报告第 99个最快的请求时间。 |
count |
自 Solr 核心首次创建以来的请求总数。 |
median_ms |
所有请求处理时间的中间值。 |
meanRate |
自 Solr 核心首次创建以来的每秒平均请求数。 |
错误和其他时间
还提供了其他类型的数据,如错误和超时。这些数据在不同的指标名称下提供。例如
-
http://localhost:8983/solr/admin/metrics?group=core&prefix=UPDATE./update.errors
-
http://localhost:8983/solr/admin/metrics?group=core&prefix=QUERY./select.errors
下表显示了请求的指标名称和属性
指标名称 | 说明 |
---|---|
|
处理程序遇到的错误数。除了错误计数之外,还提供了平均值、1 分钟、5 分钟和 15 分钟的比率。 |
|
客户端在发出请求时产生的语法或解析错误数。除了错误计数外,还提供了平均值、1 分钟、5 分钟和 15 分钟速率。 |
|
此处理程序收到的请求数。 |
|
服务器在执行请求时抛出的错误数。除了错误计数外,还提供了平均值、1 分钟、5 分钟和 15 分钟速率。 |
|
收到部分结果的响应数。除了超时事件计数外,还提供了平均值、1 分钟、5 分钟和 15 分钟速率。 |
|
自 Solr 进程以纳秒为单位启动以来所有请求处理时间的总和。 |
|
注册处理程序时的纪元时间。 |
区分内部请求
针对大型集合在 SolrCloud 中处理单个请求需要向其他副本(通常位于其他节点上)发出其他请求。从表面上看,内部请求看起来非常相似(相同的处理程序),但它们正在执行总体任务的一部分。区分这些请求非常重要!当请求有助于其他请求时,Solr 会使用不同的处理程序名称跟踪这些处理程序上的指标
-
查询:
/select
查询的内部请求将被跟踪为/select[shard]
。从技术上讲,这发生在SearchHandler
及其子类上。 -
(将来可以实现更多功能)
Solr 的 Prometheus 导出器配置将处理程序上的此后缀提取到名为“internal”的标签中。在配置 Grafana 或其他指标工具时,请务必根据正在分析的内容筛选这些指标。
更新处理程序
本节提供有关添加总数以及针对 Solr 核心触发的提交数的信息。
注册表和路径: solr.<core>:UPDATE.updateHandler
您可以通过 API 请求(例如 http://localhost:8983/solr/admin/metrics?group=core&prefix=UPDATE.updateHandler
)获取下表中显示的所有更新处理程序统计信息。
以下描述了您可以获取的具体统计信息
属性 | 说明 |
---|---|
|
自上次提交以来“添加”请求的总数。 |
|
两次自动提交执行之间的时间间隔。 |
|
执行的自动提交总数。 |
|
执行的总提交数。 除了提交计数之外,还提供了平均值、1 分钟、5 分钟和 15 分钟速率。 |
|
在生命周期内执行的“有效”添加数。执行“添加”命令时计数器递增,而执行“回滚”时递减。 除了添加计数之外,还提供了平均值、1 分钟、5 分钟和 15 分钟速率。 |
|
在生命周期内按 ID 执行的文档删除数。执行“删除”命令时计数器递增,而执行“回滚”时递减。 除了删除计数之外,还提供了平均值、1 分钟、5 分钟和 15 分钟速率。 |
|
在生命周期内按查询执行的文档删除数。执行“删除”命令时计数器递增,而执行“回滚”时递减。 除了删除计数之外,还提供了平均值、1 分钟、5 分钟和 15 分钟速率。 |
|
在生命周期内对文档执行添加/删除操作时收到的错误消息数。 除了错误计数之外,还提供了平均值、1 分钟、5 分钟和 15 分钟速率。 |
|
当前未提交的按 ID 删除。 |
|
当前未提交的按查询删除。 |
|
待提交的文档数。 |
|
在内核生命周期内对文档执行添加/删除/提交/回滚操作时收到的错误消息数。 |
|
发出带有删除删除的提交命令数。 除了删除删除计数之外,还提供了平均值、1 分钟、5 分钟和 15 分钟速率。 |
|
已发生的索引合并数。 除了合并计数之外,还提供了平均值、1 分钟、5 分钟和 15 分钟速率。 |
|
发出的显式优化命令数。 除了优化计数之外,还提供了平均值、1 分钟、5 分钟和 15 分钟速率。 |
|
执行的回滚数。 除了回滚计数之外,还提供了平均值、1 分钟、5 分钟和 15 分钟速率。 |
|
两次软自动提交之间的最大文档“添加”数。 |
|
执行的软提交数。 |
缓存统计信息
文档缓存
此缓存保存 Lucene 文档对象(每个文档的存储字段)。由于 Lucene 内部文档 ID 是瞬态的,因此无法自动预热此缓存。
注册表和路径: solr.<core>:CACHE.searcher.documentCache
您可以使用 API 请求(例如 http://localhost:8983/solr/admin/metrics?group=core&prefix=CACHE.searcher.documentCache
)获取下表中显示的统计信息。
查询结果缓存
此缓存保存以前搜索的结果:基于查询、排序和请求的文档范围的有序文档 ID 列表
注册表和路径: solr.<core>:CACHE.searcher.queryResultCache
您可以使用 API 请求(例如 http://localhost:8983/solr/admin/metrics?group=core&prefix=CACHE.searcher.queryResultCache
)获取下表中显示的统计信息。
过滤器缓存
此缓存用于匹配查询的所有文档的无序集的过滤器。
注册表和路径: solr.<core>:CACHE.searcher.filterCache
您可以使用 API 请求(例如 http://localhost:8983/solr/admin/metrics?group=core&prefix=CACHE.searcher.filterCache
)获取下表中显示的统计信息。
缓存统计信息
以下统计信息可用于上述每个缓存
属性 | 说明 |
---|---|
cumulative_evictions |
自此节点运行以来,所有缓存中缓存驱逐的次数。 |
cumulative_hitratio |
自此节点运行以来,所有缓存中缓存命中与查找的比率。 |
cumulative_hits |
自此节点运行以来,所有缓存中缓存命中的次数。 |
cumulative_inserts |
自此节点运行以来,所有缓存中缓存插入的次数。 |
cumulative_lookups |
自此节点运行以来,所有缓存中缓存查找的次数。 |
evictions |
当前索引搜索器的缓存驱逐次数。 |
hitratio |
当前索引搜索器的缓存命中与查找的比率。 |
hits |
当前索引搜索器的命中数。 |
插入 |
插入缓存的次数。 |
查找 |
针对缓存的查找次数。 |
大小 |
特定实例中缓存中的条目数。 |
预热时间 |
已注册索引搜索器的预热时间(以毫秒为单位)。此时间用于缓存的“自动预热”。 |
当启用按堆使用情况驱逐时,查询结果缓存可使用以下附加统计信息
属性 | 说明 |
---|---|
maxRamMB |
缓存应使用的最大堆,超过此堆后将驱逐键。 |
ramBytesUsed |
特定实例中缓存的实际堆使用情况。 |
evictionsRamUsage |
当前索引搜索器的缓存驱逐次数,因为堆使用情况超过了 maxRamMB。 |
有关 Solr 缓存的更多信息,请参阅 缓存和查询预热 一节。