监控API
- Node Stats:_nodes/stats
- Cluster Stats:_cluster/stats
-
阈值设定
支持将分片上Search和Fetch阶段的慢查询写入文件、定义阈值
Slog log文件通过log4j2.properties配置
put my_index/
{
"settings":{
"index.search.slowlog.threshold:{
"query.warn":"10s",
"query.info":"3s",
"query.debug":"2s",
"query.trace":"0s",
"fetch.warn":"1s"
}
}
}
集群诊断
-
提升写入性能
牺牲可靠性:将副本分片设置为0,写入完毕后再调整回去
- 牺牲搜索实时性
- 增加Refresh Internal时间
- 增大静态配置参数:indices.memary.index_buffer_size
- 默认是JVM内存的10%
- 牺牲可靠性:修改translog配置
- es6.0开始,默认每次写入请求的translog都会落盘
- 降低写磁盘频率,但是会降低容灾能力
- Index.translog.durability:默认是request,每个请求都落盘。设置async,异步写入
- index.translog.sync_interval:设置60s,,每分钟落盘
- index.translog.flush_threshod_size:默认512MB,可适当调大
put my_index
{
"settings":{
"index":{
"refresh_interval":"30s", -- 30秒一次refresh
"number_of_shards":"2",
},
"routing":{
"allocation":{
"total_shards_per_node":"3" -- 每个索引在每个节点上可分配的主分片数,控制分片数,避免数据热点
}
},
"translog":{
"sys_interval":"30s", -- 降低translog落盘频率
"durability":"async" -- 异步落盘
},
"number_of_replicas":0
},
"mappins":{
"dynamic": false, -- 避免不必要的字段索引。必要时可以通过update_by_query索引必要字段
"properties":{
}
}
}