私は、Solr を使用して、約 1 億個の小さなレコードのテスト インデックスを構築する任務を負っています。昨日からラップトップでこれを実行しており、一度に1000万レコードずつ増やし、主要な「マイルストーン」(10分、20分など)でクエリを実行しています。約 7000 万件のレコードに達しましたが、すべて順調に進んでいます。ラップトップのスペックは次のとおりです。
- クアッドコア i7
- 8ギガバイトのRAM
- ウィンドウズ7
- Tomcat 7 + Solr の最新バージョン。
テストとして、自宅のワークステーション (デュアル プロセッサ、クアッド コア Xeon、12Gb RAM、インデックス用に RAID 0 で 2x10K RPM ディスク、Windows 2008 R2、同じソフトウェア) で同様のワークロードを実行するとどうなるかを確認することにしました。唯一の違いは、マルチコアを使用していることです...ラップトップから同じスキーマとconfディレクトリを使用し、solr.xmlを変更しました...
とにかく、ラップトップでは、約 7000 万レコードで、500 ミリ秒未満の結果が得られます。これは 150 個のクエリで、そのうち 100 個は 1 語、50 個は 2 語のクエリです。1 つのフィールドのみが照会されます (名前フィールド)。すべて良い...私のワークステーションでは、マルチコアと次のクエリ文字列を使用して、4〜5秒を超えています!
http://localhost:8080/solr/core0/select?shards=localhost:8080/solr/core0,localhost:8080/solr/core1,localhost:8080/solr/core2,localhost:8080/solr/core3&q=Name:Test Name
これは私が生成した新しいインデックスです: 私は 0 から 100,000,000 までのループを実行しており、ヒットするたびに i % 10000 == 0 ドキュメントを solr コアに追加します。そのループにヒットするたびに、commitID をインクリメントし、commitID %4 == 0 の場合は core0 に移動し、1 の場合は core1 に移動するなど...
どこかに設定の問題があると確信しています...しかし、確認したいだけです...これがはるかに高速になると期待する必要がありますか? 両方のプロセッサ (ラップトップとワークステーション) は 2.2Gz の範囲にあります。どちらも十分に新しいアーキテクチャです (ワークステーションの Nehalem、ラップトップの 2010 年からの i7)。それで、私が見るべきものはありますか?