Nodes are getting disconnecting and connecting again in few seconds

Please format your code using </> icon as explained in this guide. It will make your post more readable.

Or use markdown style like:

```
CODE
```

why GC is taking more time?

Not really more than usually. It's just taking time because you have apparently 30Gb of HEAP and Old GC on 30 Gb can take up to 2 minutes I believe.

What are the common cause for this issue?

You did not tell about your versions BTW (Java and ES).

Apparently you changed some default settings, so I guess you understood perfectly the consequence of it. Like threadpool.bulk.queue_size: 1000.
Not sure why you adjusted those knobs. But look at what monitoring is saying. Look at the bulk queue usage. Is it "full" or almost? Might use a lot of memory which has to be reclaimed.

May you are using fielddata for sorting, aggs?

Did you install Marvel/X-Pack to monitor your cluster? That might tell you something.