solr的缓存机制及调优方法

solr缓存大小的调整
    1.缓存调的越大越好?  错误的
     如果把内存大量的都给了solr那么操作系统的内存就会变小,操作系统可以利用空闲的内存提升io的效率,操作系统本身也有缓存
     oscache,solr通过id来获取doc的时候如果可以命中oscache不发生磁盘的读写也会极大的提升速度;
     大内存也可以是大垃圾,当大量内存不被命中的时候就是垃圾,而且这些垃圾会触发jvm的GC操作,GC的时候会降低整个系统的效率
    
    
    查看缓存的命中情况
    cumulative_hitratio: 是一个0〜1之间的数,代表请求命中缓存的百分比。
    cumulative_inserts: 在缓存的整个生存期中,有多少缓存实体对象被加入的缓存当中。
    cumulative_evictions: 在缓存的整个生存期中,有多少缓存实体对象从缓存中被移除。
    最终衡量缓存性能的是命中率。你需要做实验调整缓存大小,但时刻要关注命中率,看命中率是不是越来越高。下面是调整缓存大小的一些提示:

    如果发现cumulative_evictions比cumulative_inserts高一些,那么可以试着增加缓存大小,观察命中率,有可能是因为缓存实体被移除得太快了。
    如果发现缓存的命中率很高,而且cumulative_evictions值很小,那么说明缓存大小设置有点大了。试着减少缓存大小,观察命中率,直到命中率有变化。
    如果缓存命中率很也不要觉得灰心,如果你的查询一般都不会有重复的case出现,命中率本来就不可能上来,这时你可以调小缓存的大小。
    即使缓存的命中率很低,也不要把缓存关掉。对某些请求来说缓存还是起作用的。把缓存大小调小就可以了,保留缓存是值得的。
    当调整了缓存的大小,试着用上面提到过的方法,大体估算一下内存使用的最坏情况。确保不会使用过大的内存。

    然后可以开始修改 solrconfig.xml 中缓存的配置了,第一个是过滤器缓存:
    <filterCacheclass="solr.FastLRUCache"size="200"initialSize="200"  autowarmCount="100"/>
    第二个是查询结果缓存:
    <queryResultCacheclass="solr.FastLRUCache"size="500"initialSize="500"autowarmCount="250"/>
    第三个是文档缓存:
    <documentCacheclass="solr.FastLRUCache"size="11000"initialSize="11000"/>
    这几个配置是基于以上的几个假设的值进行调优的。
 

欢迎大家关注我的微信公众号 您的关注就是我不懈的动力

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值