首页 > 解决方案 > SOLR documentCache JMX 指标说明

问题描述

我正在尝试了解 SOLR 中缓存的 JMX 数据-

据我了解,“大小”属性表示以 KB 为单位的缓存大小 [参考本文档 - https://lucene.apache.org/solr/guide/7_0/performance-statistics-reference.html#statistics-for-缓存] 。

{
  "CACHE.searcher.documentCache":{
    "lookups":0,
    "hits":0,
    "cumulative_evictions":0,
    "size":30,
    "hitratio":0.0,
    "evictions":0,
    "cumulative_lookups":370080,
    "cumulative_hitratio":0.09,
    "warmupTime":0,
    "inserts":30,
    "cumulative_inserts":337571,
    "cumulative_hits":32509}}

并且在配置中,size 参数是可以缓存的最大文档数 [引用此 - https://lucene.apache.org/solr/guide/7_0/query-settings-in-solrconfig.html#documentcache ] .

<documentCache class="solr.LRUCache"
               size="15000"
               initialSize="512"
               autowarmCount="100"/>  

这两个假设都是真的吗?

另外,为什么我当前的搜索器 documentCache 大小这么小?我可以看到有很多插页,但尺寸只有 30。为什么?

标签: javasolrlucene

解决方案


当打开一个新的搜索器时,缓存的内容会被删除——通常是在提交或优化发生时(基础索引已更改并且您希望这些更改可见)。

insert、等中的值hits会针对该特定搜索者进行跟踪。在您的示例中,大小当前为 30 - 并且有 30 次插入 - 因此由于溢出,缓存中没有任何内容被清除。配置中给出的大小是缓存将容纳的最大项目数,而 JMX stat 中的数字是缓存的实际大小。由于您有0字段hits等,因此此缓存从未有过任何体面的用途,因为到目前为止,每个请求都导致插入而不是从缓存中返回查找。

节点启动以来跟踪cumulative_值- 不仅针对当前索引搜索器。

您的命中率相当低,可能是因为搜索器过于频繁地关闭和重新打开,缓存无法产生任何实际效果。


推荐阅读