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 > >
