Memory issue in ES

Hello,
I face some memory issue in Elasticsearch. Below are the details.
I am having 3 nodes cluster of ES having 8 GB memory on each node.
in /etc/sysconfig/elasticsearch, I have given ES_HEAP_SIZE=2GB. It doesnt start if I set more than 2 GB.

ouot put of command $ free -m is

        total       used       free     shared    buffers     cached

Mem: 7872 7392 480 0 254 1404
-/+ buffers/cache: 5733 2139
Swap: 0 0 0
Total: 7872 7392 480

Pleas guide me what to do? I want to increase memory allocation for ES

What do you mean? Is there anything in the logs?

Hi Mark,

Before automatic shutdown of ES, below was the error I found in error logs.

[2016-06-28 10:55:39,102][DEBUG][action.search.type ] [sit-master-data-node-0] [vsi-im-2016.05.03][1], node[NFPHRFEiTyKSMauArhy8uw], [P], s[STARTED]: Failed to execute [org.elasticsearch.action.search.SearchRequest@57b707fb] lastShard [true]
org.elasticsearch.transport.RemoteTransportException: [sit-data-Node-2][inet[/:9300]][indices:data/read/search[phase/query]]
Caused by: org.elasticsearch.common.util.concurrent.EsRejectedExecutionException: rejected execution (queue capacity 1000) on org.elasticsearch.transport.netty.MessageChannelHandler$RequestHandler@76c2f83c
at org.elasticsearch.common.util.concurrent.EsAbortPolicy.rejectedExecution(EsAbortPolicy.java:62)
at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:821)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1372)
at org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor.execute(EsThreadPoolExecutor.java:79)
at org.elasticsearch.transport.netty.MessageChannelHandler.handleRequest(MessageChannelHandler.java:222)

When I start it again, it gives me error somewhat like--> "cannot allocate required memory (3489****).........."

I could not get exact stacktrace because that error appeared on console.

br,
Sunil