2012-09-20 35 views
2

我使用tomcat將Solr的一個實例部署到一臺ubuntu機器上。然後我有一個單線程客戶端程序來讀取和注入數據到Solr。我正在觀察內存和CPU使用情況,並意識到我仍然有很多資源(內存和CPU)使用。我想知道是否應該將索引代碼更改爲多線程以注入Solr?要使用當前的單線程程序索引2000萬個數據,它需要大約14個小時。這就是爲什麼我想知道是否應該改用多線程。預先感謝您的建議和幫助! :)solr上的多線程索引

回答

1

索引中的多線程處理被廣泛使用。 如果你也可以從你的源代碼中多線程讀取,你所說的並不是很清楚,但我認爲這是一條路。 我建議你嘗試一下,但首先嚐試分析你的代碼,看看代碼的哪一部分是最慢的,並將其包含在多線程中。

還要留意你的提交策略。

從Solr的文檔:(http://wiki.apache.org/solr/SolrPerformanceFactors) 「一般來說,加入每更新請求許多文檔是大於每更新請求一個更快... 減少自動提交的頻率或完全禁用它們可加速索引當心。這可能會導致內存使用量增加,這可能會導致其自身的性能問題,如過度交換或垃圾收集。「

+1

也看看這個鏈接:http://lucene.472066.n3.nabble.com/Speeding-up-indexing-td3781605.html –