监控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":{}}}
