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() method:
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)
            return;
So if ignite configuration contains memory configuration - it will be 
allocated. Why its not good:
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
(v6.4.14#64029)

Reply via email to