Neo4j服务器最初消耗的内存非常少,但在处理了一些请求之后。服务器消耗的RAM增加。即使没有处理任何查询,它仍然使用RAM。在重新启动服务器时,消耗的RAM再次减少。
这说明neo4j服务器在RAM中保留了一些数据,即使处理了请求,数据仍然留在RAM中。反正有没有将RAM中的数据清除到某个阈值以避免服务器崩溃?
答案 0 :(得分:1)
您的服务器崩溃了吗?
ram中保存的数据是保存“热”数据集的第二级(节点和关系)缓存。
有关详细说明,请参阅此视频:http://watch.neo4j.org/video/46049647
您可以通过可以通过jconsole
答案 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();