Last_gc duration . collections . total . reclaimed . leaving – How to solve related issues

Last_gc duration . collections . total . reclaimed . leaving – How to solve related issues

Opster Team

Feb-20, Version: 1.7-8.0

 

Before you begin reading this guide, we recommend you run Elasticsearch Error Check-Up which can resolve issues that cause many errors.

This guide will help you check for common problems that cause the log ” Last_gc duration . collections . total . reclaimed . leaving ” to appear. It’s important to understand the issues related to the log, so to get started, read the general overview on common issues and tips related to the Elasticsearch concepts: monitor.

Advanced users might want to skip right to the common problems section in each concept or try running the Check-Up which analyses ES to pinpoint the cause of many errors and provides suitable actionable recommendations how to resolve them (free tool that requires no installation).

Log Context

Log “[last_gc][{}][{}][{}] duration [{}]; collections [{}]; total [{}]/[{}]; reclaimed [{}]; leaving [{}][{}]/[{}]” classname is JvmMonitorService.java
We extracted the following from Elasticsearch source code for those seeking an in-depth context :

                     // Ignore any duration > 1hr; getLastGcInfo occasionally returns total crap
                    if (lastGc.duration().hoursFrac() > 1) {
                        continue;
                    }
                    if (lastGc.duration().millis() > gcThreshold.warnThreshold) {
                        logger.warn("[last_gc][{}][{}][{}] duration [{}]; collections [{}]; total [{}]/[{}]; reclaimed [{}]; leaving [{}][{}]/[{}]";
                                gc.name(); seq; gc.getCollectionCount(); lastGc.duration(); collections; TimeValue.timeValueMillis(collectionTime); gc.collectionTime(); lastGc.reclaimed(); lastGc.afterUsed(); lastGc.max());
                    } else if (lastGc.duration().millis() > gcThreshold.infoThreshold) {
                        logger.info("[last_gc][{}][{}][{}] duration [{}]; collections [{}]; total [{}]/[{}]; reclaimed [{}]; leaving [{}]/[{}]";
                                gc.name(); seq; gc.getCollectionCount(); lastGc.duration(); collections; TimeValue.timeValueMillis(collectionTime); gc.collectionTime(); lastGc.reclaimed(); lastGc.afterUsed(); lastGc.max());
                    } else if (lastGc.duration().millis() > gcThreshold.debugThreshold && logger.isDebugEnabled()) {




 

Run the Check-Up to get customized recommendations like this:

checklist Run Check-Up
error

Heavy merges detected in specific nodes

error-img

Description

A large number of small shards can slow down searches and cause cluster instability. Some indices have shards that are too small…

error-img

Recommendations Based on your specific ES deployment you should…

Based on your specific ES deployment you should…

1

X-PUT curl -H [a customized code snippet to resolve the issue]

 

 

 

Optimize Elasticsearch Performance

Run The Tool