[fess-user 972] Re: 差分クロールでsolrがOutOfMemoryになる

Back to archive index

斎藤 nsait****@msk-w*****
2015年 6月 28日 (日) 21:33:23 JST


追伸:
 クロールが終了してから、fess_crawler.outのログを見て、

 2015-06-xx 20:21:29,122 [SuggestIndexUpdater] INFO  Finished 
SuggestIndexer: 4019377ms

 が表示されてから、1時間経過しましたが、OSのプロセス稼働状態は
 1コアCPUを使い切り(96%ベタ)
 メモリ 5GB超を維持したままです。

 下記現象は9.3.3でも9.4でも発生しており、上記の現象は9.4で確認しており 
ます。

以上

On 2015/06/28 21:00, 斎藤 wrote:
> こん にちは。
>
>  2015年4月にフォーラムでも話題が上っていた(http://osdn.jp/projects 
> /fess/forums/18580 /36695/)のですが、
> 解決策が見つからず投稿させて頂きました。
>
>  内容等しては同様で、初回のクロール時には問題なくインデックスが登録さ 
> れ ているのですが、
> 同一内容(検索対象文書に変更はなし)で再度クロールを行うと、「システム 
> 設 定」→「サーバー状態」も
> 「無効」となってしまいます。
>
>  fess-server-9.3.3/bin/setenv.shで-Xmx6gとしており、そこそこ増やした 
> つ もりです。
>
>  検索対象となるファイルは、
>  ・フォーマット:doc/docx/xls/xlsx/ppt/txt/pdf
>  ・サイズ   :最大 50MBまで(10MB超のファイルが20%程度含まれており 
> ま すが、中身が画像主体です。)
>   webapps/fess/WEB-INF/classes/s2robot_contentlength.diconで 
>  52428800Lを指定。
>
>  solr.logには、以下のログが出力された後、同じ内容が繰り返し記録されて 
> い ました。
>
>  ちなみに、検索対象フォルダーを変更して、検索対象ファイルを追加する分 
> に は、普通に追加
> 出来ている様に思われます。
>
>  何か設定が不足しているのでしょうか?
>  クロールは、
>  ファイルシステムのみで、スレッド数5 間隔10000ミリ秒(10秒)として 
> い ます。
>  インデックスされたドキュメント数=約700ファイル程度
>
>  動作環境:
>   CPU 4コア/8スレッド
>   メモリ 16GB
>   HDD 500GB(空き容量は十分)
>    
>
>  2015-06-xx 18:54:48,632 [http-nio-8080-exec-5] ERROR 
> org.apache.solr.servlet.SolrDispatchFilter - 
> null:java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap 
> space
>         at 
> org.apache.solr.servlet.SolrDispatchFilter.sendError(SolrDispatchFilter.java:793)
>         at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:434)
>         at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
>         at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
>         at 
> org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
>         at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
>         at 
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
>         at 
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
>         at 
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521)
>         at 
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at 
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>         at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.OutOfMemoryError: Java heap space
>         at java.util.Arrays.copyOf(Arrays.java:3332)
>         at java.lang.StringCoding.safeTrim(StringCoding.java:89)
>         at java.lang.StringCoding.decode(StringCoding.java:230)
>         at java.lang.String.<init>(String.java:451)
>         at java.lang.String.<init>(String.java:503)
>         at 
> org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.readField(CompressingStoredFieldsReader.java:205)
>         at 
> org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.visitDocument(CompressingStoredFieldsReader.java:369)
>         at 
> org.apache.lucene.index.SegmentReader.document(SegmentReader.java:335)
>         at 
> org.apache.lucene.index.BaseCompositeReader.document(BaseCompositeReader.java:112)
>         at 
> org.apache.lucene.index.IndexReader.document(IndexReader.java:471)
>         at 
> org.apache.lucene.document.LazyDocument.getDocument(LazyDocument.java:99)
>         at 
> org.apache.lucene.document.LazyDocument.fetchRealValues(LazyDocument.java:109)
>         at 
> org.apache.lucene.document.LazyDocument.access$100(LazyDocument.java:40)
>         at 
> org.apache.lucene.document.LazyDocument$LazyField.getRealValue(LazyDocument.java:149)
>         at 
> org.apache.lucene.document.LazyDocument$LazyField.numericValue(LazyDocument.java:185)
>         at org.apache.solr.schema.TrieField.toObject(TrieField.java:115)
>         at 
> org.apache.solr.schema.TrieDateField.toObject(TrieDateField.java:70)
>         at 
> org.apache.solr.schema.TrieDateField.toObject(TrieDateField.java:56)
>         at 
> org.apache.solr.response.BinaryResponseWriter$Resolver.getValue(BinaryResponseWriter.java:233)
>         at 
> org.apache.solr.response.BinaryResponseWriter$Resolver.getDoc(BinaryResponseWriter.java:196)
>         at 
> org.apache.solr.response.BinaryResponseWriter$Resolver.writeResultsBody(BinaryResponseWriter.java:156)
>         at 
> org.apache.solr.response.BinaryResponseWriter$Resolver.writeResults(BinaryResponseWriter.java:183)
>         at 
> org.apache.solr.response.BinaryResponseWriter$Resolver.resolve(BinaryResponseWriter.java:88)
>         at 
> org.apache.solr.common.util.JavaBinCodec.writeVal(JavaBinCodec.java:158)
>         at 
> org.apache.solr.common.util.JavaBinCodec.writeNamedList(JavaBinCodec.java:148)
>         at 
> org.apache.solr.common.util.JavaBinCodec.writeKnownType(JavaBinCodec.java:242)
>         at 
> org.apache.solr.common.util.JavaBinCodec.writeVal(JavaBinCodec.java:153)
>         at 
> org.apache.solr.common.util.JavaBinCodec.marshal(JavaBinCodec.java:96)
>         at 
> org.apache.solr.response.BinaryResponseWriter.write(BinaryResponseWriter.java:52)
>         at 
> org.apache.solr.servlet.SolrDispatchFilter.writeResponse(SolrDispatchFilter.java:758)
>         at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:426)
>         at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
>
>  クロールが完了し、インデックスをDB登録しているんだと思いますが、 
> CPU1 コアを使い切っている
> 状態で、システム設定画面ではクロールを開始出来る様になっています。
>  恐くてクリック出来ませんが、メモリ消費も5Gを超えており、この状態でク 
> リックできるとするのは
> 如何なものなのでしょう?多分落ちますよねw
>
> 以上


-- 
/////////////////////////////////////////////////////////
株式会社 エムエスケー
斎藤 直正
TEL:0598-51-7471 / FAX:0598-52-4849
E-mail:nsait****@msk-w*****  URL:http://www.msk-web.co.jp
/////////////////////////////////////////////////////////




Fess-user メーリングリストの案内
Back to archive index