知识库

了解 neo4j-admin backup 的内存配置

在使用 bin\neo4j-admin backup 对 Neo4j 数据库进行备份时,Neo4j 支持团队建议显式定义备份 JVM 进程使用的 JVM 堆大小和 pagecache 内存。如果未定义这些参数,当执行 neo4j-admin backup 时,JVM 将分配默认的堆大小,而 pagecache 将使用 conf/neo4j.confdbms.memory.pagecache.size 设置的值。多数情况下,conf/neo4j.conf 中的这些参数会占用超过 60% 的总内存。因此,如果 neo4j-admin backup 为堆和 pagecache 分配与正在运行的 Neo4j 进程相同的数值,就会耗尽所有可用内存,导致备份失败和内存不足的情况。

要为 neo4j-admin backup 指定 JVM 堆大小,请设置环境变量 HEAP_SIZE,例如:

$ export HEAP_SIZE=2G

要为 neo4j-admin backup 指定 pagecache 分配,

  • Neo4j 3.3.1 及以后版本 由于 PR 10463 的原因,可通过命令行参数 --pagecache=XXM 指定 pagecache 的数值

    将 XX 替换为要为 pagecache 分配的兆字节数。--pagecache 命令行参数会覆盖任何 neo4j.conf 文件中定义的所有 pagecache 设置。

  • Neo4j 3.2.x 至 Neo4j 3.3.0

    首先为备份配置文件创建一个专用目录,然后设置环境变量 NEO4J_CONF

$ export NEO4J_CONF=/tmp/backup/

+ 然后,在 /tmp/backup 目录下创建一个名为 neo4j.conf 的文件,内容如下

dbms.memory.pagecache.size=12G

+ 对于通过 Debian 安装的环境(例如 apt-get install neo4j-enterprise),还需要添加

dbms.directories.lib=/usr/share/neo4j/lib

+ 到该 neo4j.conf 文件中。

确保 Neo4j 数据库和备份进程合计使用的内存不超过服务器的物理总内存。

© . This site is unofficial and not affiliated with Neo4j, Inc.