2014-10-04 3 views
0

Сервер Neo4j изначально потребляет очень мало ОЗУ, но после обработки некоторых запросов. ОЗУ, потребляемая сервером, увеличивается. Несмотря на то, что запрос не обрабатывается, он продолжает использовать ОЗУ. При перезапуске сервера потребляемая RAM меньше.Neo4j-Server очищает кеш в оперативной памяти

Это означает, что сервер neo4j хранит некоторые данные в ОЗУ, и хотя запрос обрабатывается, данные все еще остаются в ОЗУ. Есть ли способ очистить эти данные в ОЗУ на некотором пороге, чтобы избежать сбоя сервера?

ответ

1

У вас случился сбой сервера?

Данные, хранящиеся в плунжере, являются кэшами второго уровня (узел и связь), которые содержат ваш «горячий» набор данных.

Смотреть это видео для подробного объяснения: http://watch.neo4j.org/video/46049647

Вы можете очистить кэши через конечную точку JMX, что вы можете получить доступ через jconsole

+0

Да, сервер разбился один раз, и это происходит с тех пор. Ничего не происходит, когда я запускаю 'jconsole', это похоже на зависание системы, когда я запускаю команду. PS: Я запускал 'jconsole' из установленного пути jdk. –

+0

Привет @Michael !! вы можете помочь мне с этим ... Спасибо –

1

Я думаю, у меня такая же проблема. Таким образом, я создал одну конечную точку для очистки кеша (Neo4j версия 1.9.9):

Collection<Cache> caches = ((GraphDatabaseAPI) neo4jTemplate.getGraphDatabaseService()). 

    getDependencyResolver(). 

    resolveDependency(JmxKernelExtension.class). 

    getManagementBeans(Cache.class); 

    for (Cache cache : caches) { 

     cache.clear(); 

    } 

Если Neo4j версия более 2,2

((GraphDatabaseAPI) дБ) .getDependencyResolver() resolveDependency (кэшей.. class) .clear();