Jvm java.lang.OutOfMemoryError:直接缓冲区内存Apache Ignite

Jvm java.lang.OutOfMemoryError:直接缓冲区内存Apache Ignite,jvm,ignite,Jvm,Ignite,最近,我们使用ignite 2.10.0迁移到64位JVM,我们的缓存配置如下所示(在2.9.0中工作正常) 你能帮忙吗 ***********更新****************************** 在服务器上重新安装JDK后进行更新。连续运行60分钟后未发生碰撞。然而,仍然好奇的是,Ignite 2.9需要3.X GB的总ram,但Ignite 2.10需要32.X GB的总ram,并且具有相同的缓存配置(相同的C#二进制文件集,除了Ignite 32.X GB内存为2.10,3.X

最近,我们使用ignite 2.10.0迁移到64位JVM,我们的缓存配置如下所示(在2.9.0中工作正常)

你能帮忙吗

***********更新******************************

在服务器上重新安装JDK后进行更新。连续运行60分钟后未发生碰撞。然而,仍然好奇的是,Ignite 2.9需要3.X GB的总ram,但Ignite 2.10需要32.X GB的总ram,并且具有相同的缓存配置(相同的C#二进制文件集,除了Ignite 32.X GB内存为2.10,3.X GB内存为2.9)。快照附在下面

以2.9,

尝试删除
-XX:+DisableExplicitGC
开关,已知该开关会干扰直接缓冲区内存分配,因此不再推荐使用


不确定为什么需要比以前更多的RAM,需要更多详细信息。

您可以使用:use:-XX:-HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=。。确定内存的使用位置。当然,我已经将这些设置添加到我的JVM选项中:JVM选项=新系统.集合.泛型.列表(){“-Xms1G”,“-Xmx10G”,“-XX:+AlwaysPreTouch”,“-XX:+UseG1GC”,“-XX:+CleaneBeForoullgc”,“-XX:+DisableExplicitGC”,“-Djava.net.preferIPv4Stack=true”“-XX:-HeapDumpOnOutOfMemoryError”、“-XX:MaxDirectMemorySize=30G”、“-XX:HeapDumpPath=C\\Logs”}将在此处发布我的发现。重新安装JDK后,不会再出现崩溃,但如果您注意到(ignite 2.10上的内存超过30 gb,具有相同的数据源和缓存代码)。如果有任何其他日志我可以发送过来,请让我知道。或者如果Ignite 2.10.0x有任何配置更改?当然,我会立即检查。您需要什么详细信息?好的是,它不再崩溃。DisableExplicitGC没有更改,2.10仍然使用30GB ram。您可以共享一个复制器项目吗哪一个在2.9上使用3G,而在2.10上使用30G?我会检查它并提交一张票证,或者提供反馈。为了让您获得一个工作模块,需要高速交换馈送,技术上不太可行,但是,我可以生成并提供您可能需要的任何详细日志。我想再次强调一个事实,我们的C#二进制文件对这两个都是相同的版本。如果您有“本地节点度量”消息,请共享该消息。您可以将其放入问题中。
_cfg = new IgniteConfiguration()
{                           
    IgniteInstanceName = MKT_TICK_DATA_CACHE,                               
    DiscoverySpi = new TcpDiscoverySpi
    {
        LocalPort = 48500,
        LocalPortRange = 60,
        IpFinder = new TcpDiscoveryStaticIpFinder
        {
            Endpoints = new[] { "127.0.0.1:48500..48560" }
        }
    },
    CommunicationSpi = new TcpCommunicationSpi
    {
        LocalPort = 48100
    },
    DataStorageConfiguration = new DataStorageConfiguration
    {
        DefaultDataRegionConfiguration = new DataRegionConfiguration
        {
            Name = MKT_TICK_DATA_CACHE,
            InitialSize = 500L * 1024 * 1024,
            MaxSize =     4L * 1024 * 1024 * 1024,
            PersistenceEnabled = false,
            PageEvictionMode = Apache.Ignite.Core.Configuration.DataPageEvictionMode.Random2Lru
        },
        SystemRegionInitialSize = 100 * 1024 * 1024
    },
    ClientConnectorConfiguration = new ClientConnectorConfiguration
    {
        // Set a port range from 10000 to 10005
        Port = 10800,
        PortRange = 60,
        HandshakeTimeout = TimeSpan.FromSeconds(30),
        IdleTimeout = Timeout.InfiniteTimeSpan,
        MaxOpenCursorsPerConnection = 10000,
        SocketReceiveBufferSize = 100 * 1024 * 1024,
        SocketSendBufferSize = 100 * 1024 * 1024,
        TcpNoDelay = true,
        ThinClientEnabled = true,
        ThreadPoolSize = 256
    },
    JvmOptions = new System.Collections.Generic.List<String>() { "-Xms1g", "-Xmx20g", "-XX:+AlwaysPreTouch", "-XX:+UseG1GC", "-XX:+ScavengeBeforeFullGC", "-XX:+DisableExplicitGC", "-Djava.net.preferIPv4Stack=true", "-XX:MaxDirectMemorySize=30G" }
    //JvmOptions = new System.Collections.Generic.List<String>() { "-XX:+AlwaysPreTouch", "-XX:+UseG1GC", "-XX:+ScavengeBeforeFullGC", "-XX:+DisableExplicitGC", "-Djava.net.preferIPv4Stack=true" }
    //JvmOptions = new[] { "-Xmx10g" },//, "-XX:+AlwaysPreTouch", "-XX:+UseG1GC", "-XX:+ScavengeBeforeFullGC", "-XX:+DisableExplicitGC" }
};

_cfg.ServiceThreadPoolSize = 256;
_cfg.SystemThreadPoolSize = 128;
_cfg.StripedThreadPoolSize = 128;
_cfg.WorkDirectory = _dir;
var cacheConfig = new CacheConfiguration
{
    Name = MKT_TICK_DATA_CACHE,
    CacheMode = CacheMode.Partitioned,
    Backups = 0,                            
    AtomicityMode = CacheAtomicityMode.Atomic,
    LoadPreviousValue = false,
    OnheapCacheEnabled = true,
    WriteBehindEnabled = false,
    WriteSynchronizationMode = CacheWriteSynchronizationMode.FullAsync,
    MaxConcurrentAsyncOperations = 300000
};
_cfg.CacheConfiguration = new CacheConfiguration[] { cacheConfig };
Ignition.ClientMode = false;
var ignite = Ignition.Start(_cfg);
_cache = ignite.GetOrCreateCache<Int32, MarketTickS>(MKT_TICK_DATA_CACHE);
_oCache = ignite.GetOrCreateCache<Int64, byte[]>(ORION_L_CACHE);
_oSecCache = ignite.GetOrCreateCache<Int64, CacheSecurity>(ORION_SEC_CACHE);
[14:03:01,528][SEVERE][grid-nio-worker-client-listener-13-#197%QTICKDATA%][] JVM will be halted immediately due to the failure: [failureCtx=FailureContext [type=CRITICAL_ERROR, err=java.lang.OutOfMemoryError: Direct buffer memory]]