It's ElasticSearch v.2.2.0
{AWS EC2 m4.xlarge
: 4 vCPUs, 16 GiB Mem} x 3
node-1: master/data
node-2: data-only
node-3: data-only
ES_HEAP_SIZE: 10g
Data: 100,000,000 docs
Indices: 13000
Shards: 3 / index
Replica: 1
p.s. Changing master/data to master-only node didn't help any. I am still getting the following.
[2016-02-21 22:03:47,104][WARN ][monitor.jvm ] [Hulk] [gc][old][18835][175] duration [3m], collections [5]/[3m], total [3m]/[1h], memory [9.9gb]->[9.9gb]/[9.9gb], all_pools {[young] [266.2mb]->[266.2mb]/[266.2mb]}{[survivor] [33.2mb]->[33.2mb]/[33.2mb]}{[old] [9.6gb]->[9.6gb]/[9.6gb]}
[2016-02-21 22:31:27,605][WARN ][transport.netty ] [Hulk] exception caught on transport layer [[id: 0x180573ba, /172.31.7.130:40806 => /172.31.9.135:9300]], closing connection
java.lang.OutOfMemoryError: Java heap space
at org.apache.lucene.util.CharsRefBuilder.<init>(CharsRefBuilder.java:35)
at org.elasticsearch.common.io.stream.StreamInput.<init>(StreamInput.java:246)
Only master node blows up while data nodes are okay.
What's happening in master's memory?