是时候用 ES 拯救发际线啦

ElasticSearch堆外内存限制

Elasticsearch | 作者 loma | 发布于2018年09月07日 | 阅读数:7225

请问可以限制ES的堆外内存么?
背景: 在Docker中部署的ES,由于一个主机上存在多个容器,物理资源并非是ES独立享有的,但是在容器里可以看到的内存是外部主机的所有内存,如果使用的是Docker的内存限制,一旦超过就会OOMKill掉容器,因此想问

有没办法控制器ES的堆外内存? 或者类似问题怎么解?
已邀请:

zqc0512 - andy zhou

赞同来自:

你把JVM限制小点撒。

JackGe

赞同来自:

ES也是java程序,JVM配置参数同样有效,可以通过添加-XX:MaxDirectMemorySize=2g来控制ES使用的最大堆外内存。

loma

赞同来自:

这个是另外的地方提到的, -XX:MaxDirectMemorySize是限制不到pageCache内存的
有人问:
一文中说预留50%的内存给Lucene,lucene会将其使用完。这是不是意味着,我们在使用ES时,是无法控制住ES内存的,直到他将全部的内存使用完毕?
 
有人答:
另外一半内存是pageCache,是操作系统控制的,如果有其他程序需要使用内存,操作系统会控制这些PageCache将内存让出来的
 
 
 

要回复问题请先登录注册