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
