我在ec2实例(大型,ubuntu)上运行了一个neo4j,我正在运行一些脚本来执行大量的写作。
我注意到,经过一段时间后,这些脚本运行(在他们编写了几千个节点之后),服务器开始运行速度非常慢,有时甚至达到了绝对卡住的程度。另一个奇怪的部分 - 从这种情况重置实例通常最终会在服务器上花费比平时更长的时间来初始化。
首先我怀疑neo4j耗尽了所有RAM,这是一个分页问题,但我已经读过neo4j动态计算堆大小和堆栈大小限制。我还检查了内存使用情况,看起来大多数RAM都没有使用,除了Java进程偶尔弹出,占用几个GB然后快速消失,我认为是neo4j。
无论如何这里是我的问题:我是否需要配置neo4j服务器和/或包装器,或者我应该让neo4j自己动态计算它?并且有人遇到过我所描述的内容并且知道可能导致它的原因吗?
谢谢!
答案 0 :(得分:2)
根据我的经验,您肯定需要根据需要调整内存设置。 neo4j手册上有一整节:
http://neo4j.com/docs/stable/configuration.html
我还没有真正听说过neo4j会自动调整服务器的内存容量,虽然就在昨晚我确实遇到了conf/neo4j.properties
中的新配置变量:
# The amount of memory to use for mapping the store files, either in bytes or
# as a percentage of available memory. This will be clipped at the amount of
# free memory observed when the database starts, and automatically be rounded
# down to the nearest whole page. For example, if "500MB" is configured, but
# only 450MB of memory is free when the database starts, then the database will
# map at most 450MB. If "50%" is configured, and the system has a capacity of
# 4GB, then at most 2GB of memory will be mapped, unless the database observes
# that less than 2GB of memory is free when it starts.
#mapped_memory_total_size=50%