Neo4j-Server清除RAM中的缓存

时间:2014-10-04 03:34:28

标签: neo4j ram

Neo4j服务器最初消耗的内存非常少,但在处理了一些请求之后。服务器消耗的RAM增加。即使没有处理任何查询,它仍然使用RAM。在重新启动服务器时,消耗的RAM再次减少。

这说明neo4j服务器在RAM中保留了一些数据,即使处理了请求,数据仍然留在RAM中。反正有没有将RAM中的数据清除到某个阈值以避免服务器崩溃?

2 个答案:

答案 0 :(得分:1)

您的服务器崩溃了吗?

ram中保存的数据是保存“热”数据集的第二级(节点和关系)缓存。

有关详细说明,请参阅此视频:http://watch.neo4j.org/video/46049647

您可以通过可以通过jconsole

访问的JMX端点清除缓存

答案 1 :(得分: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)db).getDependencyResolver()。resolveDependency(Caches.class).clear();