2013-09-24 107 views
2

偶爾我的Apache Solr的只會往下走,這在日誌文件中的垃圾郵件:Apache Solr實現間歇性關閉

Sep 24, 2013 1:00:21 AM org.apache.solr.common.SolrException log 
SEVERE: java.lang.OutOfMemoryError: Java heap space 

專用服務器我Solr的安裝是有大量的可用RAM(16GB),有什麼可以造成這種情況?我已經嘗試了一些Google Fu,但是爲什麼還沒有確切的答案,或者除了使用-Xmx512mb來提高允許的堆大小(我認爲這不是最理想的方法)之外的問題。我可能是錯的。

我用我的Solr安裝Jetty,有沒有辦法告訴Jetty使用更多的內存?或者告訴它如何解決這個錯誤,如果它再次發生。

附加信息: 問題是如果我設置了任何大的Xms或Xmx值,即使它位於我獲得的服務器上剩餘的可用內存中。Java運行時環境的內存不足以繼續。

# Out of Memory Error (allocation.inline.hpp:58), pid=10851, tid=47145744939328 
# 
# JRE version: 7.0_11-b21 
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.6-b04 mixed mode linux-amd64 compressed oops) 
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again 
# 

VM Arguments: 
jvm_args: -Dsolr.solr.home=/opt/solr/solr -Xmx64m -Djetty.logs=/var/log/solr -Djetty.home=/root/wmv_solr -Djava.io.tmpdir=/tmp -Xmx256m 
java_command: /root/wmv_solr/start.jar /root/wmv_solr/etc/jetty-logging.xml /root/wmv_solr/etc/jetty.xml 
Launcher Type: SUN_STANDARD 

Environment Variables: 
JAVA_HOME=/usr/java/jdk1.7.0_11 
CLASSPATH=.:/usr/java/jdk1.7.0_11/lib/classes.zip 
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.7.0_11/bin:/opt/ant/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin 
SHELL=/bin/bash 

/proc/meminfo: 
MemTotal:  4033216 kB 
MemFree:  755528 kB 
Buffers:  274004 kB 
Cached:  1939244 kB 
SwapCached:  168388 kB 
Active:  1923800 kB 
Inactive:  1052876 kB 
HighTotal:   0 kB 
HighFree:   0 kB 
LowTotal:  4033216 kB 
LowFree:  755528 kB 
SwapTotal:  4980024 kB 
SwapFree:  4784124 kB 
Dirty:   2092 kB 
Writeback:   0 kB 
AnonPages:  762616 kB 
Mapped:   39044 kB 
Slab:   256200 kB 
PageTables:  17496 kB 
NFS_Unstable:  0 kB 
Bounce:    0 kB 
CommitLimit: 6996632 kB 
Committed_AS: 1964148 kB 
VmallocTotal: 34359738367 kB 
VmallocUsed: 265936 kB 
VmallocChunk: 34359471775 kB 
HugePages_Total:  0 
HugePages_Free:  0 
HugePages_Rsvd:  0 
Hugepagesize:  2048 kB 

這仍然是一個持續的問題,我們已經看到在日誌中一種新的錯誤:

Oct 02, 2013 7:14:10 AM org.apache.solr.common.SolrException log 
SEVERE: java.lang.OutOfMemoryError: GC overhead limit exceeded 

我們正在升級,希望我們的服務器內存,這將解決我們問題,但它不能解釋爲什麼SOLR不使用其他可用的RAM。

回答

1

從Solr中的文檔link

內存使用:

  • 文檔的所有字段必須同時裝入內存。
  • 在輸入XML每個人...標籤必須符合內存

解決了內存異常

  • 打這個錯誤的最簡單的方法,假設Java虛擬機ISN」 t已經使用所有物理內存的 ,是增加分配給運行Solr的Java虛擬機的內存量。要爲例子/做到這一點的Solr的 分配,如果你正在運行的Sun標準的虛擬機,可以使用-Xms和-Xmx命令行參數:

    java -Xms512M -Xmx1024M -jar start.jar 
    

與播放值取決於您的輸入

+0

問題是如果我設置了任何大的Xms或Xmx值,即使它位於我獲得的服務器上剩餘的可用內存中。Java運行時環境的內存不足以繼續。 –

+0

如果你有足夠的內存可以運行一個32位jvm嗎? –

+0

它安裝了64位版本,是否可以在64位安裝下運行32位?如果是的話,我怎麼能檢查這不是這種情況? –