Amazon ec2 neo4j变慢&;在亚马逊ec2上卡住了

Amazon ec2 neo4j变慢&;在亚马逊ec2上卡住了,amazon-ec2,neo4j,Amazon Ec2,Neo4j,我有一个运行在ec2实例(大型,ubuntu)上的neo4j,我在上面运行了一些脚本,可以编写很多文章 我注意到,在这些脚本运行了一段时间后(在它们编写了几千个节点之后),服务器开始运行得非常慢,有时甚至会完全卡住。另一个奇怪的部分是,在这种情况下重置实例通常会在服务器上结束,这比通常的初始化时间要长得多 首先,我怀疑neo4j耗尽了所有RAM,这是一个分页问题,但我已经了解到neo4j动态计算堆大小和堆栈大小限制。我还用top检查了内存使用情况,看起来大部分RAM都没有使用,除了Java进程偶

我有一个运行在ec2实例(大型,ubuntu)上的neo4j,我在上面运行了一些脚本,可以编写很多文章

我注意到,在这些脚本运行了一段时间后(在它们编写了几千个节点之后),服务器开始运行得非常慢,有时甚至会完全卡住。另一个奇怪的部分是,在这种情况下重置实例通常会在服务器上结束,这比通常的初始化时间要长得多

首先,我怀疑neo4j耗尽了所有RAM,这是一个分页问题,但我已经了解到neo4j动态计算堆大小和堆栈大小限制。我还用top检查了内存使用情况,看起来大部分RAM都没有使用,除了Java进程偶尔弹出,占用了几GB,然后很快就消失了,我假设是neo4j

无论如何,我的问题是:我是否需要配置neo4j服务器和/或包装器,还是应该让neo4j自己动态计算它?有没有人遇到了我描述的情况,知道是什么原因造成的


谢谢

根据我的经验,您肯定需要根据需要调整内存设置。neo4j手册有一个完整的章节:

我还没有听说过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%

嗨,布莱恩,谢谢你的回答。为了明确我的意思,我打开了neo4j包装器配置文件,看到了以下注释:#Java堆大小:默认情况下,Java堆大小是根据可用的系统资源动态计算的取消对这些行的注释以设置特定的初始和最大堆大小(MB)#wrapper.java.initmemory=512#wrapper.java.maxmemory=512您认为我应该配置neo4j包装器和/或neo4h.properties吗?谢谢:)我以前没有接触过
neo4j wrapper.properties
,但是我想说的是,您肯定想在
neo4j.properties
中配置一些内存限制/内存映射ID设置,所以我尝试了几种混合配置,但都没有效果。我认为瓶颈可能是amazon IO,而不是neo4j。但我需要一些额外的研究。谢谢:)你写得怎么样?您使用的是Cypher还是Java?你在写作时还做了什么,比如说,在写作之前你是否在查找资料?你能发布一些示例查询吗?你试过批处理写入吗?