0

우리는 AmazoneWeb 서비스 서버에 설치된 Couchbase 인스턴스와 동일한 서버에서 실행되는 Elastic Search 인스턴스를 가지고 있습니다.Couchbase - ElasticSearch Java 힙 메모리

[2013-08-29 21:27:34,947][WARN ][cluster.metadata   ] [01-Thor] failed to dynamically update the mapping in cluster_state from shard 
java.lang.OutOfMemoryError: Java heap space 
    at org.apache.lucene.util.ArrayUtil.grow(ArrayUtil.java:343) 
    at org.elasticsearch.common.io.FastByteArrayOutputStream.write(FastByteArrayOutputStream.java:103) 
    at org.elasticsearch.common.jackson.core.json.UTF8JsonGenerator._flushBuffer(UTF8JsonGenerator.java:1848) 
    at org.elasticsearch.common.jackson.core.json.UTF8JsonGenerator.writeString(UTF8JsonGenerator.java:436) 
    at org.elasticsearch.common.xcontent.json.JsonXContentGenerator.writeString(JsonXContentGenerator.java:84) 
    at org.elasticsearch.common.xcontent.XContentBuilder.field(XContentBuilder.java:314) 
    at org.elasticsearch.index.mapper.core.AbstractFieldMapper.doXContentBody(AbstractFieldMapper.java:601) 
    at org.elasticsearch.index.mapper.core.NumberFieldMapper.doXContentBody(NumberFieldMapper.java:286) 
    at org.elasticsearch.index.mapper.core.LongFieldMapper.doXContentBody(LongFieldMapper.java:338) 
    at org.elasticsearch.index.mapper.core.AbstractFieldMapper.toXContent(AbstractFieldMapper.java:595) 
    at org.elasticsearch.index.mapper.object.ObjectMapper.toXContent(ObjectMapper.java:920) 
    at org.elasticsearch.index.mapper.object.ObjectMapper.toXContent(ObjectMapper.java:852) 
    at org.elasticsearch.index.mapper.object.ObjectMapper.toXContent(ObjectMapper.java:920) 
    at org.elasticsearch.index.mapper.object.ObjectMapper.toXContent(ObjectMapper.java:852) 
    at org.elasticsearch.index.mapper.object.ObjectMapper.toXContent(ObjectMapper.java:920) 
    at org.elasticsearch.index.mapper.object.ObjectMapper.toXContent(ObjectMapper.java:852) 
    at org.elasticsearch.index.mapper.object.ObjectMapper.toXContent(ObjectMapper.java:920) 
    at org.elasticsearch.index.mapper.object.ObjectMapper.toXContent(ObjectMapper.java:852) 
    at org.elasticsearch.index.mapper.object.ObjectMapper.toXContent(ObjectMapper.java:920) 
    at org.elasticsearch.index.mapper.DocumentMapper.toXContent(DocumentMapper.java:700) 
    at org.elasticsearch.index.mapper.DocumentMapper.refreshSource(DocumentMapper.java:682) 
    at org.elasticsearch.index.mapper.DocumentMapper.<init>(DocumentMapper.java:342) 
    at org.elasticsearch.index.mapper.DocumentMapper$Builder.build(DocumentMapper.java:224) 
    at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:231) 
    at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:380) 
    at org.elasticsearch.index.mapper.MapperService.merge(MapperService.java:190) 
    at org.elasticsearch.cluster.metadata.MetaDataMappingService$2.execute(MetaDataMappingService.java:185) 
    at org.elasticsearch.cluster.service.InternalClusterService$2.run(InternalClusterService.java:229) 
    at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:95) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
[2013-08-29 21:27:56,948][WARN ][indices.ttl    ] [01-Thor] failed to execute ttl purge 
java.lang.OutOfMemoryError: Java heap space 
    at org.apache.lucene.util.ByteBlockPool$Allocator.getByteBlock(ByteBlockPool.java:66) 
    at org.apache.lucene.util.ByteBlockPool.nextBuffer(ByteBlockPool.java:202) 
    at org.apache.lucene.util.BytesRefHash.add(BytesRefHash.java:319) 
    at org.apache.lucene.util.BytesRefHash.add(BytesRefHash.java:274) 
    at org.apache.lucene.search.ConstantScoreAutoRewrite$CutOffTermCollector.collect(ConstantScoreAutoRewrite.java:131) 
    at org.apache.lucene.search.TermCollectingRewrite.collectTerms(TermCollectingRewrite.java:79) 
    at org.apache.lucene.search.ConstantScoreAutoRewrite.rewrite(ConstantScoreAutoRewrite.java:95) 
    at org.apache.lucene.search.MultiTermQuery$ConstantScoreAutoRewrite.rewrite(MultiTermQuery.java:220) 
    at org.apache.lucene.search.MultiTermQuery.rewrite(MultiTermQuery.java:288) 
    at org.apache.lucene.search.IndexSearcher.rewrite(IndexSearcher.java:639) 
    at org.apache.lucene.search.IndexSearcher.createNormalizedWeight(IndexSearcher.java:686) 
    at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:309) 
    at org.elasticsearch.indices.ttl.IndicesTTLService.purgeShards(IndicesTTLService.java:186) 
    at org.elasticsearch.indices.ttl.IndicesTTLService.access$000(IndicesTTLService.java:65) 
    at org.elasticsearch.indices.ttl.IndicesTTLService$PurgerThread.run(IndicesTTLService.java:122) 

[2013-08-29 21:29:23,919][WARN ][indices.ttl    ] [01-Thor] failed to execute ttl purge 
java.lang.OutOfMemoryError: Java heap space 

우리는 몇 가지 변경 시도 : 갑자기 , 우리는 ElasticSearch에 다음과 같은 오류 로그를 가지고 ... 때까지

두 사람 bewtween 연결이 미세 복제 현재 확인 수행 및되고있다 메모리 값,하지만 우리는 그것을 제대로 얻을 것 같습니다.

일부 사용자에게 동일한 문제가 발생 했습니까?

답변

0

몇 가지 문제 해결 팁 :

  1. 일반적으로 스마트

    디버깅의 예측 가능한 성능/쉽게 만 Elasticsearch 한 AWS 인스턴스를 바치고.

  2. Bigdesk 플러그인을 사용하여 메모리 사용을 모니터링하십시오. 이렇게하면 Elasticsearch에서 메모리 병목 현상이 발생하는 경우가 표시됩니다. 운영 체제, 동시 쿼리 및 인덱싱이 동시에 발생하거나 예측하지 못한 결과 일 수 있습니다.

  3. Elasticsearch의 Java 힙은 상자의 총 메모리의 약 50 %로 설정해야합니다.

  4. Shay Banon의 gist은 Elasticsearch의 메모리 문제를 해결할 수있는 여러 가지 솔루션을 제공합니다.