Neo4j卡在“上”;“运行”;执行查询时

Neo4j卡在“上”;“运行”;执行查询时,neo4j,Neo4j,我想让Neo4j数据库服务器处理我的DigitalOcean droplet。服务器是容器化的(Docker),在本地工作正常,但是当推送到服务器时,查询无法执行,我只剩下下面的内容 容器本身在运行时不显示任何日志,从上面的屏幕截图可以看出,远程界面工作正常。这不是基于权限的错误,因为装载的卷在运行容器时正在写入文件夹 Neo4j.log文件如下所示: 2017-02-10 17:26:52.753+0000 INFO No SSL certificate found, generating

我想让Neo4j数据库服务器处理我的DigitalOcean droplet。服务器是容器化的(Docker),在本地工作正常,但是当推送到服务器时,查询无法执行,我只剩下下面的内容

容器本身在运行时不显示任何日志,从上面的屏幕截图可以看出,远程界面工作正常。这不是基于权限的错误,因为装载的卷在运行容器时正在写入文件夹

Neo4j.log文件如下所示:

2017-02-10 17:26:52.753+0000 INFO  No SSL certificate found, generating a self-signed certificate..
2017-02-10 17:26:54.646+0000 INFO  Starting...
2017-02-10 17:26:56.480+0000 INFO  Bolt enabled on 127.0.0.1:7687.
2017-02-10 17:27:04.282+0000 INFO  Started.
2017-02-10 17:27:08.763+0000 INFO  Remote interface available at http://127.0.0.1:7474/
2017-02-10 17:27:09.680+0000 WARN  Failed authentication attempt for 'neo4j' from 127.0.0.1
2017-02-10 17:27:10.503+0000 INFO  Neo4j Server shutdown initiated by request
2017-02-10 17:27:10.585+0000 INFO  Stopping...
2017-02-10 17:27:10.780+0000 INFO  Stopped.
请注意失败的身份验证尝试。有什么想法吗

更新

我已将服务器升级到1gb RAM,并将堆大小降至128mb。我的ram使用率远低于100%,有大量的交换空间,但问题仍然存在


您的数据库中有多少数据?如果你有100万用户,它将返回所有用户,这很可能会冻结你的浏览器

你想要实现什么

确保为docker映像配置堆+页面缓存,并为数据目录使用外部卷(而不是
aufs


从Github复制我的答案以增加曝光率

通过阅读日志,我有一个强烈的猜测,你是最大限度地发挥了作用 猛击你的水滴。看来你的例子必须开始了 交换,这将导致数据库不可用:

2017-02-11 15:59:25.918+0000 INFO  [o.n.k.i.DiagnosticsManager] System memory information:
2017-02-11 15:59:25.925+0000 INFO  [o.n.k.i.DiagnosticsManager] Total Physical memory: 992.82 MB
2017-02-11 15:59:25.925+0000 INFO  [o.n.k.i.DiagnosticsManager] Free Physical memory: 186.12 MB
2017-02-11 15:59:25.926+0000 INFO  [o.n.k.i.DiagnosticsManager] Committed virtual memory: 2.04 GB
2017-02-11 15:59:25.926+0000 INFO  [o.n.k.i.DiagnosticsManager] Total swap space: 6.84 GB
2017-02-11 15:59:25.926+0000 INFO  [o.n.k.i.DiagnosticsManager] Free swap space: 6.47 GB
2017-02-11 15:59:25.926+0000 INFO  [o.n.k.i.DiagnosticsManager] JVM memory information:
2017-02-11 15:59:25.926+0000 INFO  [o.n.k.i.DiagnosticsManager] Free  memory: 82.07 MB
2017-02-11 15:59:25.927+0000 INFO  [o.n.k.i.DiagnosticsManager] Total memory: 128.00 MB
2017-02-11 15:59:25.927+0000 INFO  [o.n.k.i.DiagnosticsManager] Max   memory: 128.00 MB
我自己做了一些实验,在低内存VPS上运行Neo4j 实例和我的结论是,在计算机上运行它是不可行的 只有1GB内存的机器(我自己的Linode实例有)。假设 您还希望在该机器上运行Neo4j以外的任何东西

原因是除了Java堆和Neo4j页面缓存之外,您还可以 获取某些其他内存开销。朗讯将分配部分资金 拥有堆外内存(可能至少32MB)。Java本身似乎是 需要比配置的堆大小更多的内存

调查所需的最小内存 要查看实际内存使用情况,您可以使用
docker stats
指挥部。例如,考虑以下调用:

docker run --rm --name=neo -e NEO4J_AUTH=none -e NEO4J_dbms_memory_pagecache_size=8M -e NEO4J_dbms_memory_heap_maxSize=100M -p 7474:7474 -p 7687:7687 neo4j:3.1.1-enterprise
最初,您可能会怀疑这需要大约110MB的RAM,对吗?好吧,你错了:

CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
a8a86807064b        0.35%               370.1 MiB / 23.44 GiB   1.54%               2.62 kB / 690 B     119 MB / 3.01 MB    43
事实上,这几乎是预期的4倍。现在让我们看看如果将堆大小增加100MB会发生什么:

docker run --rm --name=neo -e NEO4J_AUTH=none -e NEO4J_dbms_memory_pagecache_size=8M -e NEO4J_dbms_memory_heap_maxSize=200M -p 7474:7474 -p 7687:7687 neo4j:3.1.1-enterprise
结果:

CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
d92e8ecde4a8        0.43%               497.8 MiB / 23.44 GiB   2.07%               7.12 kB / 59.3 kB   119 MB / 3.01 MB    49
CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
2474e209f64e        0.38%               472.3 MiB / 23.44 GiB   1.97%               2.62 kB / 690 B     119 MB / 3.01 MB    43
内存使用量增加了将近100 MB。那么现在,如果我们将Neo4j页面缓存大小增加到100MB,会怎么样

docker run --rm --name=neo -e NEO4J_AUTH=none -e NEO4J_dbms_memory_pagecache_size=100M -e NEO4J_dbms_memory_heap_maxSize=200M -p 7474:7474 -p 7687:7687 neo4j:3.1.1-enterprise
结果:

CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
d92e8ecde4a8        0.43%               497.8 MiB / 23.44 GiB   2.07%               7.12 kB / 59.3 kB   119 MB / 3.01 MB    49
CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
2474e209f64e        0.38%               472.3 MiB / 23.44 GiB   1.97%               2.62 kB / 690 B     119 MB / 3.01 MB    43
启动时没有明显的变化,所以我们可以假设这可能 以后可能会分配100MB。为了验证这一点,我 通过重复创建电影图,对数据库应用了一些负载 这导致了记忆的轻微增长:

CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
77f067c9695c        0.36%               514.2 MiB / 23.44 GiB   2.14%               644 kB / 3.56 MB    120 MB / 4.19 MB    51
判决 看看上面的数字,这是Neo4j内存需求的大致概念(也有一些填充以允许索引内存需求):


您确定UI已连接到数据库吗?(例如,有时螺栓连接存在问题)此外,您是否尝试使用
限制1
进行查询(我不知道您有多少数据,所以这可能无关紧要)。我几乎没有数据。我怀疑这可能是由于缺少RAM。我从一个空卷装载开始,它仍然会导致问题。增加RAM似乎可以使其在短时间内工作。如果页面文件和堆减少解决了问题,我会通知您。