ElasticSearch内存分配最佳实践

文章目录

  • elasticSearch内存介绍
    • elasticSearch使用的内存种类
      • 堆内存在elasticSearch中的作用
      • 堆外内存在elasticSearch中的作用
      • Buffer Cache在elasticSearch中的作用
  • 内存分配与调优
    • 结合业务实际优化内存比例
  • 总结
  • 题外

elasticSearch内存介绍

在使用elasticSearch过程中或者elasticSearch需要配置升级的时候,elasticSearch内存的分配问题就绕不开了,应该设置多少的堆内存合理?这个问题想必难倒一大批开发者吧,虽然官方给出的建议是堆内存设置机器内存的一半,但毕竟是官方的万金油设置,如果想要更极致的性能应该如何调优呢?本文结合经验和实际浅谈一下这个内存分配的问题

elasticSearch使用的内存种类

elasticSearch使用的内存种类主要分三种:

  • 堆内存:即java启动配置的堆大小
  • 堆外内存:主要是mmap
  • Buffer Cache:系统缓存内存

堆内存在elasticSearch中的作用

堆内存主要用于存储ES进程中的数据结构、文档信息、缓存以及执行搜索操作等。堆内存的大小会直接影响ES的性能,较大的堆内存能够容纳更多的数据和查询,提高搜索性能。然而,过大的堆内存可能导致JVM垃圾回收的开销增大,因此需要在设置时进行权衡。同时Lucene也会使用堆内内存来管理数据结构和索引操作。在es搜索数据的时候,es会从根据搜索把相应索引的分片加载到堆内存里。同时elasticSearch的缓存也是存储在堆内内存里,主要有字段数据缓存、字段数据缓存、字段数据缓存、节点级别的缓存、分布式缓存,这些缓存的作用是应用级别的提速。相当于多次重复条件或者重复的某一个层面的操作会被缓存来提高速度和吞吐量。

堆外内存在elasticSearch中的作用

<

你可能感兴趣的:(elasticsearch,大数据)