關鍵詞:開啓內存鎖定 關閉內存鎖定 性能優化 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