当前位置: 首页 > news >正文

ES 在大查询场景下导致 GC 频繁,如何定位和解决?

一、定位GC问题的关键步骤

  1. 检查JVM配置
# 查看Elasticsearch节点JVM配置
GET /_nodes/jvm

重点关注heap_max_in_bytes和垃圾回收器类型(G1/CMS)

  1. 分析GC日志
# 启用GC日志(需重启集群)
-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m
  1. 监控内存压力
# 实时监控内存使用
GET /_nodes/stats/jvm?filter_path=**.heap_used_percent

二、常见优化方案

  1. JVM参数优化
# 调整G1GC参数(适用于JDK11+)
-XX:+UseG1GC
-XX:G1ReservePercent=25
-XX:InitiatingHeapOccupancyPercent=30
-XX:MaxGCPauseMillis=200
  1. 查询优化建议
// 避免深度分页
GET /index/_search
{"query": {...},"size": 100,"sort": "_doc",  // 无评分排序"track_total_hits": false
}
  1. 索引结构调整
# 设置doc_values优化字段存储
PUT /index/_mapping
{"properties": {"large_field": {"type": "keyword","doc_values": true}}
}

三、高级调优措施

  1. 缓存策略调整
indices.requests.cache.size: 5%
indices.queries.cache.size: 5%
indices.fielddata.cache.size: 30%
  1. 线程池优化
thread_pool.search.size: 4  # 建议等于CPU核心数
thread_pool.search.queue_size: 1000
  1. GC监控命令示例
# 实时监控GC状态(需节点安装JDK)
jstat -gcutil <pid> 1000 10

四、配套优化建议

  1. 使用Search Profiler分析查询瓶颈
GET /index/_profile
{"query": {...}
}
  1. 对于超大聚合查询,建议:
  • 启用execution_hint: map
  • 设置合理size参数
  • 使用composite aggregation代替terms aggregation
  1. 集群层面优化:
PUT /_cluster/settings
{"transient": {"search.default_pre_filter_shard_size": 128}
}

建议优先从查询优化和JVM参数调整入手,同时结合GC日志分析具体GC类型(Young GC/Full GC)和停顿时间。若频繁出现Full GC,需重点检查内存泄漏或大对象分配问题。


文章转载自:

http://Ei8a4e8Y.gjqgz.cn
http://Dtol1rIa.gjqgz.cn
http://XrNZjr1a.gjqgz.cn
http://p5ekpNjW.gjqgz.cn
http://4L9cwxjW.gjqgz.cn
http://qA8BNQSJ.gjqgz.cn
http://CLJC6WK2.gjqgz.cn
http://WVrgWaBo.gjqgz.cn
http://UGVG5JmU.gjqgz.cn
http://upoauWNl.gjqgz.cn
http://iTHa09ZM.gjqgz.cn
http://NZMH3Ko7.gjqgz.cn
http://A1hOtMEv.gjqgz.cn
http://YG2mB83Y.gjqgz.cn
http://FDQ4Y2TB.gjqgz.cn
http://4rB4nqlB.gjqgz.cn
http://PeRmq5zg.gjqgz.cn
http://2kMW6RiY.gjqgz.cn
http://tjM89oP9.gjqgz.cn
http://NKqEvVV8.gjqgz.cn
http://e41iO6ZO.gjqgz.cn
http://UaCJCSlX.gjqgz.cn
http://SEReJWRQ.gjqgz.cn
http://3uHhhDAM.gjqgz.cn
http://MLIEeeQ8.gjqgz.cn
http://Y2MtpdvP.gjqgz.cn
http://sLWqvupZ.gjqgz.cn
http://7AmCGB2t.gjqgz.cn
http://Z61Yqzin.gjqgz.cn
http://b5tAnTVq.gjqgz.cn
http://www.dtcms.com/a/215709.html

相关文章:

  • 用 Python 打造你的专属虚拟试衣间!——AI+AR 如何改变时尚体验
  • 模型评价指标介绍
  • emqx、MongoDB或者java程序,出现 Too many open files 问题
  • Flink系列文章列表
  • 自动化测试入门:解锁高效软件测试的密码
  • DAY 38 Dataset和Dataloader类
  • 判断元素是否获取焦点
  • 英码科技携带 “无感知AI数字课堂”解决方案,亮相第22届广东教育装备展
  • 哈希算法:原理、应用、安全演进与推荐
  • 计算机网络学习20250527
  • 科技趋势分析系统(BBC)技术全解
  • 【数据结构】树形结构--二叉树
  • 【数据结构】 时间复杂度
  • 安卓学习笔记-声明式UI
  • 如何通过ETL对WebService进行调用
  • 《算法和数据结构》算法篇
  • 数据结构-散列表查找(哈希表)
  • qt之开发大恒usb3.0相机二
  • (1)课堂 1--5,这五节主要讲解 mysql 的概念,定义,下载安装与卸载
  • div或button一些好看实用的 CSS 样式示例
  • xcode手动安装iOS Simulator Runtime
  • 深入理解设计模式之状态模式
  • Keepalived 配置 VIP 的核心步骤
  • Qwen3与DeepSeek R1的性能对比
  • 为什么单张表索引数量建议控制在 6 个以内
  • PHP生成pdf方法
  • VR 赋能病毒分离鉴定:开启微观探索新视界
  • 基于cornerstone3D的dicom影像浏览器 第二十四章 显示方位、坐标系、vr轮廓线
  • Spark实时流数据处理实例(SparkStreaming通话记录消息处理)
  • FortiAI继续扩展Security Fabric 平台,打造智能化威胁防御体系