As Humphrey notes, you would not expect the memory to decrease. Memory gets
*reused* but not *released* back to the OS.

Here's a description of the difference between used and committed:
https://www.baeldung.com/java-heap-used-committed-max

Ultimately, you've configured Ignite to use up to a certain amount of
memory, and that's exactly what it's doing. Given the information you've
shared, your heap usage looks pretty healthy.


On Wed, 18 Feb 2026 at 15:30, Charlin S <[email protected]> wrote:

> Hi All,
> Thanks for your reply. The committed memory in my scenario increases from
> 1GB to 12GB but does not decrease.
>
> I have restarted grid 5 days ago and Java heap usage trends are :-
> [15:20:55,784] Heap [used=7659MB, free=51.57%, comm=12192MB]
> [15:19:55,776] Heap [used=5763MB, free=63.56%, comm=12192MB]
> [15:18:55,768] Heap [used=10505MB, free=33.58%, comm=12192MB]
> [15:17:55,762] Heap [used=4761MB, free=69.89%, comm=12192MB]
>
> Thanks & Regards,
> Charlin
>
>
> On Tue, 17 Feb 2026 at 14:33, Stephen Darlington <[email protected]>
> wrote:
>
>> True, but that's the case with pretty much all software.
>>
>> On Sat, 14 Feb 2026 at 20:28, Humphrey <[email protected]> wrote:
>>
>>> Ignite also doesn’t release the off heap memory it allocated.
>>>
>>> On 12 Feb 2026, at 12:52, Stephen Darlington <[email protected]>
>>> wrote:
>>>
>>> 
>>> We should probably improve the documentation around this issue, as it's
>>> a common misunderstanding.
>>>
>>> Simplifying slightly, Ignite has two kinds of memory: on-heap and
>>> off-heap. The memory you configured in XML is the off-heap memory. That's
>>> where Ignite stores your data. There's also the Java heap, which you can
>>> think of as its working set. I don't know the default in your environment.
>>>
>>> You need to add the types together (and then add a bit) to find Ignite's
>>> total memory footprint.
>>>
>>> See here for how to configure the heap memory:
>>> https://ignite.apache.org/docs/ignite2/latest/perf-and-troubleshooting/memory-tuning
>>>
>>> On Thu, 12 Feb 2026 at 10:27, Charlin S <[email protected]> wrote:
>>>
>>>> Hi All,
>>>>
>>>> I've encountered an issue where memory usage is spiking on the Ignite
>>>> server, and the memory is not being released back to the OS. I am hosting
>>>> three grids on this server: two use replication cache mode with no expiry
>>>> policy, and the third uses partition cache mode with an expiry policy.
>>>>
>>>> This issue first appeared with Amazon Linux 2023.9.20251027 and
>>>> `openjdk version "1.8.0_402-402"`. We subsequently upgraded to Java 17,
>>>> focusing on the primary JVM options designed to encourage the release of
>>>> unused heap memory to the operating system. We start Ignite using
>>>> `ignite.sh config/grid1.xml`.
>>>> Please suggest ways to finetune the configuration for better memory
>>>> management.
>>>>
>>>> The current upgraded version details are:
>>>>
>>>> ```
>>>> openjdk version "17.0.17" 2025-10-21 LTS
>>>> OpenJDK Runtime Environment Microsoft-12574440 (build 17.0.17+10-LTS)
>>>> OpenJDK 64-Bit Server VM Microsoft-12574440 (build 17.0.17+10-LTS,
>>>> mixed mode, sharing)
>>>>
>>>>
>>>> ```
>>>>
>>>> Observations:
>>>>
>>>> * One Ignite grid (partition mode, 2-cluster) uses 19GB of memory, but
>>>> its data region is only 18GB.
>>>> * Another grid (replication mode, 2-cluster) uses 21GB of memory, but
>>>> its data region is only 10GB.
>>>>
>>>>
>>>>
>>>> bean xml file
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <beans xmlns="http://www.springframework.org/schema/beans";
>>>>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>>>        xmlns:util="http://www.springframework.org/schema/util";
>>>>        xsi:schemaLocation="http://www.springframework.org/schema/beans
>>>>
>>>> http://www.springframework.org/schema/beans/spring-beans.xsd
>>>>                            http://www.springframework.org/schema/util
>>>>
>>>> http://www.springframework.org/schema/util/spring-util.xsd";>
>>>>   <bean class="org.apache.ignite.configuration.IgniteConfiguration">
>>>>     <property name="clientMode" value="false"/>
>>>>     <property name="clientFailureDetectionTimeout" value="120000"/>
>>>>     <property name="igniteInstanceName" value="Productiongrid"/>
>>>>     <property name="longQueryWarningTimeout" value="4000"/>
>>>>     <property name="failureDetectionTimeout" value="120000"/>
>>>>     <property name="segmentationPolicy" value="RESTART_JVM"/>
>>>>     <property name="segmentCheckFrequency" value="20000"/>
>>>>     <property name="segmentationResolveAttempts" value="10"/>
>>>>     <property name="discoverySpi">
>>>>       <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
>>>>         <property name="localPort" value="55500"/>
>>>>         <property name="ipFinder">
>>>>           <bean
>>>> class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
>>>>             <property name="addresses">
>>>>               <list>
>>>>                         <value>IP:55500</value>
>>>>                         <value>IP:55500</value>
>>>>               </list>
>>>>             </property>
>>>>           </bean>
>>>>         </property>
>>>>       </bean>
>>>>     </property>
>>>>         <property name="dataStorageConfiguration">
>>>>             <bean
>>>> class="org.apache.ignite.configuration.DataStorageConfiguration">
>>>>                 <property name="defaultDataRegionConfiguration">
>>>>                     <bean
>>>> class="org.apache.ignite.configuration.DataRegionConfiguration">
>>>>                         <property name="name"
>>>> value="Dynamic_Data_Region"/>
>>>>                         <property name="initialSize" value="#{1L * 1024
>>>> * 1024 * 1024}"/>
>>>>                         <property name="maxSize" value="#{18L * 1024 *
>>>> 1024 * 1024}"/>
>>>>                         <property name="pageEvictionMode"
>>>> value="RANDOM_2_LRU"/>
>>>>                         <property name="evictionThreshold" value="0.7"/>
>>>>                         <property name="emptyPagesPoolSize"
>>>> value="65536"/>
>>>>                     </bean>
>>>>                 </property>
>>>>             </bean>
>>>>         </property>
>>>>         <property name="communicationSpi">
>>>>         <bean
>>>> class="org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi">
>>>>             <property name="sharedMemoryPort" value="-1"/>
>>>>             <property name="localPort" value="55605"/>
>>>>         </bean>
>>>>     </property>
>>>>   </bean>
>>>> </beans>
>>>>
>>>> Thanks & Regards,
>>>> Charlin
>>>>
>>>>

Reply via email to