2

時折、私の 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

これで問題が解決することを期待して、サーバーの RAM をアップグレードすることを検討していますが、SOLR が空き RAM を使用しない理由は説明されていません。

4

1 に答える 1

1

ドキュメントのリンクから

solr でのメモリ使用量:

  • ドキュメントのすべてのフィールドが同時にメモリに収まる必要があります。
  • 入力 XML の個々の ... タグはメモリに収まる必要があります

メモリ不足例外の解決

  • このエラーに対処する最も簡単な方法は、Java 仮想マシンがまだすべての物理メモリを使用していないことを前提として、Solr を実行している Java 仮想マシンに割り当てられるメモリの量を増やすことです。Solr ディストリビューションの example/ でこれを行うには、標準の Sun 仮想マシンを実行している場合、-Xms および -Xmx コマンドライン パラメータを使用できます。

    java -Xms512M -Xmx1024M -jar start.jar
    

入力に応じて値をいじる

于 2013-09-24T09:44:42.653 に答える