Elasticsearch
集群管理关键点
在Elasticsearch的集群管理中,有几个关键点需要注意,包括节点角色分配、避免脑裂、分片设置以及一些最佳实践的配置。
节点角色分配
Elasticsearch中的节点可以分为`master
nodes`和`data
nodes`,在配置文件中使用Zen发现(Zendiscovery)机制来管理不同节点。在一个由多个`master
nodes`符合条件的节点组成的集群中,我们总是担心,如果网络出现分区或不稳定,那么集群会意外地选举出多个`master
nodes`,这被称为“脑裂”场景。因此,为了避免这种情况,我们至少需要最少的`master
nodes`投票才能赢得`master
nodes`选举。创建3个专用`master
nodes`是一种常用的策略,因为Elasticsearch要求半数+1的符合`master
nodes`资格的节点必须投票选举新的`master
nodes`。
分片设置
分片大小没有硬性限制,但经验表明,10GB到50GB之间的分片通常适用于日志和时间序列数据。分片数指定后不可变,除非重索引。每个分片本质上就是一个Lucene索引,因此会消耗相应的文件句柄,内存和CPU***。每个搜索请求会调度到索引的每个分片中。如果分片分散在不同的节点倒是问题不太大,但当分片开始竞争相同的硬件***时,性能便会逐步下降。
最佳实践的配置
在Elasticsearch和Lucene是用J***a编写的,我们需要调整最大堆空间和JVM统计信息。需要注意的是,Elasticsearch可用的堆越多,它可以用于过滤、缓存和其他进程以提高查询性能的内存就越多。此外,过多的堆空间会导致大量垃圾回收。将`Xms`和`Xmx`设置为不超过总内存的50%是一个常见的做法。另外,还需要注意操作系统试图将尽可能多的内存用于文件系统缓存,并急切地换出未使用的应用程序内存。当操作系统决定这样做时,Elasticsearch性能可能会受到严重影响,因此需要禁用操作系统级交换并启用内存锁。
以上就是Elasticsearch集群管理的关键点,希望对您有所帮助。
追问
延伸阅读
参考资料为您提炼了 4 个关键词,查找到 30519 篇相关资料。