来自网上内容的总结
写入部分
- 批量写入优于每次写入1条数据。
- 每批次写入时设置routing为一个随机值,那么这批次数据会写入一个shard。减少写入的shard数量可以减少每次“骚扰”到的节点数量,减少merge的次数
- 如果写入压力大,则segment merge可以定时在业务低峰期执行
- _source如果没有需求可以关闭,加快写入速度
- 批量导入数据时,可以设置副本数为0,导入完毕再改回来
搜索部分
- segment数量过多时,影响搜索性能
- 通过es的/_cat/segments接口可以获取segments信息,适时统计这些信息,监控segments数量
排查问题
- cpu使用率高,用es的/_cat/hot_threads接口查看哪些线程占用cpu多
- 开启es的gc日志,cpu或者内存压力大时,从gc日志看看是否gc称为瓶颈
- 写入慢时,查看磁盘的iowait是否很高。top命令的wa的值
今天先写这么多,以后在实践中测试,不断补充
网友评论