使用 dmesg 来查看一些硬件或驱动程序的信息或问题。

求教ES中Java内存的设置

Elasticsearch | 作者 yeziblo | 发布于2019年09月24日 | 阅读数:2773

首先提前祝各位伙伴国庆快了~还差一个礼拜啦~~~

我想请教下,ES中的内存设置,也就是jvm.options中的-Xms和-Xmx这两个参数…一般来说,ES建议把它们的值设置成一样的(都是当前服务器内存的一半,但不能超过31G).

我想问的是,请问这里的内存主要是干啥的啊?是不是ES所有的处理,比如index_buffer,又比如查询时排序的数据,用的都是这31G的内存么?

如果我的电脑内存可能非常大,那么ES用的,说到底也只是这最大31G么?

请各位伙伴,抽空帮我解惑,不胜感激!

再祝各位身体健康~家庭幸福~
已邀请:

zqc0512 - andy zhou

赞同来自:

你去查询下JAVA的内存,这玩意是基于JAVA的,
目前31G是JVM内存,lucene还会有31G缓存,一般64G机器,31GJVM 只启动一个节点,或者 16G 两个节点,根据业务测试。

locatelli

赞同来自:

31G只是heap,ES还需要用到off-heap的内存,比如文件系统file cache以及JVM本身需要的额外开销,这些都不在heap之内但都跟ES有关联。

doom

赞同来自:

官方建议JVM的最大堆内存,主要是根据索引库的索引来说的,不超过32G;这个关系到单机分片的数量600--750个 ,分片的数量基本就决定了单机最大的索引库容量,这些是建立索引所需要的内存,像文件系统一样,都有一部分索引数据在内存中;es内部的索引查询还是调用的lucene;这是查询计算也需要的内存。
总结起来就是,索引库内存和查询计算内存

要回复问题请先登录注册