我已经使用了几个月的neo4j 2.0 db,我计划在一个专用服务器上安装这个db。我已经尝试过几次neo4j (jvm、缓存、.)。但我还是不确定是否找到了最好的。因此,似乎最好向专家问:)
上下文
Db原语:
节点= 224,114,478
关系= 417,681,104
物业= 224,342,951
Db文件:
OS服务器:
Windows server 2012 (64b)
数据库的使用:
主要是使用密码查询的图形遍历。
即使有些查询有很大的滞后(我怀疑主要原因是内存不足导致的交换),但在我的dev笔记本上,Perfs并不是太糟糕。
图的特殊性:
我怀疑一些节点可能是巨大的枢纽(直到100万之间的关系),但它应该仍然是例外的。
你对以下方面有何建议:
- heap size,
- use memory map buffer (is there any reason to keep the value to false with windows ?)
- cache type,
- recommended jvm settings for windows,
- ...
提前谢谢!
洛朗
发布于 2014-11-08 10:48:08
图形的磁盘上大小总计为32 GB.Neo4j有两层高速缓存结构。第一层是文件缓冲区缓存。理想情况下,它应该具有与磁盘上的图形相同的大小,所以在您的情况下应该是32 in。
在Windows上运行Neo4j时,重要的是文件缓冲区缓存是Java堆的一部分(这是因为Windows本身具有欺骗性)。在Linux/Mac上,这是不堆的。这就是为什么我通常不推荐Neo4j上的生产环境的原因。
在社区中使用企业版和cache_type时,hpc应该是hpc。
为了对第二个缓存层(对象缓存)有一些合理的数量,我建议拥有至少64‘d的机器。因为文件缓冲区和对象缓存都在堆上,所以要使堆变大,并考虑使用G1:-Xmx60G -XX:+UseG1GC。通过取消neo4j-wrapper.conf中的GC日志记录来观察gc行为,并逐步调整设置。
请注意,Windows2.2可能附带一个不同的文件缓冲区缓存实现,该实现在Neo4j上也可以通过堆工作。
发布于 2014-11-08 02:51:34
请查看这两本性能优化和硬件调整计算指南:
https://stackoverflow.com/questions/26811902
复制相似问题