Re: When using CacheMode.LOCAL, OOM

2018-08-13 Thread dkarachentsev
Hi, 

I've opened a ticket for this [1]. It seems LOCAL cache keeps all entries
on-heap. If you use only one node - switch to PARTITIONED, if more than one
- PARTITIONED + node filter [2]

[1] https://issues.apache.org/jira/browse/IGNITE-9257
[2]
https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/configuration/CacheConfiguration.html#setNodeFilter-org.apache.ignite.lang.IgnitePredicate-

Thanks!
-Dmitry



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


When using CacheMode.LOCAL, OOM

2018-08-09 Thread NO
Hi,
I'm going to use Ignite instead of guava. During testing, I find that 
CacheMode.LOCAL is often OOM. Please help me check what's wrong with it. Thank 
you very much.



Ignite version : 2.6.0


jdk 1.8.0_151-b12


Test Code :
==
public class LocalCacheDemo {
public static void main(String[] args) throws InterruptedException {

String cacheName = "localCache";
String regionName = "localRegin";

DataStorageConfiguration dataStorageConfiguration = new 
DataStorageConfiguration();

DataRegionConfiguration localReginConf = new DataRegionConfiguration();
localReginConf.setName(regionName);
localReginConf.setMetricsEnabled(true);
localReginConf.setPersistenceEnabled(false);
localReginConf.setInitialSize(256 * 1024 * 1024);
long max = 2L * 1024L * 1024L * 1024L;
localReginConf.setMaxSize(max);
localReginConf.setPageEvictionMode(DataPageEvictionMode.RANDOM_2_LRU);
dataStorageConfiguration.setDataRegionConfigurations(localReginConf);
dataStorageConfiguration.setPageSize(1024 * 8);

CacheConfiguration cacheCfg = new CacheConfiguration(cacheName);
cacheCfg.setCacheMode(CacheMode.LOCAL);
cacheCfg.setDataRegionName(regionName);
cacheCfg.setBackups(0);
cacheCfg.setStatisticsEnabled(true);
cacheCfg.setAtomicityMode(CacheAtomicityMode.ATOMIC);
cacheCfg.setOnheapCacheEnabled(false);

IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setCacheConfiguration(cacheCfg);
cfg.setDataStorageConfiguration(dataStorageConfiguration);

Ignite ignite = Ignition.start(cfg);

final ClusterGroup clusterGroup = ignite.cluster().forLocal();

final IgniteCache cache = 
ignite.getOrCreateCache(cacheName);

final ExecutorService pool = Executors.newFixedThreadPool(8);

for (int i = 0; i < 8; i++) {
pool.submit(new Runnable() {
@Override
public void run() {
while (true) {
cache.put(UUID.randomUUID().toString(), 
UUID.randomUUID().toString().getBytes());
}
}
});
}
}
}

==
JVM param??


 -server -XX:+UseG1GC -XX:+AlwaysPreTouch -XX:+ScavengeBeforeFullGC -Xmx2g 
-Xms2g -XX:MaxMetaspaceSize=100m -XX:MaxGCPauseMillis=100 -XX:+PrintGCDetails 
-XX:+PrintTenuringDistribution -XX:+PrintGCDateStamps 
-XX:+PrintGCApplicationStoppedTime -XX:NumberOfGCLogFiles=1 
-XX:GCLogFileSize=256M -Xloggc:/home/qipu/production/localCache/gc.log 

===
===
GC log??


2018-08-09T16:36:59.630+0800: 750.387: Total time for which application threads 
were stopped: 0.0104034 seconds
2018-08-09T16:36:59.630+0800: 750.387: [GC pause (G1 Evacuation Pause) (young) 
(initial-mark)
Desired survivor size 6815744 bytes, new threshold 15 (max 15)
, 0.0041734 secs]
   [Parallel Time: 3.1 ms, GC Workers: 4]
  [GC Worker Start (ms): Min: 750387.6, Avg: 750387.7, Max: 750387.8, Diff: 
0.1]
  [Ext Root Scanning (ms): Min: 0.3, Avg: 0.5, Max: 0.9, Diff: 0.6, Sum: 
2.1]
  [Code Root Marking (ms): Min: 0.2, Avg: 0.6, Max: 1.5, Diff: 1.3, Sum: 
2.6]
  [Update RS (ms): Min: 0.6, Avg: 1.4, Max: 1.8, Diff: 1.2, Sum: 5.6]
 [Processed Buffers: Min: 2, Avg: 3.5, Max: 5, Diff: 3, Sum: 14]
  [Scan RS (ms): Min: 0.0, Avg: 0.0, Max: 0.0, Diff: 0.0, Sum: 0.0]
  [Code Root Scanning (ms): Min: 0.0, Avg: 0.0, Max: 0.0, Diff: 0.0, Sum: 
0.0]
  [Object Copy (ms): Min: 0.1, Avg: 0.3, Max: 0.4, Diff: 0.3, Sum: 1.3]
  [Termination (ms): Min: 0.0, Avg: 0.1, Max: 0.2, Diff: 0.2, Sum: 0.4]
  [GC Worker Other (ms): Min: 0.0, Avg: 0.0, Max: 0.0, Diff: 0.0, Sum: 0.0]
  [GC Worker Total (ms): Min: 2.9, Avg: 3.0, Max: 3.0, Diff: 0.1, Sum: 11.9]
  [GC Worker End (ms): Min: 750390.7, Avg: 750390.7, Max: 750390.7, Diff: 
0.0]
   [Code Root Fixup: 0.1 ms]
   [Code Root Migration: 0.0 ms]
   [Clear CT: 0.1 ms]
   [Other: 0.9 ms]
  [Choose CSet: 0.0 ms]
  [Ref Proc: 0.2 ms]
  [Ref Enq: 0.0 ms]
  [Free CSet: 0.0 ms]
   [Eden: 0.0B(102.0M)->0.0B(102.0M) Survivors: 0.0B->0.0B Heap: 
2046.5M(2048.0M)->2046.5M(2048.0M)]
 [Times: user=0.01 sys=0.00, real=0.00 secs] 
2018-08-09T16:36:59.635+0800: 750.392: Total time for which application threads 
were stopped: 0.0045325 seconds
2018-08-09T16:36:59.635+0800: 750.392: [GC concurrent-root-region-scan-start]
2018-08-09T16:36:59.635+0800: 750.392: [GC concurrent-root-region-scan-end, 
0.078 secs]
2018-08-09T16:36:59.635+0800: 750.392: [GC concurrent-mark-start]
2018-08-09T16:36:59.635+0800: 750.392: [Full GC (Allocation Failure) 

===