【问题标题】:Apache Solr Index BechmarkingApache Solr 索引基准测试
【发布时间】:2012-12-12 08:05:24
【问题描述】:

我最近开始使用 Apache Solr,目前正在尝试找出对 XML 文档语料库的索引进行基准测试的最佳方法。我基本上对磁盘上的吞吐量(索引的文档/秒)和索引大小感兴趣。

我在 Ubuntu 上做这一切。

基准测试技术

* 运行以下 5 次并获得平均总时间 *

  • 索引文档 [curl http://localhost:8983/solr/core/dataimport?command=full-import]
    • 当状态为“空闲”时,从 XML 响应中获取“所用时间”名称属性 [curl http://localhost:8983/solr/core/dataimport]
    • 获取“数据/索引”目录的大小
  • 删除索引 [curl http://localhost:8983/solr/core/update --data '<delete><query>*:*</query></delete>' -H 'Content-type:text/xml; charset=utf-8']
  • 提交 [curl http://localhost:8983/solr/w5/update --data '<commit/>' -H 'Content-type:text/xml; charset=utf-8']
  • 重新索引文档

问题

  1. 我打算通过将索引的文档数除以平均总时间来计算我的吞吐量;这样好吗?
  2. 是否有可用的工具(例如用于查询基准测试的 SolrMeter)或标准脚本可供我用来实现我的目标?我不想重新发明轮子...
  3. 我的方法好吗?
  4. 有没有比对 data/index/ 目录执行“du”更简单的方法来获取索引大小?
  5. 在哪里可以找到有关如何解释 XML 响应属性的信息(请参阅下面的示例输出)。例如,我想知道QTimeTime taken 值之间的区别。

* 用于获取吞吐量的 XML 响应 *

<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
  <int name="status">0</int>
    <int name="QTime">0</int>
  </lst>
  <lst name="initArgs">
    <lst name="defaults">
      <str name="config">w5-data-config.xml</str>
    </lst>
  </lst>
  <str name="status">idle</str>
  <str name="importResponse"/>
  <lst name="statusMessages">
    <str name="Total Requests made to DataSource">0</str>
    <str name="Total Rows Fetched">3200</str>
    <str name="Total Documents Skipped">0</str>
    <str name="Full Dump Started">2012-12-11 14:06:19</str>
    <str name="">Indexing completed. Added/Updated: 1600 documents. Deleted 0 documents.</str>
    <str name="Total Documents Processed">1600</str>
    <str name="Time taken">0:0:10.233</str>
  </lst>
  <str name="WARNING">This response format is experimental.  It is likely to change in the future.</str>
</response>

【问题讨论】:

    标签: solr


    【解决方案1】:

    问题1:

    我建议您尝试索引超过 1 个 XML(具有不同数据集)文件并比较给定的结果。这样您就可以知道是否可以简单地将花费的时间除以您的文档数量。

    问题2:

    我没有找到任何这些工具,我自己开发了一个简短的 Java 应用程序

    问题3:

    您指的是哪种方法?我会链接到我对问题 1 的回答...

    至第 4 题:

    索引文件夹的大小为您提供了整个索引的正确大小,您为什么不想使用它?

    至第 5 题:

    您在发布的 XML 中获得的结果通过 XSL 文件传输。您可以在 /bin/solr/conf/xslt 文件夹中找到它。您可以查看这些术语的确切含义,并且可以编写自己的 XSL 来显示结果和信息。 注意:如果创建新的 XSL 文件,则必须更改 solrconfig.xml 中的设置。如果您不想进行任何更改,请编辑现有文件。

    edit:我认为不同之处在于,Qtime 是所用时间值的四舍五入值。 Qtime只有偶数。

    最好的问候

    【讨论】:

    • 谢谢你。计划是索引不同大小的数据集,我已经设置了 15 个内核来使用。在问题 3 中,我试图找出我的逻辑是否有缺陷。
    • 请告诉我们你发现了什么,我对此也很感兴趣 :-) 我可以告诉你,我需要 6 分钟来索引 660.000 个文档。我认为这取决于您提供给 solr 的 RAM。您可以更改 solrconfig.xml 中的值。
    • 我不认为你的逻辑有缺陷,但你必须正确解释你的结果。您的基准测试结果取决于您的系统环境 - 在其他系统中,这些值几乎不会有所不同。
    • 使用奔腾双核 E5200@ 2.50GHz 和 4GM RAM,我为 25,600 个 xml 文档的工作负载管理了 803 的最大吞吐量(文档/秒)。我最大的工作量——由 160 万个 xml 文档组成——耗时约 5 小时,吞吐量为 90 文档/秒。顺便提一下,xml 文档共有 15 个唯一字段,但结构并不固定,所有字段都是可重复的。
    猜你喜欢
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多