我在Docker中使用Neo4j(v.3.1.0)。当我遇到错误时,我尝试使用单个查询更新整个数据库:
没有足够的内存来执行当前任务。请试试 在neo4j配置中增加'dbms.memory.heap.max_size' (通常在'conf / neo4j.conf'或者,如果你使用的是Neo4j Desktop, 通过用户界面找到)或者如果您正在运行嵌入式 安装通过使用'-Xmx'命令行标志来增加堆,和 然后重启数据库。
所以我去设置配置文件条目:
dbms.memory.heap.initial_size=512M
dbms.memory.heap.max_size=512M
我给他们两个2048M(因为我读过here这两个更好匹配)。但是在保存并重新启动docker之后,条目将恢复为其512M原始值。为了确保它不是一个docker问题,我在配置中写了一些评论行,并坚持下去。这意味着Neo4j故意还原这些值。但为什么?这是码头工人的限制吗?因为我的硬件有足够的内存!
答案 0 :(得分:3)
如果您使用标准泊坞窗图像,/docker_entrypoint.sh
将根据环境变量设置内存或默认为512M。
setting "dbms.memory.heap.initial_size" "${NEO4J_dbms_memory_heap_maxSize:-512M}"
setting "dbms.memory.heap.max_size" "${NEO4J_dbms_memory_heap_maxSize:-512M}"
当您实例化docker容器时,将--env NEO4J_dbms_memory_heap_maxSize=2048
添加到命令中。