In a lot of topic is said that we shouldn't worry about balancing primary shards across all nodes.
Currently my primaries are highly unbalanced in my elasticsearch cluster (3 nodes with elastic 6.4.0).
On the cluster are performed mainly read/search queries and according to the documentation they
should balanced between the node of the shard, but it seems that they are performed only
on the server 3 (that one with high load).
curl -XGET 's01.node.consul:9200/_cat/thread_pool' | grep "search"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1845 100 1845 0 0 75275 0 --:--:-- --:--:-- --:--:-- 76875
"s01" search 0 0 2
"s02" search 0 0 0
"s03" search 7 8 164
This is one of the example of the queries:
GET host.elastic:9200/index_*/_search/?scroll=120s
{
"query": {
"bool": {
"must": [{
"match": {
"param1": "1111"
}
}, {
"match": {
"param2": "XXXXXX"
}
}]
}
},
"sort": [{
"entered_date": {
"order": "asc"
}
}],
"size": 1000
}