网站友好度,个人博客网站如何做SEO,一流的企业网站建设,关键词分类工具文章目录es性能调优启用g1垃圾回收器es性能调优
成都的es集群经常出现告警#xff0c;查看日志发现
[gc][11534155] overhead, spent [38.3s] collecting in the last [38.6s]这是 JVM 垃圾回收过程中的一条日志#xff0c;表示在最近 38.6 秒内#xff0c;JVM 进行了一次…
文章目录es性能调优启用g1垃圾回收器es性能调优
成都的es集群经常出现告警查看日志发现
[gc][11534155] overhead, spent [38.3s] collecting in the last [38.6s]这是 JVM 垃圾回收过程中的一条日志表示在最近 38.6 秒内JVM 进行了一次 GC (Garbage Collection) 的操作回收垃圾所占用的内存。这条日志的含义是在这次 GC 中有很大一部分时间38.3 秒是用于处理 GC 相关的开销例如标记垃圾、整理内存等而不是实际回收垃圾。
这可能是因为堆内存中的对象数量太多导致 GC 操作变得缓慢。可以尝试通过调整 JVM 的垃圾回收策略、调整堆内存大小等方式来优化性能。
这里谈谈jvm的垃圾回收策略
-XX:UseSerialGC使用串行垃圾回收器-XX:UseParallelGC使用并行垃圾回收器-XX:UseParallelOldGC使用并行老年代垃圾回收器-XX:UseConcMarkSweepGC使用CMS垃圾回收器-XX:UseG1GC使用G1垃圾回收器-XX:NewRatio新生代和老年代的比例-XX:SurvivorRatioEden区域和Survivor区域的比例-XX:MaxHeapSizeJVM最大堆内存大小。
一般来说使用 G1 垃圾收集器可能比较适合 Elasticsearch。G1 是一种面向服务端应用的低延迟、高吞吐量垃圾回收器可以根据内存使用情况动态地调整堆内存的分配比例并且不会出现长时间的停顿。
下面是g1垃圾回收器的常用参数
-XX:UseG1GC启用G1垃圾回收器。-XX:G1HeapRegionSizen指定每个Heap区域的大小可以控制最小的内存分配单元。-XX:MaxGCPauseMillisn指定期望的最大GC停顿时间毫秒。-XX:G1NewSizePercentn指定新生代大小相对于堆大小的百分比。-XX:G1MaxNewSizePercentn指定新生代最大大小相对于堆大小的百分比。-XX:G1ReservePercentn指定保留的空间百分比以便在需要时可以快速分配内存。-XX:InitiatingHeapOccupancyPercentn指定当堆被占用的比例达到指定阈值时启动并发标记周期。--XX:G1HeapWastePercentn指定堆中允许浪费的最大空间百分比。
除了垃圾回收器的选择之外还可以调整 Elasticsearch 的垃圾回收策略参数。例如可以调整堆内存的大小、垃圾回收的线程数、垃圾回收的阈值等参数以达到更好的垃圾回收效果。具体的调整方法可以参考 Elasticsearch 的官方文档以及相关的调优指南。
启用g1垃圾回收器
要在 Elasticsearch 6.3.2 中启用 G1 垃圾回收器需要进行以下步骤(将其他垃圾回收器关掉)
编辑 Elasticsearch 的 JVM 配置文件 config/jvm.options加入以下参数
-XX:UseG1GC
-XX:G1ReservePercent25
-XX:InitiatingHeapOccupancyPercent30
-XX:MaxGCPauseMillis200
-XX:ParallelRefProcEnabled
-XX:-OmitStackTraceInFastThrow其中-XX:UseG1GC 启用 G1 垃圾回收器其余参数用于优化 G1 的性能和行为。
确认 Elasticsearch 进程的运行用户并给予该用户对 Elasticsearch 安装目录及其子目录的读写权限。