我目前正在大型数据集(> 10G)上运行一些简单的密码查询(计数等),并且在调整NE04J时遇到了一些问题。
运行查询的机器有4TB内存,160个内核,并运行Ubuntu 14.04 / neo4j 2.3版。最初我将所有设置保留为默认值,因为它表示将根据需要动态分配可用内存。但是,由于查询需要几分钟才能完成,我认为情况并非如此。因此,我在neo4j-wrapper.conf中设置了以下参数的各种组合:
wrapper.java.initmemory=1200000
wrapper.java.maxmemory=1200000
dbms.memory.heap.initial_size=1200000
dbms.memory.heap.max_size=1200000
dbms.jvm.additional=-XX:NewRatio=1
以及neo4j.properties中的以下内容:
use_memory_mapped_buffers=true
neostore.nodestore.db.mapped_memory=50G
neostore.relationshipstore.db.mapped_memory=50G
neostore.propertystore.db.mapped_memory=50G
neostore.propertystore.db.strings.mapped_memory=50G
neostore.propertystore.db.arrays.mapped_memory=1G
在每个指南/ Stackoverflow帖子后面我可以找到关于这个主题,但我似乎已经用尽了可用的材料而效果不大。
我使用以下命令neo4j-shell -c < "queries/$1.cypher"
通过shell运行查询,但也尝试使用-config $NEO4J_HOME/conf/neo4j-wrapper.conf
显式传递conf文件(每次我做出更改时重新启动服务器)。
我想我错过了导致这个问题的愚蠢行为,因为有很多报道称neo4j与这种规模的数据配合得很好,但却无法想象它会是什么。因此,任何帮助将不胜感激。
答案 0 :(得分:2)
键入:neo4j浏览器中的SCHEMA,以显示您是否有索引。
分享您的几个问题。
在neo4j.properties文件中,您需要将dbms.pagecache.memory设置为大约数据库文件大小的1.5倍。在您的示例中,您可以将其设置为15g