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