ElasticSearch - 集群搭建
集群搭建要求与优化
Node
- 单Node最大内存32GB。原因:heap<32GB,JVM可以利用指针压缩,每个指针4字节而不是8字节,这样可以大大降低内存的使用。否则,每指针占8字节,并且会占用更多的内存带宽,降低CPU性能。
- 系统要保留50%的memory,用以提高Lucene性能——让更多的查询在内存中完成。
- 关闭swap——swap in与swap out需要磁盘IO,性能极差。
存储比典型值
搜索型集群: Capacity(data)/Capacity(memory) = 16:1
日志型集群:Capacity(data)/Capacity(memory) = 32:1
例子:搜索偏多的集群——假设其数据量为1TB,配置3 Node,1 replica,则总共是2TB的数据分布在3 Node:2TB/3=667GB/Node,再考虑每Node有20%的预留,每Node的容量要到667GB/0.8=840GB,总容量2TB/0.8=2560GB。每Node的内存需求840GB/16=52.5GB,该值超出了32GB,因此3 Node不够用。
每Node内存
* 16
* Node数量
>= 带预留量的总量值
因为Node数量是整数,则Node数量
为5