Кэш Apache Ignite зависает через некоторое время

У меня есть кластер из 6 серверных и 1 клиентских узлов. Мой клиентский узел выполняет много обновлений и создает задания, а также существует политика истечения срока действия, чтобы перехватывать элементы с истекшим сроком действия.

Но каждый день кластер зависает как минимум один раз. Даже команда кэша ignitevisor зависает во время вызова.

Итак, я просмотрел дамп потока и увидел странную вещь: там много одинаковых утверждений, подобных этому:

"pub-#39%null%" #51 prio=5 os_prio=0 tid=0x00007f9788623800 nid=0x1d02 waiting on condition [0x00007f9769ddc000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000006c004aaa8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)

Таким образом, существует множество потоков, ожидающих условия, но почему-то этого никогда не происходит.

Моя конфигурация кеша выглядит так:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--
        Alter configuration below as needed.
    -->
    <bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">

        <!-- Configure internal thread pool. -->
            <property name="publicThreadPoolSize" value="64"/>

        <!-- Configure system thread pool. -->
            <property name="systemThreadPoolSize" value="32"/>

                <property name="discoverySpi">
                        <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                                <property name="ipFinder">
                                        <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                                                <property name="addresses">
                                                        <list>
                                                                ...
                                                        </list>
                                                </property>
                                        </bean>
                                </property>
                        </bean>
                </property>
        <property name="cacheConfiguration">
            <list>
                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="name" value="asd1"/>
                    <property name="eagerTtl" value="true"/>
                    <property name="expiryPolicyFactory">
                        <bean class="javax.cache.configuration.FactoryBuilder.SingletonFactory">
                            <constructor-arg name="instance">
                                <bean class="javax.cache.expiry.TouchedExpiryPolicy">
                                    <constructor-arg name="expiryDuration">
                                        <bean class="javax.cache.expiry.Duration">
                                            <constructor-arg name="timeUnit">
                                                <value type="java.util.concurrent.TimeUnit">MILLISECONDS</value>
                                            </constructor-arg>
                                            <constructor-arg name="durationAmount" value="10800000"/>
                                        </bean>
                                    </constructor-arg>
                                </bean>
                            </constructor-arg>
                        </bean>
                    </property>
                </bean>
                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="name" value="asd2"/>
                    <property name="eagerTtl" value="true"/>
                    <property name="expiryPolicyFactory">
                        <bean class="javax.cache.configuration.FactoryBuilder.SingletonFactory">
                            <constructor-arg name="instance">
                                <bean class="javax.cache.expiry.TouchedExpiryPolicy">
                                    <constructor-arg name="expiryDuration">
                                        <bean class="javax.cache.expiry.Duration">
                                            <constructor-arg name="timeUnit">
                                                <value type="java.util.concurrent.TimeUnit">MILLISECONDS</value>
                                            </constructor-arg>
                                            <constructor-arg name="durationAmount" value="86400000"/>
                                        </bean>
                                    </constructor-arg>
                                </bean>
                            </constructor-arg>
                        </bean>
                    </property>
                </bean>
            </list>
        </property>
        <property name="includeEventTypes" value="70"/>

    </bean>

</beans>

Мне действительно нужна помощь здесь. Спасибо


person Neron    schedule 14.09.2016    source источник


Ответы (1)