14.ES 生产集群部署之 jvm以及集群规划

ES集群部署中,内存是关键因素,因为其主要利用操作系统缓存提升磁盘读写性能。理想的内存分配是为JVM堆内存和OS缓存留足空间,例如64G内存可分配32G或16G给JVM。CPU要求较低,通常2-8核即可。SSD硬盘能显著提高读写性能。官方不建议调整JVM参数。对于10亿规模数据,建议5台8核64G机器,确保足够的内存供操作系统缓存使用,避免性能下降。
摘要由CSDN通过智能技术生成

1、内存

ES是很吃内存的,es吃的主要不是你的jvm的内存,一般来说es用jvm heap(堆内存)还是用的比较少,主要吃的是你的机器的内存

ES底层基于Lucene,lucene是基于磁盘文件来读写和保存你的索引数据的,倒排索引,正排索引,lucene的特点就是会基于os filesystem cache,会尽量将频繁访问的磁盘文件的数据在操作系统的内存中缓存,然后尽量提升磁盘文件读写的性能

ES的性能80%取决于你的机器上,除了分配给jvm heap内存外,还剩下多少内存,剩下的内存会留给ES的磁盘索引文件做缓存,如果os cache能够缓存更多的磁盘文件的数据,索引文件的数据,索引读写的性能都会高很多,特别是检索

但是如果你的大量的索引文件在os cache中放不下,还是停留在磁盘上,那么搜索、聚合的时候大量的都是读写磁盘文件,性能当然相当低了,一个数据量级 ms级 s级

如果在ES生产环境中,哪种资源最容易耗尽,那么就是内存了。排序和聚合都会耗费掉很多内存,所以给ES进程分配足够的内存是很重要的。除了给jvm heap 分配内存,还需要给予足够的内存给os filesystem cache。因为lucene 用的数据结构都是给予磁盘的 的格式,es是通过os cache来进行高性能的磁盘读写的。

如果一个机器有64G的内存,那么比较理想的状态,如果32G 和 16G的内存也是Ok的

2、CPU 

大多数的es集群对于cpu的要求相对较低一些,一般2-8核

3、磁盘

SSD固态硬盘 比机械硬盘 可以让ES 读写性能都高很多倍

4、JVM

官方不建议调整jvm参数配置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值