Java heap is used for operational needs to store temporary objects generated by both Ignite and your application in runtime.

8GB off-heap is a maximum size. Ignite doesn’t allocate the whole region entirely and rather allocates it by chunks whenever more space is needed.

Once this ticket is solved it will be not that cumbersome to decipher Ignite’s memory usage:


On Dec 11, 2017, at 4:34 AM, Naveen <naveen.bandaru@gmail.com> wrote:


Am using 2.3

Formed a cluster with 3 nodes
I have loaded 2 caches,named - Customer and Account with 10 millions rows.

One of the node logs, I could see the  below lines

Metrics for local node (to disable set 'metricsLogFrequency' to 0)
   ^-- Node [id=fc27563d, name=IgnitePOC, uptime=04:09:02.270]
   ^-- H/N/C [hosts=4, nodes=5, CPUs=28]
   ^-- CPU [cur=9.63%, avg=6.59%, GC=0.1%]
   ^-- PageMemory [pages=2043040]
   ^-- Heap [used=655MB, free=35.88%, comm=1023MB]
   ^-- Non heap [used=64MB, free=95.73%, comm=68MB]
   ^-- Public thread pool [active=0, idle=0, qSize=0]
   ^-- System thread pool [active=0, idle=6, qSize=0]
   ^-- Outbound messages queue [size=0]

Which means, node is using 655MB heap and 64MB off-heap, however I have
specified the below entry for data storage, instructing node to use 8 GB
off-heap only.

 <property name="dataStorageConfiguration">
   <bean class="org.apache.ignite.configuration.DataStorageConfiguration">
     <property name="defaultDataRegionConfiguration">
         <property name="persistenceEnabled" value="true"/>
         <property name="maxSize" value="#{8L * 1024 * 1024 * 1024}"/>

Why is it still using heap and not using off-heap.

Top output shows, ignite node is using 9.3 GB, does it means it storing
complete data in heap ?

12762 tibusr    20   0 16.643g *9.309g*  11216 S  86.7 30.4 134:43.12 java


Sent from: http://apache-ignite-users.70518.x6.nabble.com/