neo4j广度优先遍历内存问题
neo4j breadth first traversal memory issue
我有一个包含百万个节点和 300 万个边的图形加载到 Neo4j 中。它在对其进行广度优先遍历时崩溃,抱怨 8 GB 机器上的内存不足。每个节点标签字符串的平均长度为 40 个字符。
Neo4j 使用什么样的内部表示需要如此多的内存,尤其是。为了遍历?鉴于 Neo4j 能够表示整个图,为什么它在尝试维护广度优先遍历所需的访问节点集时会失败。
根据我的理解,上图的邻接表格式的图形表示应该以 MB 为单位。
计算假设节点和边的 64 位表示
- 300万条边*8字节*3=72M(节点link节点)
- 100万个节点*(40+8+8字节)=56M(64位哈希links到节点字符串标签)
您可能有 8 GB 可用空间,但您是否正在配置 Neo4j 以允许它使用 space?你能看到它在工作时占用了多少空间吗?
这里有一些资源:
http://neo4j.com/developer/guide-performance-tuning/
http://neo4j.com/docs/stable/server-performance.html
http://neo4j.com/docs/stable/configuration-settings.html#config_neostore.nodestore.db.mapped_memory
http://neo4j.com/developer/guide-sizing-and-hardware-calculator/
宾果游戏@brian-underwood!你是对的。
我没有将 Neo4J 配置为使用更多内存。
由于问题仅与节点有关,以下是我修改的内容
- neostore.nodestore.db.mapped_memory=256M #增加
- neostore.relationshipstore.db.mapped_memory=3G #不变
- neostore.propertystore.db.mapped_memory=256M #增加
- neostore.propertystore.db.strings.mapped_memory=200M #不变
- neostore.propertystore.db.arrays.mapped_memory=200M #不变
也已启用,自动索引节点及其键
- node_auto_indexing=真
- node_keys_indexable=key_name
我有一个包含百万个节点和 300 万个边的图形加载到 Neo4j 中。它在对其进行广度优先遍历时崩溃,抱怨 8 GB 机器上的内存不足。每个节点标签字符串的平均长度为 40 个字符。
Neo4j 使用什么样的内部表示需要如此多的内存,尤其是。为了遍历?鉴于 Neo4j 能够表示整个图,为什么它在尝试维护广度优先遍历所需的访问节点集时会失败。
根据我的理解,上图的邻接表格式的图形表示应该以 MB 为单位。 计算假设节点和边的 64 位表示
- 300万条边*8字节*3=72M(节点link节点)
- 100万个节点*(40+8+8字节)=56M(64位哈希links到节点字符串标签)
您可能有 8 GB 可用空间,但您是否正在配置 Neo4j 以允许它使用 space?你能看到它在工作时占用了多少空间吗?
这里有一些资源:
http://neo4j.com/developer/guide-performance-tuning/
http://neo4j.com/docs/stable/server-performance.html
http://neo4j.com/docs/stable/configuration-settings.html#config_neostore.nodestore.db.mapped_memory
http://neo4j.com/developer/guide-sizing-and-hardware-calculator/
宾果游戏@brian-underwood!你是对的。
我没有将 Neo4J 配置为使用更多内存。
由于问题仅与节点有关,以下是我修改的内容
- neostore.nodestore.db.mapped_memory=256M #增加
- neostore.relationshipstore.db.mapped_memory=3G #不变
- neostore.propertystore.db.mapped_memory=256M #增加
- neostore.propertystore.db.strings.mapped_memory=200M #不变
- neostore.propertystore.db.arrays.mapped_memory=200M #不变
也已启用,自动索引节点及其键
- node_auto_indexing=真
- node_keys_indexable=key_name