I have a cluster of three nodes. indesx setup with 12 shards and 2 replica.
While running a load test for search only queries, I notce that the load doesn't spread the same on all nodes. I see two nodes with load ~6 and onde node get load as high as 15 to 20.
Notes:
Same results with / without route
HTTP Queries are load balanced with random node selection
Using an addiotional client node doesn't change anything
No indexing / inserts are done
The loaded node changes on every new load test that we start
Those are all things I'd ask first. If you've made sure those are all right I'd:
Use the hot_threads api and compare.
Compare the output of sudo -u elasticsearch bash -c 'jstack `cat /var/run/elasticsearch.pid`'
the loaded and unloaded nodes. Repeat this command a few times so you can get a sense of what is going on.
Make double sure the data really is distributed evenly and you aren't using routing.
Note that having 12 shards and 2 replicas with three nodes isn't going to be as efficient on query as having 1 shard and 2 replicas.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.