Die Konfiguration eines System ist ja bekanntlich ein sehr wichtiger Schlüssel zum Erfolg. Weist man einer Anwendung zu wenig Ressourcen zu, so kann sie sich nicht richtig entfalten. Daher zeige
ich euch nun die beiden hauptsächlichen Stellschrauben, welche maßgeblich euren Import beschleunigen können.
Linux-System mit 30GB RAM
Ich verwende für den Import 30GB RAM. Die CPU spielt zwar auch eine Rolle, allerdings nur nebensächlich, was die Konfiguration des Servers anbelangt und wird daher hier
ignoriert.
Um zu schauen wie viel RAM auf eurem System zur Verfügung steht, gibt einfach free -m ein und nun seht ihr links oben nach was euch angezeigt wird. In meinem Fall sind es
30679.
Hinweis: Folgende Änderungen beziehen sich auf die hier verwendete RAM-Größe. Bei Abweichungen solltet ihr auch die folgenden Werte entsprechend erhöhen bzw.
verringern!
Neo4j-wrapper.conf
Wir gehen mit nano /var/lib/neo4j/conf/neo4j-wrapper.conf in die Wrapper-Config-Datei von Neo4j. Dort setzen wir:
- wrapper.java.initmemory=8000
- wrapper.java.maxmemory=8000
jeweils auf 8000 und kommentieren die beiden Zeilen ein. Damit haben wir dann mehr als genug RAM für unseren Import reserviert.
Neo4j.properties
Die zweite wichtige Datei erreichen wir mit nano /var/lib/neo4j/conf/neo4j.properties. Dort sind die ersten 4 Zeilen wichtig:
- neostore.nodestore.db.mapped_memory=1G
- neostore.relationshipstore.db.mapped_memory=5G
- neostore.propertystore.db.mapped_memory=2G
- neostore.propertystore.db.strings.mapped_memory=2G
auch hier wieder einkommentieren und Werte abändern. Wir haben damit den Speicher für die unterschiedlichen Komponenten gesetzt. Der letzte Eintrag
#neostore.propertystore.db.arrays.mapped_memory=130M ist irrelevant, da wir keine Arrays verwenden. Prüfe bei dir ggfs. das noch einmal nach.
Neo4j Server neustarten
Am Ende, wie nach jeder Änderung, ist ein Neustart von Neo4j notwendig. Dazu /var/lib/neo4j/bin/neo4j restart in die Konsole und euer Import sollte nun schneller vonstatten
gehen.
Fazit
Zwar sind die Änderungen nur bedingt hilfreich, da Neo4j schon selber "gute" Werte ermittelt. Allerdings kann es nie schaden, selbst das System einzurichten und zu wissen welche Einstellung
gerade aktiv ist.
Kommentar schreiben