NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Lucid Imagination 发布了 Apache Lucene 性能监测工具

  • 2009-09-11
  • 本文字数:1409 字

    阅读完需:约 5 分钟

Lucid Imagination 是一家采用 Apache Lucene 和 Solr 搜索引擎类库从事相关开发的商业公司,其引入了一个新的名叫 LucidGaze 的监测工具。该产品给开发者提供了一个针对 Lucene 的完整版本的性能监测工具。性能数据可以打印在日志文件中、存储在轮询数据库中、或者通过 Java API 来使用。如果使用了轮询数据库,则可以采用 RRD4j 类库提供的一个标准 Swing 应用程序来读取或处理该数据库。

该软件是以.jar 文件提供的,用来替代 Lucene 的.jar 文件,因此安装非常简单。开发者只需在其应用的 classpath 中将 lucene-core.2.4.1.jar 替换成 lucene-core-gaze.2.4.1.jar 即可。这样,开发者无需对其源码做出任何改变。而对于那些无法获得应用程序源代码的情况,该产品也能派上用场。

LucidGaze 给开发者提供了一系列分析方法,以观察搜索转换为文档检索操作的状况,索引分析分解用户输入处理的效果,以及文本处理和索引构建的过程。该工具使用 5 个不同的监视器来搜集统计数据:

  1. 分析统计数据:Analyzer、TokenFilter、TokenStream 和 Tokenizer 的相关数据,以及哪一个 Analyzer 被用来为特定域产生 TokenStream。
  2. 文档统计数据:已建索引文档的总数、以及索引的各个域。
  3. 索引统计数据: IndexReader 和 IndexWriter 的活动和行为,比如查看每个实例、跟踪其每个相关方法的调用、查看缓存及内存使用情况、以及索引增加和提交的平均时间。
  4. 搜索统计数据:查询操作、搜索器性能和处理时间、方法调用统计、以及对大多常用执行的查询。
  5. 存储统计数据: Lucene 存储架构的目录实例(directory instance)。

运行所有监视器的开销相当大。在与 Lucid Imagination 技术团队成员之一 Grant Ingersoll 的交谈过程中,我们得知这一范围大概在 10-15%。但是通过配置需要收集哪些统计数据以及这些数据是否需要被持久化,可以减少这一开销。

InfoQ 还与 Ingersoll 谈到了 LucidGaze 的一些典型应用。他所强调的第一种应用就是用其发现普通开发者使用 Lucene 时的常犯错误:没有关闭 IndexReader 而导致的内存泄漏。LucidGaze 搜集当前打开的 Indexeader 数量,IndexReader#reopen() 的调用次数以及其中哪一次调用是在 IndexReader 的新实例里,除此之外还有 JVM 中正在用的所有 IndexReader 所消耗的 RAM 总数。在捕捉因没有关闭 reader 而引起的内存泄漏时这些统计数据很有用处——如果你认为使用了两个 IndexReader 而内存中却有 10 个,那基本上可以肯定有地方泄漏了。第二个常见情况是在海量数据(创建和删除大量文档)站点的大量数据测试期间查看重建索引策略。Lucene 的索引数据库是由几个独立的“段(segment)”组成,每个都存储在一个独立的文件中。当你给索引增加一个文档时,可能会产生新的段。你可以压缩数据库以减少段的数量,从而加速查询,但是这样做是有开销的,而且计算出最佳策略需要大量的反复运算。LucidGaze 所提供的新创建索引段的数量、段合并的数量以及其发生的平均时间,可以帮助开发者调优其实现。该工具还可以用来查看在大量数据测试期间遇到的特定问题——分理出长时间运行的消耗过量资源的查询,或者精确定位导致处理瓶颈的域或文档。

尽管没有开源,但该产品是免费提供的,可以从 Lucid Imagination 的 Web 站点上下载。目前该软件只支持Lucene 2.4.1,但Lucid Imagination 表示如果需求量大,他们可能会提供对其它版本的支持。

查看英文原文: Lucid Imagination Releases Performance Monitoring Utility for Apache Lucene

2009-09-11 08:592533
用户头像

发布了 150 篇内容, 共 43.5 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

计算机网络到底应该怎么学?

Java永远的神

程序员 面试 计算机网络 计算机 tcpip

元宇宙成本高吗?构建元宇宙需要多少钱?

3DCAT实时渲染

元宇宙 元宇宙开发 元宇宙成本

直播预告 | 2月2日,腾讯Light与你一同用AI,让美好变更好

腾源会

公益

Tokio 中 hang 死所有 worker 的方法

Databend

SimMIM:更简单的掩码图像建模

Zilliz

技术管理者如何发掘写代码之外的能力?

石云升

极客时间 1月月更 技术领导力实战笔记

架构实战营4.5 常见存储系统随堂练习

西山薄凉

「架构实战营」

工赋开发者社区 | 事件驱动架构要避开的 5 个陷阱

工赋开发者社区

《鹅鸭杀》爆火,一文带你了解如何实现顶流社交游戏

声网

游戏开发 RTC 应用架构

佛萨奇2.0上链DApp开发|佛萨奇链上开发技术

薇電13242772558

dapp

软件测试/测试开发 | Appium 用例录制

测试人

软件测试 自动化测试 测试开发 测试用例 appium

工赋开发者社区 | 工业5.0为何是下一个10年的制造业关键性变革方向?

工赋开发者社区

软件测试/测试开发 | Appium环境安装与架构介绍

测试人

软件测试 自动化测试 测试开发 appium

NLP知识图谱项目合集(信息抽取、文本分类、图神经网络、性能优化等)

汀丶人工智能

人工智能 自然语言处理 深度学习 知识图谱

Gartner:流程挖掘市场发展空间巨大,2022年预计市场规模将超10亿美元

九科Ninetech

接口测试这件小事

石臻臻的杂货铺

接口测试

易观千帆 | 2022年12月银行APP月活跃用户规模盘点

易观分析

金融 手机银行 用户

云图说 | 华为云主机安全服务(新版)来啦!

华为云开发者联盟

云计算 后端 华为云 云图说 企业号 1 月 PK 榜

【网络安全】记一次红队渗透实战项目

网络安全学海

网络安全 信息安全 计算机 渗透测试 漏洞挖掘

组合多个动画效果 —— Flutter 交错动画(Staggered Animation)简介

岛上码农

flutter ios 前端 动画 安卓开发

如何通过C#/VB.NET在 Excel 中对形状进行分组或取消分组

在下毛毛雨

C# .net Excel

镭速-跨国车企数据高速、安全跨境传输解决方案

镭速

云原生数据交付平台Kuda在AI场景下的模型分发实践

Geek_c4ea78

机器学习 开源 Kubernetes 容器 云原生

性能提升 40 倍!我们用 Rust 重写了自己的项目

Peefy

rust 编程语言 #go Python.

Mac免费实用的读写软件Tuxera NTFS2023

茶色酒

Tuxera NTFS2023\ Tuxera NTFS2023

云上的米开朗基罗:在不确定时代,寻找建筑般的确定性

华为云开发者联盟

云计算 后端 华为云 企业号 1 月 PK 榜

【必看知识】PCB设计中焊盘的设计标准

华秋PCB

工具 PCB PCB设计

国内类似禅道的项目管理软件有哪些

PingCode

项目管理 软件 项目管理工具

可以手动磨皮的p图软件portraiture2023

茶色酒

Portraiture2023

API 网关策略二三事

API7.ai 技术团队

APISIX 网关设计

在spring boot3中使用native image

程序那些事

spring 程序那些事 spring boot3

Lucid Imagination发布了Apache Lucene性能监测工具_Java_Charles Humble_InfoQ精选文章