solr面试题_查看您的Solr缓存大小:Eclipse Memory Analyzer
solr面试题
Solr使用不同的缓存来防止请求期间过多的IO访问和计算。 如果索引不是很频繁发生,则可以通过使用这些缓存来获得巨大的性能提升。 根据索引数据的结构和缓存的大小,它们可能会变得很大,并占用堆内存的很大一部分。 在本文中,我想展示如何使用Eclipse Memory Analyzer来查看缓存实际在内存中使用了多少空间。
配置缓存
可以在query
部分的solrconfig.xml中配置所有Solr缓存。 您会发现如下定义:
<filterCache class="solr.FastLRUCache"size="8000"initialSize="512"autowarmCount="0"/>
这是配置为使用FastLRUCache
的筛选器缓存的FastLRUCache
,最大大小为8000个项目,并且没有自动预热。 Solr附带两种常用的缓存实现,即FastLRUCache
和FastLRUCache
,它们使用ConcurrentHashMap
和LRUCache
来同步调用。 某些缓存仍配置为使用LRUCache
但在一些读取繁重的项目上,我也将其更改为FastLRUCache
也取得了不错的效果。
另外,从Solr 3.6开始,还有LFUCache 。 我从未使用过它,它仍然标记为实验性的,随时可能更改。
Solr带有以下缓存:
过滤缓存
缓存过滤器查询的位集。 如果要重新使用过滤器,这可能是非常有效的缓存。
QueryResultCache
存储用于查询的文档ID的有序列表。
文档缓存
缓存Lucene文档的存储字段。 如果字段很大或很多,则此缓存可能会变得很大。
FieldValueCache
主要用于构面的缓存。
另外,您还将看到对FieldCache的引用,该引用不是Solr管理的缓存,无法配置。
在默认配置中,Solr每个高速缓存仅高速缓存512个项目,这通常可能太小。 您可以在核心的Plugin / Stats / Caches部分的Solr的管理视图中查看缓存的使用情况。 这将告诉您命中率以及缓存的逐出。
这些统计信息是调整缓存的一个很好的起点,但是您应该意识到,如果将大小设置得太大,则会看到一些不必要的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面试题
solr面试题_查看您的Solr缓存大小:Eclipse Memory Analyzer相关推荐
- solr analyzer_查看您的Solr缓存大小:Eclipse Memory Analyzer
solr analyzer Solr使用不同的缓存来防止请求期间过多的IO访问和计算. 如果索引不是很频繁发生,则可以通过使用这些缓存来获得巨大的性能提升. 根据索引数据的结构和缓存的大小,它们可能会 ...
- 查看您的Solr缓存大小:Eclipse Memory Analyzer
Solr使用不同的缓存来防止请求期间过多的IO访问和计算. 当索引不是很频繁发生时,您可以通过使用这些缓存来获得巨大的性能提升. 根据索引数据的结构和缓存的大小,它们可能会变得很大,并占用堆内存的很大 ...
- mat分析dump分析_使用Eclipse Memory Analyzer Tool(MAT)分析线上故障(一)
来源: https://sourl.cn/ggYpYX 前言 Eclipse Memory Analyzer Tool(MAT)是一个强大的基于Eclipse的内存分析工具,可以帮助我们找到内存泄露 ...
- redis中value大小_查看redis的Value值大小
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan [前言] 最近项目一个需求,需要借助于redis缓存来实现,发现需要存的value值有些大:究竟 ...
- mysql 索引空间大小_查看数据库表中容量大小,表有多少记录,占多少空间以及索引的大小,以及未使用空间...
直接在sqlserver查询窗执行就OK了,也是网上看到的,对日常管理数据库工作者来说也蛮有用的,可以及时的清理冗余的数据,缓解数据库服务器的压力. Create Table #TableSpaceI ...
- 在哪里能看到计算机缓存大小,win10系统查看电脑硬盘缓存大小的办法
有关win10系统查看电脑硬盘缓存大小的操作方法想必大家有所耳闻.但是能够对win10系统查看电脑硬盘缓存大小进行实际操作的人却不多.其实解决win10系统查看电脑硬盘缓存大小的问题也不是难事,小编这 ...
- 在哪里能看到计算机缓存大小,win10系统查看电脑硬盘缓存大小的操作方法
win10系统查看电脑硬盘缓存大小的操作方法? 很多win10用户在使用电脑的时候,会发现win10系统查看电脑硬盘缓存大小的的现象,根据小编的调查并不是所有的朋友都知道win10系统查看电脑硬盘缓存 ...
- solr 插入数据后变数组_理解Solr缓存及如何设置缓存大小
为了得到最好的检索性能,Solr会在内存中缓存不同的数据: Result Set: 检索结果 Filter: filter query结果 Document Field: 文档的字段值 所以随后类似的 ...
- solr模糊查询_《Solr实战》之一
本文记录笔者在阅读<Solr实战>的读书笔记,将笔者认为重要的内容摘录出来. Solr擅长处理的数据类型 以文本为中心 读主导 文档被读取的次数远大于被创建和更新的次数 面向文档 灵活的模 ...
- Solr 11 - Solr集群模式的部署(基于Solr 4.10.4搭建SolrCloud)
目录 1 SolrCloud结构说明 2 环境的安装 2.1 环境说明 2.2 部署并启动ZooKeeper集群 2.3 部署Solr单机服务 2.4 添加Solr的索引库 3 部署Solr集群服务( ...
最新文章
- SSRS - 请求因 HTTP 状态 401 失败: Unauthorized。
- 在服务器上排除问题的头五分钟
- java判断星期天_java实现一个月的最后一个星期天
- 关闭服务器 找不到文件,在服务器上找不到文件时阻止代码崩溃的方法?
- android 修改菜单大小,如何在NavigationView中更改菜单项图标的大小?
- [OTs]I miss u folks
- leetcode:203. 移除链表元素(两种方法)
- PgSql备份pg_dump与还原手记pg_restore(转)
- linux C语言 文件相关知识01
- Python 数据分析三剑客之 NumPy(四):字符串函数总结与对比
- BZOJ2150: 部落战争
- uva 10985 Rings'n'Ropes
- 训练日志 2019.1.10
- OpenCV 访问Mat 像素
- Acrobat Pro DC 教程,如何将 PDF 导出为 Microsoft Office 格式?
- wxpython画表格代码
- Duanxx的STM32学习:NVIC操作
- 北斗导航 | RTCM 3.3学习(10403.3)
- 【重磅】Crust主网进入节点接入阶段
- 面试续与如何做自己的职业规划