solr analyzer

Solr使用不同的缓存来防止请求期间过多的IO访问和计算。 如果索引不是很频繁发生,则可以通过使用这些缓存来获得巨大的性能提升。 根据索引数据的结构和缓存的大小,它们可能会变得很大,并占用堆内存的很大一部分。 在本文中,我想展示如何使用Eclipse Memory Analyzer来查看缓存实际在内存中使用了多少空间。

配置缓存

可以在query部分的solrconfig.xml中配置所有Solr缓存。 您会发现如下定义:

<filterCache class="solr.FastLRUCache"size="8000"initialSize="512"autowarmCount="0"/>

这是配置为使用FastLRUCache的筛选器缓存的FastLRUCache ,最大大小为8000个项目,并且没有自动预热。 Solr附带两种常用的缓存实现,即FastLRUCacheFastLRUCache ,它们使用ConcurrentHashMapLRUCache来同步调用。 某些缓存仍配置为使用LRUCache但在一些读取繁重的项目上,我也将其更改为FastLRUCache也取得了不错的效果。

另外,从Solr 3.6开始,还有LFUCache 。 我从未使用过它,它仍然标记为实验性的,随时可能更改。

Solr带有以下缓存:

过滤缓存

缓存过滤器查询的位集。 如果要重新使用过滤器,这可能是非常有效的缓存。

QueryResultCache

存储用于查询的文档ID的有序列表。

文档缓存

缓存Lucene文档的存储字段。 如果字段很大或很多,则此缓存可能会变得很大。

FieldValueCache

主要用于构面的缓存。

另外,您还将看到对FieldCache的引用,该引用不是Solr管理的缓存,无法配置。

在默认配置中,Solr每个高速缓存仅高速缓存512个项目,这通常可能太小。 您可以在核心的Plugin / Stats / Caches部分的S​​olr的管理视图中查看缓存的用法。 这将告诉您命中率以及缓存的逐出。

这些统计信息是调整缓存的一个很好的起点,但是您应该意识到,如果将大小设置得太大,则会看到一些不必要的GC活动。 这就是为什么查看内存中缓存的实际大小而不是仅查看项目数可能有用的原因。

Eclipse垫

Eclipse MAT是查看内存中的堆并查看哪些对象占用空间的绝佳工具。 顾名思义,它基于Eclipse,可以作为独立工具下载,也可以通过更新站点获得,以集成到现有实例中。

可以使用该工具直接获取堆转储,但是您也可以打开现有的转储。 如果您在缓存中保留许多项目,则打开后,它将自动计算可能已经包含某些缓存对象的最大对象的图表。

使用饼图下方的链接,您还可以打开更多的自动报告,例如,“最大消费者”,这是有关大型对象的更详细页面。

即使您确实在此处看到某些缓存类,也无法真正看到消耗内存的是哪个缓存。 使用报告顶部的“查询浏览器”菜单,您也可以直接列出类的实例,无论它们有多大。

我们选择带有传出引用的列表对象,然后输入FastLRUCache org.apache.solr.search.FastLRUCache的类名。 对于默认配置,您将看到两个实例。 单击其中一个实例时,您可以在左下方窗口中看到缓存的名称,在本例中为过滤器缓存。

堆大小有两个可用的数字: 浅大小和保留大小 。 在查看缓存时,我们对保留的大小感兴趣,因为这是实例被垃圾回收时可用的大小,即仅由缓存使用的缓存的大小。 在我们的情况下,这大约为700kB,但可能会增长很多。

您也可以对org.apache.solr.search.LRUCache做同样的检查,以查看缓存的实际大小。

结论

缓存可以比这里的示例更大。 Eclipse Memory Analyzer已经帮了我很多忙,看看堆太大的问题是否存在。

翻译自: https://www.javacodegeeks.com/2014/05/see-your-solr-cache-sizes-eclipse-memory-analyzer.html

solr analyzer

