The default thread pool settings for most thread pools is problematic in it being cached (for example, for index, search) since its unbounded in its thread creations. Change the default thread pool settings to follows:
index: type: fixed, size: num_proc
bulk: type: fixed, size: num_proc
get: type: fixed, size: num_proc
search: type: fixed, size: num_proc * 2, queue_size: 1000
percolate: type: fixed, size: num_proc
management: type: scaling, size: 5
flush: type: scaling, size: halfProcMax5
merge : type: scaling, size: halfProcMax5,
refresh: type: scaling, size: halfProcMax10
warmer: type: scaling, size: halfProcMax5