我试图了解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个。为什么?
答案 0 :(得分:1)
打开新的搜索器时,缓存的内容将被清除-通常是在提交或优化(底层索引已更改并且您希望这些更改可见)发生时。
为此特定搜索者跟踪insert
,hits
等中的值。在您的示例中,当前大小为30(并且有30个插入),因此由于溢出,没有任何内容从缓存中删除。配置中给出的大小是缓存将容纳的最大项目数,而JMX统计信息中的数字是缓存的 actual 实际大小。由于您在0
字段中有hits
等,因此该缓存从未有过任何用处,因为到目前为止,每个请求都导致插入,而不是从缓存中返回查找。
cumulative_
值are tracked since the node was started-不仅适用于当前索引搜索器。
您的命中率很小,可能是因为搜索器被关闭和重新打开的频率太高,以至于缓存无法产生任何实际效果。