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