Scaling Elasticsearch
As we already know, Elasticsearch is a highly scalable search and analytics platform. We can scale it both horizontally and vertically.
Vertical scaling
When we talk about vertical scaling, we often mean adding more resources to the server Elasticsearch is running on; we can add memory and we can switch to a machine with better CPU or faster disk storage. Of course, with better machines, we can expect increase in performance; depending on our deployment and its bottleneck, there can be smaller or higher improvement. However, there are limitations when it comes to vertical scaling. For example, one is the maximum amount of physical memory available for your servers or the total memory required by the JVM to operate. When you have large enough data and complicated queries, you can very soon run into memory issues, and adding new memory may not be helpful at all.
For example, you may not want to go beyond 31 GB of physical memory given to the JVM because of garbage collection...