一、故障现场:报表系统集体瘫痪
凌晨3点,风控系统触发报警:“商户交易分析报表查询超时率100%!”
登录Kibana查看慢查询日志,发现一个terms聚合请求耗时从平均200ms暴涨至45秒,且大量线程阻塞在search
线程池。
二、排查实录:从超时日志到分片级参数
1. 第一层:业务代码比对
对比架构师提交的代码差异,发现聚合逻辑变更:
// 原查询(size=1000)
"aggs": {
"merchant_stats": {
"terms": {
"field": "merchant_id",
"size": 1000
}
}
}
// 新查询(size=10000)
"aggs": {
"merchant_stats": {
"terms": {
"field": "merchant_id",
"size": 10000,
"shard_size": 15000 // 新增参数
}
}
}
2. 第二层:分片数据反直觉现象
通过_search_shards
API查看分片分布: