2014-10-04 286 views
0

Neo4j服務器最初消耗的RAM非常少,但是在處理了一些請求之後。服務器消耗的RAM增加。即使沒有查詢被處理,它仍然使用RAM。在重新啓動服務器時,所消耗的RAM再次減少。Neo4j-Server清除RAM中的緩存

這表明neo4j服務器正在RAM中保留一些數據,即使請求已被處理,數據仍然保留在RAM中。無論如何要清除內存中的數據以避免服務器崩潰?

回答

1

您是否有服務器崩潰?

保存在ram中的數據是保存「熱」數據集的第二級(節點和關係)緩存。

看到這部影片了詳細的解釋:http://watch.neo4j.org/video/46049647

可以清除通過JMX端點高速緩存,您可以通過jconsole

+0

是的,服務器崩潰了一次,從那以後一直在發生。當我運行'jconsole'時,沒有任何反應,就像系統在運行命令時掛起一樣。 PS:我從jdk安裝路徑運行了'jconsole'。 – 2014-10-06 01:40:38

+0

嗨@邁克爾!你能幫我解決這個問題..謝謝 – 2014-10-12 14:22:48

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的版本是超過220

((GraphDatabaseAPI)DB).getDependencyResolver()resolveDependency(緩存。 class).clear();