Briefly, this error occurs when Elasticsearch’s JVM memory usage is incorrectly calculated, resulting in a negative value for the total deserialized memory. This could be due to a bug in the JVM or Elasticsearch itself. To resolve this issue, you can try upgrading your Elasticsearch and JVM to the latest version. If the problem persists, consider adjusting the JVM heap size or the circuit breaker settings in Elasticsearch. Also, monitor your cluster’s memory usage to ensure it’s not consistently high, which could lead to such errors.
This guide will help you check for common problems that cause the log ” negative adjusted total memory [{}] deserialized in memory stats ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: monitor, memory.
Log Context
Log “negative adjusted total memory [{}] deserialized in memory stats” classname is OsStats.java.
We extracted the following from Elasticsearch source code for those seeking an in-depth context :
this.total = total; if (in.getTransportVersion().onOrAfter(TransportVersion.V_8_0_0)) { long adjustedTotal = in.readLong(); assert adjustedTotal >= 0 : "expected adjusted total memory to be positive; got: " + adjustedTotal; if (adjustedTotal