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<String, byte[]> 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.0000078 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) 

===============

Reply via email to