Hi all,
I am trying to run load test with ES to identify system requirements and
optimum configurations with respect to my load. I have 10 data publishing
tasks and 100 data consuming tasks in my load test.
Data publisher : Each publisher publishes data in every minute and it
publishes 1700 records as a batch using java bulk API.
Data consumer : Each consumer runs in every minute and run a query with
randomly selected aggregation type(average, minimum or maximum) for a
selected data for last hour.
example query that consumer run in every minute :
SearchResponse searchResponse =
client.prepareSearch("myIndex").setTypes("myRecordType")
.setQuery(QueryBuilders.filteredQuery(QueryBuilders.matchQuery("filed1",
"value1"),FilterBuilders.rangeFilter("field2").from("value2").to("value3")))
.addAggregation(AggregationBuilders.avg("AVG_NAME").field("field3")).execute().actionGet();
I have run above test case in my local machine without ES clustering and it
was run around 4 hours without any errors. Memory consumption of ES was
under 2GB. After that I have run same test case in three node ES
cluster(EC2 instances) and ES has ended up with out of memory error after
around 5 minutes in that case. My all three instances have following same
hardware configurations,
8GB RAM
80GB SSD hard disk
4 core CPU
Instance 1
Elasticsearch server (4GB heap)
10 data publishers which will publish data to the local ES server
Instance 2
Elasticsearch server (8GB heap)
10 consumers which will query data from the local ES server
Instance 3
Elasticsearch server (4GB heap)
I'm using ES 1.5.1 version with jdk 1.8.0_40.
My ES cluster have following custom configurations (all other
configurations are default configurations)
bootstrap.mlockall: true
indices.fielddata.cache.size: "30%"
indices.cache.filter.size: "30%
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["host1:9300","host2:9300","host3:9300"]
I believe I have missed something here regarding ES clustering
configuration. Please help me to identify what I have missed here. I want
to reduce the memory utilization as much as possible, that's why I have
given only 4GB heap to ES. If there is a way to reduce the memory
consumption by reducing read consistency level that option is also OK for
me. I have increased the refresh interval for my index, but still no luck
Thanks
Manjula
--
You received this message because you are subscribed to the Google Groups "elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/9f8ebc90-dd37-4da7-97bd-3c0d1c00165c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.