关键词:开启内存锁定 关闭内存锁定 性能优化 Elasticsearch nodes bootstarp memory lock
1.查看 Elasticsearch 内存锁定状态
系统会默认进行内存交换,这样会导致Elasticsearch性能变差。
我们可以查看内存锁定状态,任意主机访问 http://ip:port/_nodes?filter_path=**.mlockall ,可得到
"nodes": {
"73BQvOC2TpSXcr-IXBcDdg": {
"process": {
"mlockall": false
}
},
"9tRr4nFDT_2rErLLQB2dIQ": {
"process": {
"mlockall": false
}
},
可以看到,内存锁定并没有开启,我们需要开启内存物理地址锁定。
2.开启 Elasticsearch 的内存锁定功能
2.1 对每台 Elasticsearch 主机的 config/elasticsearch.yml 配置文件进行修改
bootstrap.memory_lock: true
2.2 修改 /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 32000
* hard nproc 32000
* hard memlock unlimited
* soft memlock unlimited
2.3 修改 /etc/systemd/system.conf
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity
3.重启 Elasticsearch,生效配置
再次查看 http://ip:port/_nodes?filter_path=**.mlockall ,发现都已经成功开启,解决了部分性能问题。
参考文档
1.开启内存锁定 https://cloud.tencent.com/developer/article/1189282
2.内存锁定报错详解 https://segmentfault.com/a/1190000014891856