java1234开源博客系统
博客信息

elasticsearch性能优化bootstrap.memory_lock: true

发布时间:『 2019-01-16 19:01』  博客类别:elasticsearch  阅读(4945) 评论(0)

elasticsearch性能优化bootstrap.memory_lock: true


最近 006 百度云搜索引擎项目上线 遇到不少坑,也有一些心得分享下;http://yun.java1234.com/

006项目分词检索用的是 elasticsearch,开始部署没注意,基本都是默认配置,今天服务说硬盘频繁读,IOPS超高,

1.jpg


一般普通硬盘每秒大概90次,我这边都2千多次了。

所以大体分析了下,最终bootstrap.memory_lock: true要设置下;

这个配置,锁定物理内存地址,防止elasticsearch内存被交换出去,也就是避免es使用swap交换分区,频繁的交换,会导致IOPS变高;

设置好后,启动es会报错:

[1] bootstrap checks failed

[1]: memory locking requested for elasticsearch process but memory is not locked


这里需要额外设置下系统配置文件 需要切换到root用户:

1,修改/etc/security/limits.conf

最后添加:

* soft nofile 65536

* hard nofile 65536

* soft nproc 32000

* hard nproc 32000

* hard memlock unlimited

* soft memlock unlimited



2,修改/etc/systemd/system.conf

修改下面几项

DefaultLimitNOFILE=65536

DefaultLimitNPROC=32000

DefaultLimitMEMLOCK=infinity


3,最后 /bin/systemctl daemon-reload 执行下即可;


这里再说几点对于小系统应用es的优化和建议:

第一:建议用SSD,提高性能;

第二:新建索引的时候 分片设置成1,备份设置成0,能有效的降低IOPS;(分片多,备份多了,一直在进行磁盘操作,以及内存也紧张,弄不好,服务器配置低的话,直接炸了);


参考配置:

put http://localhost:9200/test2/
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0,
    "index.analysis.analyzer.default.type": "ik_max_word"
  },
  "mappings": {
    "my": {
      "properties": {
        "id": {
          "type": "long"
        },
        "name": {
          "type": "text"
        },
        "content": {
          "type": "text"
        }
      }
    }
  }
}


关键字:   elasticsearch     优化  
关注Java1234微信公众号
博主信息
Java1234_小锋
(知识改变命运,技术改变世界)
Powered by Java1234 V3.0 Copyright © 2012-2016 Java知识分享网 版权所有