【发布时间】:2023-03-16 15:46:09
【问题描述】:
出于演示目的,我在低内存环境中运行 Neo4j —— 一台 4GB 内存的笔记本电脑,1644MB 用于视频内存,只有 2452MB 可用。它还运行 SQL Server,我们的 WCF 服务,以及我们的客户.. 所以 Neo4j 的内存很少。
我正在通过 REST 从 C# 服务运行 LOAD CSV 密码脚本。有 20 多个脚本,它们在服务器环境中运行良好。我编写了分页代码,以便它们以较小的批次运行。我已将批处理大小减小到非常低(25 csv 行),并且给定脚本可能会执行 300 个批处理,但在某些时候我仍然会收到“Java 堆空间”错误。
我尝试使用相对较大的堆空间 (640MB) 配置 Neo4j,这是所有可用的 RAM 大小加上将 cache_type 设置为 none,并且在我得到 java 堆空间错误之前它会更进一步。我不明白的是,在那种情况下,为什么它会增长这么多?此外,在我重新启动 neo4j 服务之前,我很快就会收到这些 java 堆空间错误。批量大小似乎不会明显影响使用的内存量。
但是,在这样做之后,我使用这些设置运行应用程序,由于缓存设置,查询性能变得非常缓慢。
我在一台配备 4G RAM 的 Windows 7 笔记本电脑上运行它——使用 Neo4j 2.2.1 社区版。
想法?
【问题讨论】: