Elasticsearch(ES) 配置建议

Elasticsearch的内存建议设置为32GB以下,‌主要是因为Java虚拟机(‌JVM)‌在内存小于32G时会采用内存对象指针压缩技术,‌以提高内存使用效率。‌这种技术通过压缩对象指针,‌使得32位的指针可以引用40亿个对象,‌而不是40亿个字节,‌从而在堆内存达到32G时,‌仍然能够使用32bit的指针表示。‌然而,‌一旦内存超过这个界限,‌指针将切换到普通对象的指针,‌这将导致每个对象的指针变长,‌从而浪费更多的CPU和内存带宽,‌降低性能。‌此外,‌当JVM的内存设置为32GB以上时,‌实际使用的内存效果会下降,‌因为压缩下的对象会比未压缩的要小一些,‌正常是20-30%的差异。‌因此,‌为了效率和性能的考虑,‌建议将Elasticsearch的内存设置在32GB以下。

尽管内存充足,也应避免超过32GB的使用,以免浪费资源、降低CPU效率,并增加垃圾回收(GC)的负担。

推荐配置:

|-----|-----------|-------------|-------------------------|
| 日志类 | 特点 | 磁盘 | 集群节点数 |
| 搜索类 | 写入较少,查询频繁 | 单个分片不超过20G | 1:16 (内存:节点要存储的数据) |
| 日志类 | 写入频繁,查询较少 | 单个分片不要大于50G | 1:48-1:96 (内存:节点要存储的数据) |
| 冷节点 | 写入较少,查询较少 | | 1:96 |

对于数据量较小(100GB以下)的index

  • 往往写入压力查询压力相对较低,一般设置3~5个shard,numberofreplicas设置为1即可(也就是一主一从,共两副本)。

对于数据量较大(100GB以上)的index:

  • 一般把单个shard的数据量控制在(20GB~50GB)
  • 让index压力分摊至多个节点:可通过下面的参数来强制限定一个节点上该index的shard数量,让shard尽量分配到不同节点上。参数:
  • index.routing.allocation.totalshardsper_node
相关推荐
计算机编程-吉哥17 小时前
大数据毕业设计-基于大数据的健康饮食推荐数据分析与可视化系统(高分计算机毕业设计选题·定制开发·真正大数据)
大数据·毕业设计·计算机毕业设计选题·机器学习毕业设计·大数据毕业设计·大数据毕业设计选题推荐·大数据毕设项目
Elasticsearch17 小时前
带地图的 RAG:多模态 + 地理空间 在 Elasticsearch 中
elasticsearch
用户74155170147718 小时前
基础语法和数据类型
大数据
武子康18 小时前
大数据-94 Spark核心三剑客:RDD、DataFrame、Dataset与SparkSession全面解析
大数据·后端·spark
一个儒雅随和的男子18 小时前
Dockerfile构建容器需要注意的事项。
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客18 小时前
介绍 Python Elasticsearch Client 的 ES|QL 查询构建器
大数据·开发语言·数据库·python·elasticsearch·搜索引擎·全文检索
微盛AI企微管家19 小时前
企业微信AI功能升级:选对企业微信服务商协助四大AI场景落地
大数据·人工智能·企业微信
奋斗的蛋黄19 小时前
大数据与云计算知识点
大数据·hadoop·云计算
BYSJMG20 小时前
计算机毕设选题:基于Python+MySQL校园美食推荐系统【源码+文档+调试】
大数据·开发语言·python·mysql·django·课程设计·美食
索迪迈科技21 小时前
Flink Task线程处理模型:Mailbox
java·大数据·开发语言·数据结构·算法·flink