gpt4 book ai didi

elasticsearch - Docker 中的 Neo4j - 最大堆大小导致硬崩溃 137

转载 作者:行者123 更新时间:2023-11-29 02:48:56 27 4
gpt4 key购买 nike

我正在尝试在运行在 OSX (El Capitan) 上的 Docker 容器中启动 Neo4j 3.1 实例(通过 Docker-Compose)。一切都很好,除非我尝试将 Neo 可用的最大堆空间增加到默认值 512MB 以上。

根据 the docs ,这可以通过添加环境变量 NEO4J_dbms_memory_heap_maxSize 来实现,这会导致服务器包装器脚本相应地更新 neo4j.conf 文件。我已经检查过了,它正在按照人们的预期进行更新。

问题是,当我运行 docker-compose up 启动容器时,Neo4j 实例崩溃并显示 137 状态代码。一点研究告诉我这是一个 linux hard-crash ,基于堆大小的最大限制。

$ docker-compose up
Starting elasticsearch
Recreating neo4j31
Attaching to elasticsearch, neo4j31
neo4j31 | Starting Neo4j.
neo4j31 exited with code 137

我的问题:

  1. 这是由于 Docker 还是 OSX 的限制?
  2. 有什么方法可以修改这些限制吗?如果我将请求的限制降低到 1GB,它会旋转起来,但一旦我运行繁重的查询(这就是导致需要增加堆空间的原因)仍然会崩溃。
  3. 我正在运行的查询是一个包含全文属性的大量节点(>150k)的大规模更新,因此可以使用插件将它们同步到 ElasticSearch。有没有一种方法可以让 Neo 一次完成 500 个节点,只使用 cypher(如果可以的话,我宁愿避免编写脚本,对此感觉有点脏)。

我的docker-compose.yml如下:

---
version: '2'
services:
# ---<SNIP>

neo4j:
image: neo4j:3.1
container_name: neo4j31
volumes:
- ./docker/neo4j/conf:/var/lib/neo4j/conf
- ./docker/neo4j/mnt:/var/lib/neo4j/import
- ./docker/neo4j/plugins:/plugins
- ./docker/neo4j/data:/data
- ./docker/neo4j/logs:/var/lib/neo4j/logs
ports:
- "7474:7474"
- "7687:7687"
environment:
- NEO4J_dbms_memory_heap_maxSize=4G

# ---<SNIP>

最佳答案

  1. 这是由于 Docker 还是 OSX 的限制?

    增加 Docker 的可用 RAM 量以解决此问题。

  2. 有什么方法可以修改这些限制?如果我放弃请求限制为 1GB,它会旋转起来,但一旦我运行重载仍然会崩溃查询(这是导致需要增加堆空间的原因无论如何)。

    Docker Memory Settings

  3. 我正在运行的查询是一个跨越很多的大规模更新包含全文属性的节点(> 150k),以便它们可以使用插件同步到 ElasticSearch。有什么办法可以让 Neo 逐步执行,比如说,一次执行 500 个节点,仅使用cypher(如果可以的话我宁愿不写脚本,感觉有点为此很脏)。

    N/A 这是一个 NEO4J 特定问题。最好将此问题与上面列出的 Docker 问题分开。

关于elasticsearch - Docker 中的 Neo4j - 最大堆大小导致硬崩溃 137,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42397751/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com