ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexander Belyak (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-6866) Allocate offheap on client
Date Fri, 10 Nov 2017 14:01:00 GMT
Alexander Belyak created IGNITE-6866:

             Summary: Allocate offheap on client
                 Key: IGNITE-6866
                 URL: https://issues.apache.org/jira/browse/IGNITE-6866
             Project: Ignite
          Issue Type: Bug
      Security Level: Public (Viewable by anyone)
          Components: general
    Affects Versions: 2.1
            Reporter: Alexander Belyak

Often client use the same config file as a server and ignite start offheap memory for client
too... but never use it. How it happens:
1) Default memory configuration for server is creating in IgnitionEx.initializeConfiguration()
if (!myCfg.isClientMode() && myCfg.getMemoryConfiguration() == null) 
so if ignite configuration already contains memoryConfiguration - it stay there
2) In IgniteCacheDatabaseSharedManager.anActivate method do nothing only:
if (cctx.kernalContext().clientNode() && cctx.kernalContext().config().getMemoryConfiguration()
== null)
So if ignite configuration contains memory configuration - it will be allocated. Why its not
1) Memory allocation spend virtual memory (OS didn't really allocate memory before first access
to it) and if overcommit_memory strategy is set to OVERCOMMIT_NEVER - it can block start client
node (maybe first or second one) in same host (see: /proc/sys/vm/overcommit_memory and /proc/sys/vm/overcommit_ratio)
2) In IgniteKernal.checkPhysicalRam() we use maxSize of offheap memory and log warning about
memory overusage
Good news only one - often in memory configuration really big only maxSize, but initialSize
is just about 256Mb so each client really allocate not so many RAM.

This message was sent by Atlassian JIRA

View raw message