【问题标题】:SOLR documentCache JMX metrics clarificationSOLR documentCache JMX 指标说明
【发布时间】:2018-12-13 22:43:39
【问题描述】:

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

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

{
  "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。为什么?

【问题讨论】:

    标签: java solr lucene


    【解决方案1】:

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

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

    cumulative_are tracked since the node was started - 不仅适用于当前索引搜索器。

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

    【讨论】:

    • 谢谢@MatsLindh - 如果我理解正确的话,JMX 中的 size 属性不是 KB,而是项目数。如果是这种情况,那么 SOLR 文档将需要更新。另外,我会看看新搜索器打开的频率[还不确定如何做],看看我们是否可以延迟优化/提交以更好地利用缓存。感谢您的洞察力!
    • size value from the LRUCache 被定义为res.put("size", map.size());(这是缓存中元素的数量),而其他缓存可能使用其他定义 - 所以这可能只是所选缓存实现的问题.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多