在 Google Compute Engine / Amazon EC2 实例上使用 Neo4j 的最佳实践
Posted
技术标签:
【中文标题】在 Google Compute Engine / Amazon EC2 实例上使用 Neo4j 的最佳实践【英文标题】:Best practices for use of Neo4j on Google Compute Engine / Amazon EC2 instances 【发布时间】:2014-05-17 01:54:47 【问题描述】:有一个very nice guide 为 Neo4j 优化 linux 机器。但本指南假定物理硬盘驱动器的典型特征。我在 Google CE 和 Amazon EC2 上运行我的 Neo4j 实例。我找不到任何详细说明这些虚拟机的最佳设置的文档。在内存(用于堆或扩展使用)和磁盘速度/IOPS 方面我需要哪些资源才能获得最佳性能?我目前有几百万个节点和大约一千万个关系(2 GB),并且数据大小随着导入而增加。
在 EC2 上,我曾经依赖 SSD 暂存磁盘,然后定期备份到永久磁盘。 Compute Engines 上没有这样的东西,而且写入速度对我来说似乎不是很高,至少在正常磁盘大小下(因为speed changes with size)。有什么方法可以让我的导入/索引操作获得合理的性能?或者这些操作可能更多地与内存和计算能力有关?
欢迎补充阅读...
【问题讨论】:
提供更详细的答案@***.com/questions/26751346/… 【参考方案1】:尽可能使用本地磁盘,SSD 比其他更好,尝试 AWS 上的预置操作。
EBS 不太适合,它速度慢且不稳定。
虽然不知道计算引擎,但您可能希望使用更多 RAM,然后尝试将图形的较大部分加载到内存中。
补充阅读:http://structr.org/blog/neo4j-performance-on-ext4
您仍然应该检查该博客文章中提到的其他内容。像 Linux 调度器,写屏障等。
最好手动设置这些内存映射设置。对于 2 级缓存,可以查看带有 hpc 缓存的企业版。
另请参阅此网络研讨会:https://vimeo.com/46049647 on hw-sizing
【讨论】:
那是一篇很棒的文章。如果我的内存大到足以容纳整个数据库,我是否需要调整内存映射设置才能让 Neo4j 将数据保存在内存中? 对自己的回应:如果有足够的可用内存,显然可以使用 cache_type=strong 。参考:docs.neo4j.org/chunked/milestone/configuration-caches.html以上是关于在 Google Compute Engine / Amazon EC2 实例上使用 Neo4j 的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章
ruby Google Compute Engine快照在Ruby中创建和旋转
Google Cloud 中的 Google Compute Engine、App Engine 和 Container Engine 有啥区别?
Google App Engine 通过内部网络与 Compute Engine 通信
如何在 Google Compute Engine 上运行 Docker?