Neo4j:硬件大小和配置的建议

时间:2014-11-07 23:40:03

标签: neo4j

我已经玩了几个月的neo4j 2.0 db,我打算在专用服务器上安装db。我已经尝试了几个neo4j(jvm,caches,...)的配置,但我仍然不确定找到了最好的配置。 因此,向专家询问似乎更好:)

上下文

Db原语:

节点= 224,114,478

关系= 417,681,104

属性= 224,342,951

Db文件:

  • nodestore.db = 3.064Gb

  • relationshipstore.db = 13.460Gb

  • propertystore.db = 8.982 Gb

  • propertystore.db.string = 5.998 Gb

  • propertystore.db.arrays = 1kb

OS服务器:

Windows server 2012(64b)

使用Db:

主要使用cypher查询进行图遍历。

在我的开发笔记本电脑上Perfs也不算太差,即使有些查询有很大的滞后(我怀疑主要原因是因缺少RAM而导致交换)

图表特性:

我怀疑某些节点可能是巨大的集线器(直到1M关系),但它应该保持特殊状态。


您的建议是什么:

  • 硬件大小调整,

  • neo4j配置:

    • 堆大小,

    • 使用内存映射缓冲区(有没有理由在Windows中将值保持为false?)

    • 缓存类型,

    • 建议使用Windows的jvm设置

    • ...

提前致谢!

劳伦

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

图表的磁盘大小总计约为32 GB。 Neo4j具有两层缓存架构。第一层是文件缓冲区缓存。理想情况下,它应该与磁盘图上的大小相同,所以在你的情况下大约为32GB。

重要在Windows上运行Neo4j时,文件缓冲区缓存是Java堆的一部分(由于Windows本身很麻烦)。在Linux / Mac上,它已经脱离了堆。这就是为什么我一般不建议在Windows上使用Neo4j的生产环境的原因。

使用企业版时,

cache_type应为hpc,社区为soft

要为第二个缓存层(对象缓存)提供一些合理的数量,我建议让一台机器至少有64GB RAM。由于文件缓冲区和对象缓存都在堆上,因此请将堆大,并考虑使用G1:-Xmx60G -XX:+UseG1GC。通过取消注释neo4j-wrapper.conf中的gc日志记录并逐步调整设置来观察GC行为。

请注意,Neo4j 2.2可能附带了一个不同的文件缓冲区缓存实现,它也适用于Windows上的堆。