Elasticsearch内存优化建议
内存优化建议: 为了保证性能,每个ES节点的JVM内存设置具体要根据node存储的数据量来估算,建议符合下面约定
1、在内存和数据量有一个建议的比例:对于一般日志类文件,1G内存能存储48G~96GB数据
2、JVM堆内存最大不要超过30GB
3、单个分片控制在30-50GB,太大查询会比较慢,索引恢复和更新时间越长;分片太小,会导致索引 碎片化越严重,性能也会下降
范例:
假设总数据量为1TB,3个node节点,1个副本;那么实际要存储的大小为2TB
每个节点需要存储的数据量为:2TB/3 = 700GB,每个节点还需要预留20%的空间,所以每个node要存储大约 700*100/80=875GB的数据;
按照内存与存储数据的比率计算:875GB/48GB=18,即需要JVM内存为18GB,小于30GB
因为要尽量控制分片的大小为30GB;875GB/30GB=30个分片,即最多每个节点有30个分片
推荐使用宿主机物理内存的一半,ES的heap内存最大不超过30G,26G是比较安全的
堆内存的初始值和最大值设置一样,
[root@es-node1 ~]# vim /etc/elasticsearch/jvm.options
-Xms30g
-Xmx30g
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