We have numa enabled server with 2 sockets, each socket with 28 cores.
We have observed below points:
Under the same workload Scenario 1
when we run ES7.3.0 on both the sockets (112 vcpus) , we can see CPU utilization is 30% , search throughput is 1700 ops/sec and when we increased the search load, the CPU utilization is not going beyond 30%. and search throughput is also not going beyond 1700 ops/sec.
Is there any Elasticsearch specific settings which is restricting to use all available CPU's(112 vcpus) on high search load?
Scenario 2:
When we bind ES7.3.0 to one socket (56 vcpus) we can see all the CPU's (56 vcpus) were utilized around 90 to 95%. (under same workload)
and the ops/sec is 2550 ops/sec which is more then 1700 ops/sec.
In case of 2 sockets (112 vcpus) why the CPU is not maxing out even with high search load.
As a next steps, we are planning to run 2 ES instance on both the sockets on same server.
Objective is to see, if we run 2 ES instance on the same server, will be above to see any gain in search throughput and CPU utilization under the same workload.
Can you please let me know whether we can run 2 ES instances on same machine ,
if yes, how the load balancing will happen and what kind of reverse proxy we are using in Elasticsearch.
When we create a cluster of ES nodes (spread across multiple servers), I believe we can get a single end point through reverse proxy, like nginx or apache http server. I saw your reply that though we can use reverse proxy, but this is generally not needed.
My question is, then how we can achieve a single end point or does ES provide any service similar? My thought on single end points is that it ensures load is balanced across multiple backend ES nodes and deployment is fault tolerant as well.
You should either create a service that runs via name-configuration
or you need to download the source(tar.gz or similar) and run the instance from the ~/bin/elasticsearch with a utility like tmux or screen. I mostly use the second option for running different elastic versions for demos. Just create a tmux session and run the instance you want, then detach and do that for the second one. Just make sure you are not saving data/logs on the same patch have 2 separate dirs of elastic with their own configs.
so
tmux new -s elastic1 > /opt/elastic1/bin/elasticsearch > :detach
tmux new -s elastic2 > /opt/elastic2/bin/elasticsearch > :detach
As i said do not forget to edit their configs to save data and logs to different directories, ports and transports.
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.