【问题标题】:Neo4j inserting large files - huge difference in time betweenNeo4j 插入大文件 - 时间上的巨大差异
【发布时间】:2015-05-21 08:08:24
【问题描述】:

我正在我的数据库中插入一组文件(pdf,每个 2 MB)。 一次插入 100 个文件需要 +- 15 秒,而一次插入 250 个文件需要 80 秒。

我不太确定为什么会发生这种巨大差异,但我认为这是因为在此数量之间的可用内存量已满。这可能是问题吗? 如果我可以提供更多详细信息,请告诉我。

【问题讨论】:

  • Neo4j 不是为存储二进制数据而构建的,所以这可能是原因。
  • 这点很好,但总是值得一试。它虽然支持 byte[] 类型,但我认为对于小文件来说,这不是问题。 :)

标签: neo4j graph-databases


【解决方案1】:

不完全确定你这边发生了什么,但它确实看起来像 neo4j 性能指南中描述的 here

可能是:

内存问题

如果您在写入一些数据后遇到写入性能不佳的情况 (最初很快,然后大幅减速)可能是操作系统 即从内存映射区域写出脏页 存储文件。这些区域不需要写出来维护 一致性,以实现该类型的最高可能写入速度 应该避免这种行为。

交易规模

您是否使用多个事务来上传文件?

许多小事务会导致大量 I/O 写入磁盘和 应该避免。太大的事务会导致 OutOfMemory 错误,因为未提交的事务数据保存在 Java 中 内存中的堆。

如果您使用的是 linux,他们还建议您进行一些调整以提高性能。见here

您可以在页面上查看详细信息。

另外,如果你在linux上,你可以在导入时使用这个命令自己检查内存使用情况:

$ free -m

我希望这会有所帮助!

【讨论】:

  • 非常有趣!谢谢,还没有看到内存问题的帖子。
猜你喜欢
  • 1970-01-01
  • 2011-02-02
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-18
  • 1970-01-01
相关资源
最近更新 更多