Elasticsearch性能优化参数注解

ES优化主要涉及以下一些参数,每个参数设置建议和解释如下:

  node.master: false   (是否作为主节点,每个节点都可以被配置成为主节点,默认值为true,不建议两节点都配置为true,容易产生脑裂)
  node.data: true      (是否存储数据,即存储索引片段,默认值为true)
  index.number_of_shards: 3    (每一个索引分的分片数量,拥有更多的shard可以提升索引执行能力,并允许通过机器分发一个大型的索引)
  index.number_of_replicas: 2  (每个分片设置的副本数量,拥有更多的副本能够提升搜索执行能力以及集群能力,一个分片可以设置多个副本)
  index.analysis.analyzer.default.type: index_ansj  (设置默认分词器)
  index.analysis.analyzer.default_search.type: query_ansj  (设置默认分词器查询)
  index.unassigned.node_left.delayed_timeout: 5m  (等待一个超时设置的时间,如果丢失节点回来就可以立即恢复)

  bootstrap.memory_lock: true   (设置为true来锁住内存。因为当jvm开始swapping时es的效率会降低,所以要保证它不swap)
备注:设置bootstrap.memory_lock需要修改/etc/profile,加入如下值
#vi /etc/profile
ulimit -l unlimited
命令行执行临时生效命令: # ulimit -l unlimited
  index.refresh_interval: 30s  (索引速率与搜索实时直接的平衡)
  index.translog.flush_threshold_ops: 1000000    (事务日志的刷新间隔,适当增大可降低磁盘IO)
  index.translog.durability: async    (设置是否可以异步写硬盘,增大写的速度)
  index.merge.policy.floor_segment: 100mb   (设置可以防止很小的segment的频繁flush,同时避免索引中的长尾问题。默认是2M)
  index.merge.scheduler.max_thread_count: 1  (索引merge最大线程数)
  index.merge.policy.min_merge_size: 10mb    (设置分段的最低级别的下限值)
请使用浏览器的分享功能分享到微信等