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