Just to give brief info in case it helps others;
My final numbers atm;
thread_pool.write.queue_size: 250
indices.memory.index_buffer_size: 30%
(higher percentages like 40,50 seemed to lag servers a bit and didn't make much difference for me - kibana started to lose connection with nodes not sure if it is about it but _cat/nodes started to take over 1.5min)
İndex template and active index changes;
increased "index.refresh.interval"
from 5s to 15s , some of my data has to be searched close to real time.
added
"index.translog.durability" : "async"
(default is indexing per request-event , now it is by default for every 5seconds if i'm not mistaken , will watch for a while may change it to 10secs later)
Also changed 1 index template for daily indexes which doesn't keep huge data.
My default was "number of shards": 4 , "auto_expand_replicas" : "0-1"
, on these lowered it to "number_of_shards": 3.
My retention period changes according to indexes.
Either 15 days,2 months or up to 2 years (month based indexes). Lowered shard count for close to 2 years indices with SHRINK api.