elasticsearch优化思路笔记

来自网上内容的总结

写入部分

  1. 批量写入优于每次写入1条数据。
  2. 每批次写入时设置routing为一个随机值,那么这批次数据会写入一个shard。减少写入的shard数量可以减少每次“骚扰”到的节点数量,减少merge的次数
  3. 如果写入压力大,则segment merge可以定时在业务低峰期执行
  4. _source如果没有需求可以关闭,加快写入速度
  5. 批量导入数据时,可以设置副本数为0,导入完毕再改回来

搜索部分

  1. segment数量过多时,影响搜索性能
  2. 通过es的/_cat/segments接口可以获取segments信息,适时统计这些信息,监控segments数量

排查问题

  1. cpu使用率高,用es的/_cat/hot_threads接口查看哪些线程占用cpu多
  2. 开启es的gc日志,cpu或者内存压力大时,从gc日志看看是否gc称为瓶颈
  3. 写入慢时,查看磁盘的iowait是否很高。top命令的wa的值

今天先写这么多,以后在实践中测试,不断补充

你可能感兴趣的:(elasticsearch优化思路笔记)