﻿---
title: Heap size above recommended max
description: Describes what AutoOps detects and surfaces with the Heap size above recommended max insight: The JVM heap on a node is configured at or above the compressed ordinary object pointers (COOPs) threshold (about 26 to 30 GB on most systems).
url: https://docs-v3-preview.elastic.dev/elastic/autoops-insights/tree/main/elasticsearch/heap_size_above_recommended_max
products:
  - Elastic Cloud Enterprise
  - Elastic Cloud on Kubernetes
  - Elasticsearch
applies_to:
  - Elastic Cloud on Kubernetes: Generally available
  - Elastic Cloud Enterprise: Generally available
  - Self-managed Elastic deployments: Generally available
---

# Heap size above recommended max
The JVM heap on a node is configured at or above the compressed ordinary object pointers (COOPs) threshold (about 26 to 30 GB on most systems). Above that range, COOPs might be turned off and heap efficiency drops, which hurts node performance.
<note>
  For a complete list of insights, refer to [AutoOps insights](https://docs-v3-preview.elastic.dev/elastic/autoops-insights/tree/main/elasticsearch).
</note>


## Insight details


| Field     | Value                          |
|-----------|--------------------------------|
| Component | Elasticsearch                  |
| Severity  | Medium                         |
| Scope     | Node                           |
| Domains   | performance, memory, stability |


## Example: What you might see in AutoOps

The following is an example of what you might see when this insight is triggered. Real insights use live data and links from your deployment or cluster.

### Configured heap exceeds the recommended maximum on instance-00001


#### What was detected

Node es-data-01 has heap size configured to 30.

#### Recommendations

<note>
  AutoOps shows different recommendations depending on how their conditions match your deployment or cluster.
</note>

<dropdown title="Tune JVM heap below the COOPs limit">
  **Condition**: Always shown for this insight.Configured heap on instance-00001 is at or above the compressed ordinary object pointers (COOPs) threshold. Lower `-Xmx` to the sweet spot below that limit for your hardware (typically under 26–30.5 GB) so COOPs stay enabled and this insight clears. Use the action below after each change, and stop when `using_compressed_ordinary_object_pointers` is `true`.For es-data-01 nodes, also stay within about 60% of available RAM, capped at the COOPs limit.
  ```json
  ```

  <note>
    Requires the `manage cluster` privilege. Requires Elasticsearch 8.0.0 or later. This action is read-only.
  </note>
</dropdown>


#### Background and impact

JVM heap size is set with environment variables or `jvm.options`. On data nodes, heap is typically at most about half of available RAM so the operating system and file-system cache still have room.
Past a system-dependent limit around 26 to 30 GB, the JVM might stop using compressed ordinary object pointers. Pointers grow and heap efficiency drops, so larger heaps past that threshold often perform worse rather than better. Scaling with more nodes is usually more effective than pushing a single heap past the compression threshold.

## Guide

[High JVM memory pressure](https://docs-v3-preview.elastic.dev/elastic/docs-content/tree/main/troubleshoot/elasticsearch/high-jvm-memory-pressure)