solr analyzer_查看您的Solr缓存大小:Eclipse Memory Analyzer相关推荐

  1. 查看您的Solr缓存大小:Eclipse Memory Analyzer

    Solr使用不同的缓存来防止请求期间过多的IO访问和计算. 当索引不是很频繁发生时,您可以通过使用这些缓存来获得巨大的性能提升. 根据索引数据的结构和缓存的大小,它们可能会变得很大,并占用堆内存的很大 ...

  2. 在哪里能看到计算机缓存大小,win10系统查看电脑硬盘缓存大小的办法

    有关win10系统查看电脑硬盘缓存大小的操作方法想必大家有所耳闻.但是能够对win10系统查看电脑硬盘缓存大小进行实际操作的人却不多.其实解决win10系统查看电脑硬盘缓存大小的问题也不是难事,小编这 ...

  3. 在哪里能看到计算机缓存大小,win10系统查看电脑硬盘缓存大小的操作方法

    win10系统查看电脑硬盘缓存大小的操作方法? 很多win10用户在使用电脑的时候,会发现win10系统查看电脑硬盘缓存大小的的现象,根据小编的调查并不是所有的朋友都知道win10系统查看电脑硬盘缓存 ...

  4. 修改console缓存大小_更改缓存的行大小将如何影响其他参数?

    修改console缓存大小 Prerequisites: Memory mapping and its types 先决条件: 内存映射及其类型 While designing a cache sys ...

  5. solr 插入数据后变数组_理解Solr缓存及如何设置缓存大小

    为了得到最好的检索性能,Solr会在内存中缓存不同的数据: Result Set: 检索结果 Filter: filter query结果 Document Field: 文档的字段值 所以随后类似的 ...

  6. 在哪里能看到计算机缓存大小,如何查看硬盘缓存信息?如何查看计算机硬盘缓存大小的插图...

    最近,一位网友"飞飞"问小编一个与计算机硬盘有关的问题:您如何看待硬盘缓存?硬盘缓存容量越大越好吗?由于通常在Windows系统的铭牌和硬盘表面上直接看不到硬盘缓存的大小,因此如何 ...

  7. linux查看cpu缓存大小,如何在Linux中获取CPU Cache的大小

    对于运行Linux的ARM CPU(在具有Raspbian(32位)的Raspberry Pi 3B +上测试): "Arm®Cortex®-A53MPCore处理器技术参考手册" ...

  8. Solr初始化源码分析-Solr初始化与启动

    用solr做项目已经有一年有余,但都是使用层面,只是利用solr现有机制,修改参数,然后监控调优,从没有对solr进行源码级别的研究.但是,最近手头的一个项目,让我感觉必须把solrn内部原理和扩展机 ...

  9. solr模糊查询_《Solr实战》之一

    本文记录笔者在阅读<Solr实战>的读书笔记,将笔者认为重要的内容摘录出来. Solr擅长处理的数据类型 以文本为中心 读主导 文档被读取的次数远大于被创建和更新的次数 面向文档 灵活的模 ...

最新文章

  1. java之 ------ 可变參数和卫条件
  2. Okhttp的封装和回调
  3. 中兴通讯推出全球首款Wi-Fi 7标准5G CPE
  4. Fuel9.0下的neutron-network网络(实际环境)--有疑问
  5. linux socket通信编程之c语言(客户端和服务器程序)
  6. python之min
  7. Jason与Xml的解析过程
  8. linux学习—— CentOS命令行版下创建KVM虚拟机(VM)并添加SR-IOV的虚拟网卡(VF)
  9. 【Coverity】Jenkins 的 Synopsys Coverity plugin参数配置详解
  10. 工业物联网实施的6个常见误解
  11. 计算机cpu多大,电脑cpu多少容量
  12. 根据设计稿,用JS计算rem的值
  13. 计算机保存途径如何更改,如何修改“我的文档”路径方便保存文件
  14. Canvas绘制六边形网格
  15. 性能测试理论(一)之性能测试方法与流程
  16. SampleGrabber开发问题与解决方案
  17. 基于微信小程序的兼职发布接单系统
  18. 程序人生 - 敬酒常识
  19. 【看表情包学Linux】插叙:实现简易的 Shell | 通过内建命令实现路径切换 | 再次理解环境变量
  20. c++ 与 数据结构 实现 《校园路径导航系统》

热门文章

  1. P2323-[HNOI2006]公路修建问题【并查集】
  2. P1516-青蛙的约会【扩欧,同余方程】
  3. Link Cut Tree 学习笔记
  4. SpringBoot @Async加在实现接口类的非接口方法上获取Bean异常
  5. 漫画:如何用栈实现队列
  6. Java 8 新特性:扩展注解(类型注解和重复注解)
  7. 对于线程安全的集合类(例如Vector)的任何操作是不是都能保证线程安全
  8. 阿里巴巴对Java编程【Mysql】的规约
  9. 【FTP】发布FTP服务器
  10. linux系统操作大全,Linux系统的常用操作命令大全