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