elasticsearch,Docker,elasticsearch" /> elasticsearch,Docker,elasticsearch" />

Docker 在单个主机上运行多节点Elasticsearch群集有意义吗?

Docker 在单个主机上运行多节点Elasticsearch群集有意义吗?,docker,elasticsearch,Docker,elasticsearch,在一台主机上运行多个节点会得到什么?我无法获得可用性,因为如果主机停机,整个集群都会随之停机。这对性能有意义吗?ES的一个实例不需要从主机获取所需的资源吗?这取决于您的主机以及您如何配置节点 例如,Elastic建议为elasticsearch分配最多32GB的RAM(因为Java是如何压缩指针的),并为操作系统分配另外32GB的RAM(主要用于磁盘缓存) 假设您的主机上有超过64GB的ram,比如说128个,那么在同一台机器上运行两个节点是有意义的,两个节点都配置为32GB的ram,并为操作系

在一台主机上运行多个节点会得到什么?我无法获得可用性,因为如果主机停机,整个集群都会随之停机。这对性能有意义吗?ES的一个实例不需要从主机获取所需的资源吗?

这取决于您的主机以及您如何配置节点

例如,Elastic建议为elasticsearch分配最多32GB的RAM(因为Java是如何压缩指针的),并为操作系统分配另外32GB的RAM(主要用于磁盘缓存)


假设您的主机上有超过64GB的ram,比如说128个,那么在同一台机器上运行两个节点是有意义的,两个节点都配置为32GB的ram,并为操作系统留出64个内存。

通常没有,但是如果您的机器有大量CPU和内存,您可能希望正确利用可用资源。使用Elasticsearch避免大堆通常是一件好事,因为大堆上的垃圾收集可能会成为一个问题,在任何超过32 GB的情况下,您都会失去指针压缩的好处。大多数情况下,您不需要使用大量的ES。ES使用的大部分内存都是通过内存映射文件实现的,这些文件依赖于OS缓存。因此,不将内存分配给堆并不意味着它没有被使用:更多可用于缓存的内存意味着您将能够处理更大的碎片或更多碎片


因此,如果运行更多节点,这种优势就会消失,在冗余堆上浪费内存,节点就会争夺资源。通常,您应该根据实际内存、缓存和cpu使用情况来做出这些决定

假设你有一台非常强大的机器,最好只有很少的节点。请注意,除非您的机器上有超过64 gb的物理RAM,否则不建议在每台机器上有多个节点。这是你的案子吗?从弹性搜索