背景
生产上有个 olap 集群,因业务特殊性,导致集群中索引数和索引分片数特别多,集群元数据信息特别庞大,通过 _cat/indices
,_cat/shards
命令去获取索引信息时耗时会特别长,可能导致集群卡顿,影响业务查询、写入,而且会返回超时。
针对返回超时,解决方案是直接在 Linux 机器上,通过 curl 命令,将结果写入到文件里。eg:
curl -XGET http://ip:esClusterHttpPort/_cat/shards?v >shards # 注意:如果 _cat/shards?v 后面要加其余参数,如 _cat/shards?v&s=node,则要对 & 符号进行转义: curl -XGET http://ip:esClusterHttpPort/_cat/shards?v\&s=node >shards
索引状态文件
_cat/shards
命令比 _cat/indices
命令所需消耗的集群资源更少,响应更快,但是无法获取到索引的U