私は最近、Apache Solr をいじり始め、現在、XML 文書のコーパスの索引付けをベンチマークする最良の方法を見つけようとしています。私は基本的に、スループット (1 秒あたりのインデックス作成されたドキュメント) とディスク上のインデックス サイズに関心があります。
私はこれをすべてUbuntuで行っています。
ベンチマーク手法
* 次の 5 回実行して、合計所要時間の平均を取得します*
- 索引文書 [
curl http://localhost:8983/solr/core/dataimport?command=full-import
]- ステータスが「アイドル」の場合、XML レスポンスから「所要時間」の名前属性を取得する [curl http://localhost:8983/solr/core/dataimport]
- 「data/index」ディレクトリのサイズを取得
- インデックスを削除 [
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>