由于JVM发生swap交换会导致极大降低ES的性能,为了防止ES发生内存交换,我们可以通过锁定内存来实现。这将极大提高查询性能,但同时可能造成OOM,需要对应做好资源监控,必要的时候进行干预。
内存锁定的方法:
1. 修改ES的配置文件elasticsearch.yml,设置bootstrap.memory_lock为true;
2. 修改jvm.options,通常设置-Xms和-Xmx的的值为“物理内存大小的一半和32G的较小值”
3. 关闭 *** 作系统的swap
临时关闭:sudo swapoff -a
永久关闭:sudo vim /etc/fstab,注释掉或删除所有swap相关的内容
4.修改/etc/security/limits.conf,设置memlock为unlimited
elk hard memlock unlimited
elk soft memlock unlimited
5.修改/etc/systemd/system.conf,设置vm.max_map_count为一个较大的值
vm.max_map_count=10240000
6.修改/etc/systemd/system.conf,设置DefaultLimitNOFILE,DefaultLimitNPROC,DefaultLimitMEMLOCK为一个较大值,或者不限定
7.重启ES服务
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)