1、设置max_map_count不能启动es会启动不起来(因虚拟内存太少导致)
报错信息:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]; for more information see [Maximum map count check | Elasticsearch Guide [8.11] | Elastic]
解决办法:登录用户切换到管理模式,
输入命令:sysctl -w vm.max_map_count=262144 重新设置更大的虚拟内存
输入命令:cat /proc/sys/vm/max_map_count 查看虚拟内存大小
2、解决ES开启锁定内存后不能重新,报错“MEMORY LOCKING REQUESTED FOR ELASTICSEARCH PROCESS BUT MEMORY IS NOT LOCKED”
错误原因就是我们在配置文件里开启了
bootstrap.memory_lock: true
不需要次需求的话,改成
false就好
如果需要开启,按照下面来,亲测可行
3、elasticsearch官网建议生产环境需要设置bootstrap.memory_lock: true
官网的解释 是:发生系统swapping的时候ES节点的性能会非常差,也会影响节点的稳定性。所以要不惜一切代价来避免swapping。swapping会导致Java GC的周期延迟从毫秒级恶化到分钟,更严重的是会引起节点响应延迟甚至脱离集群。
所以最好限制住elasticsearch占用的内存情况,可选少用swap
报错:memory locking requested for elasticsearch process but memory is not locked; for more information see
解决方法:
方案1:关闭bootstrap.memory_lock:,会影响性能(不建议)
# vim /etc/elasticsearch/elasticsearch.yml // 设置成false就正常运行了。 bootstrap.memory_lock: false
方案2:开启bootstrap.memory_lock:
1. 修改文件/etc/elasticsearch/elasticsearch.yml,上面那个报错就是开启后产生的,如果开启还要修改其它系统配置文件
bootstrap.memory_lock: true