Neo4j Docker недостаточно памяти - PullRequest
0 голосов
/ 18 ноября 2018

У меня странная проблема с Neo4j в Docker.Это мой файл docker-compose:

version: '3'
services: 
  neo4j:
    ports: 
      - "7473:7473"
      - "7474:7474"
      - "7687:7687"
    volumes:
      - neo4j_data:/data
    image: neo4j:3.3
volumes:
  neo4j_data: {}

Я использую Docker Toolbox в Windows 10. Я проверил это на двух разных машинах, и он отлично работает.Однако на одном компьютере контейнер всегда падает через несколько секунд после создания.Вот лог для этого контейнера:

$ docker container logs database_neo4j_1
Active database: graph.db
Directories in use:
  home:         /var/lib/neo4j
  config:       /var/lib/neo4j/conf
  logs:         /var/lib/neo4j/logs
  plugins:      /var/lib/neo4j/plugins
  import:       /var/lib/neo4j/import
  data:         /var/lib/neo4j/data
  certificates: /var/lib/neo4j/certificates
  run:          /var/lib/neo4j/run
Starting Neo4j.
2018-11-18 12:50:41.954+0000 WARN  Unknown config option: causal_clustering.discovery_listen_address
2018-11-18 12:50:41.965+0000 WARN  Unknown config option: causal_clustering.raft_advertised_address
2018-11-18 12:50:41.965+0000 WARN  Unknown config option: causal_clustering.raft_listen_address
2018-11-18 12:50:41.967+0000 WARN  Unknown config option: ha.host.coordination
2018-11-18 12:50:41.968+0000 WARN  Unknown config option: causal_clustering.transaction_advertised_address
2018-11-18 12:50:41.968+0000 WARN  Unknown config option: causal_clustering.discovery_advertised_address
2018-11-18 12:50:41.969+0000 WARN  Unknown config option: ha.host.data
2018-11-18 12:50:41.970+0000 WARN  Unknown config option: causal_clustering.transaction_listen_address
2018-11-18 12:50:42.045+0000 INFO  ======== Neo4j 3.3.9 ========
2018-11-18 12:50:42.275+0000 INFO  Starting...
2018-11-18 12:50:48.632+0000 INFO  Bolt enabled on 0.0.0.0:7687.
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 262160 bytes for Chunk::new
# An error report file with more information is saved as:
# /var/lib/neo4j/hs_err_pid6.log
#
# Compiler replay data is saved as:
# /var/lib/neo4j/replay_pid6.log

1 Ответ

0 голосов
/ 18 ноября 2018

При поиске добавить дополнительный файл журнала /var/lib/neo4j/hs_err_pid6.log была обнаружена следующая информация:

#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 262160 bytes for Chunk::new
# Possible reasons:
#   The system is out of physical RAM or swap space
#   In 32 bit mode, the process size limit was hit
# Possible solutions:
#   Reduce memory load on the system
#   Increase physical memory or swap space
#   Check if swap backing store is full
#   Use 64 bit Java on a 64 bit OS
#   Decrease Java heap size (-Xmx/-Xms)
#   Decrease number of Java threads
#   Decrease Java thread stack sizes (-Xss)
#   Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
#  Out of Memory Error (allocation.cpp:390), pid=6, tid=0x00007fee96f9bae8
#
# JRE version: OpenJDK Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13)
# Java VM: OpenJDK 64-Bit Server VM (25.181-b13 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea 3.9.0
# Distribution: Custom build (Tue Oct 23 11:27:22 UTC 2018)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#

Как выяснилось, на моей машине Docker было установлено только 1 ГБ ОЗУ и минимальное требование для Neo4j (согласно их веб-сайт ) 2 ГБ.Я смог решить эту проблему, заменив докер-машину по умолчанию в соответствии с этим руководством и выделив новую 4 ГБ памяти.

По сути, я сделал следующее:

$ docker-machine rm default
$ docker-machine create -d virtualbox --virtualbox-cpu-count=2 --virtualbox-memory=4096 --virtualbox-disk-size=50000 default

вам также может понадобиться перезапустить Docker:

docker-machine stop
exit

Пока я не нашел ничего об этой проблеме в Интернете, поэтому, возможно, это когда-нибудь кому-нибудь поможет =).

...