我最近開始使用Apache Solr,並試圖找出基準測試XML文檔語料庫的最佳方法。我基本上對磁盤上的吞吐量(文件索引/秒)和索引大小感興趣。Apache Solr索引Bechmarking
我正在Ubuntu上做所有這些。
標杆技術
*運行下面的5倍&得到採取*
- 指數文件[
curl http://localhost:8983/solr/core/dataimport?command=full-import
]- 得到 '時間採取' 名平均總時間屬性來自狀態爲'空閒'時的XML響應[curl http:// localhost:8983/so LR /核心/ 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'
] - 重建索引文件
問題
- 我打算計算我的吞吐量除以數量按平均總時間索引的文件數量;這很好嗎?
- 是否有工具(如用於查詢基準的SolrMeter)或已有的標準腳本可用於實現我的目標?我不想重新發明輪子...
- 我的方法很好嗎?
- 有沒有一種更容易的方式來獲取索引大小,而不是對data/index /目錄執行'du'操作?
- 我在哪裏可以找到有關如何解釋XML響應屬性的信息(請參閱下面的示例輸出)。例如,我想知道
QTime
和Time 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>
謝謝你。該計劃是索引不同大小的數據集,我已經設置了15個核心來處理。在問題3中,我試圖找出我的邏輯是否有缺陷。 – lightonphiri
請告訴我們你發現了什麼,我也很感興趣:-)我可以告訴你,我需要6分鐘索引660.000文件。我認爲這取決於你給solr的RAM。您可以更改solrconfig.xml中的值。 –
我不認爲你的邏輯有缺陷,但你必須正確解釋你的結果。您的基準測試結果取決於您的系統環境 - 在其他系統中,這些值幾乎沒有區別。 –