Solr的內存優化

JMV的虛擬內存大小測試

原因

在Solr集羣的實例中,因爲沒有給Solr實例分給足夠大的內存,導致Solr在併發測試時,內存不夠,溢出了。雖然,Solr有自動釋放內存,但是卻並未達到預期結果。最終還是溢出。於是我們嘗試給Solr分配更大的內存空間,增大JMV的內存,讓Solr更好的運行。雖然治標不治本,Solr的官方Api裏也是這樣說道

first try to reclaim any available space that already exists in the heap. Only if all garbage collection attempts fail will
your application see an exception. As long as the maximum is big enough, your app will run without error, but it may
run more slowly if forced garbage collection kicks in frequently.

首先嚐試回收堆中已經存在的可用空間。除非所有的垃圾收集嘗試失敗
您的應用程序會看到異常。只要你的內存足夠大,你的應用程序就不會出錯,但可能會出錯 如果頻繁地進行強制垃圾收集,則運行得更慢。

增大JVM的內存,讓Solr獲得更大收益

可以設置的最大JVM內存大小與JVM的版本以及操作系統版本有關,JVM使用的最大內存一般Windows下1200-1500M左右,這取決與JDK的版本

測試命令如下:
* java -Xmx1260M -version*
測試時更改“1260”就可以了

JDK1.5.0_11最大值是1430兆,Linux下最大能到2600M。

解決方案

增大JVM的內存

總結

在這採取的方法是增大JVM的內存,讓Solr獲得最大的收益,雖然比較笨,但是還是有一定的效果。
雖然關於Solr的優化不是一朝一夕的事情,網上的說法衆多紛紜,各有個的說法,有關於日誌阻塞,線程阻塞等問題,總之,優化需要在長期的積累,一切只有迎難而上了。

發佈了76 篇原創文章 · 獲贊 19 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章