Single Node ES Cluster
ES version 2.3.2
ES_HEAP_SIZE=6G
From our application using multi curl api we are sending parallel bulk request to ES. Size of each bulk request is 10-15MB. Parallel requests send to ES are 100 requests( using multi curl api ). So we have 100 bulk requests each of sixe 10 MB approximately hitting ES. However I see java.lang.OutOfMemoryError: Java heap space.
java.lang.OutOfMemoryError: Java heap space
at com.fasterxml.jackson.core.util.TextBuffer.carr(TextBuffer.java:739)
at com.fasterxml.jackson.core.util.TextBuffer.resultArray(TextBuffer.java:726)
at com.fasterxml.jackson.core.util.TextBuffer.contentsAsArray(TextBuffer.java:367)
at com.fasterxml.jackson.core.util.TextBuffer.getTextBuffer(TextBuffer.java:316)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.getTextCharacters(UTF8StreamJsonParser.java:415)
at com.fasterxml.jackson.core.JsonGenerator.copyCurrentEvent(JsonGenerator.java:1472)
at com.fasterxml.jackson.core.JsonGenerator.copyCurrentStructure(JsonGenerator.java:1578)
at com.fasterxml.jackson.core.JsonGenerator.copyCurrentStructure(JsonGenerator.java:1566)
at org.elasticsearch.common.xcontent.json.JsonXContentGenerator.copyCurrentStructure(JsonXContentGenerator.java:425)
at org.elasticsearch.common.xcontent.XContentBuilder.copyCurrentStructure(XContentBuilder.java:1180)
at org.elasticsearch.action.update.UpdateRequest.source(UpdateRequest.java:669)
at org.elasticsearch.action.bulk.BulkRequest.add(BulkRequest.java:399)
at org.elasticsearch.rest.action.bulk.RestBulkAction.handleRequest(RestBulkAction.java:88)
at org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:54)
at org.elasticsearch.rest.RestController.executeHandler(RestController.java:205)
My question is
- Will increasing the indices.memory.index_buffer_size from 10% to bigger number would help to solve this issue
- How to find out how much memory is being used for bulk indexing Any stats api available?
- Do i need to change any other settings