Neo4j长时间运行后内存占用过高


系统:阿里云 Ubuntu 16.04.6 LTS

内核:Linux star 4.4.0-170-generic #199-Ubuntu SMP Thu Nov 14 01:45:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Neo4j版本:3.3.0


 

问题:Neo4j运行一段时间后内存占用过多,造成机器内存溢出

解决:

修改配置文件/etc/neo4j/neo4j.conf

修改配置项

1 dbms.memory.heap.initial_size=2048m
2 dbms.memory.heap.max_size=2048m 
3 dbms.memory.pagecache.size=3g

其中2048m代表2个G,3g代表3个G,具体设置多少根据自己的情况配置,其中的数值必须时整数,不能有小数点

配置说明

官方文档地址

 

解释:

Page cache

页面缓存用于缓存Neo4j的数据和索引,提升性能,减少硬盘读取 

dbms.memory.pagecache.size 用于设置页面缓存最大值

 

Heap size

堆空间用于查询的执行、事务状态、图形管理等。堆的大小取决于Neo4j的用法.例如,长时间运行的查询或非常复杂的查询比简单查询需要更大的堆空间。

一般情况下,为了提高性能,我们会配置足够大的堆空间来支持并发操作。

如果出现性能问题,我们可能要调整我们的查询语句并且监视它们的内存使用情况,从而决定是否需要增加堆空间。

堆内存大小由dbms.memory.heap.initial_sizedbms.memory.heap.max_size决定。建议将这两个参数设置为相同的值。这将有助于避免不必要的完整垃圾回收暂停。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM