Database Reference
In-Depth Information
Understanding performance tuning and
optimizations
Neo4j provides various optimizations and tuning parameters, which, if used thoughtfully,
can provide significant differences in the behavior and throughput of the database and serv-
er. There is no standard or universally accepted configuration and developers need to con-
sider the various non-functional requirements ( NFR s) of the use case such as SLA, effi-
ciency, effectiveness, failure management, performance / response time, and the environ-
ment in which they need to operate, before they start tuning the system.
Neo4j provides the capability of using the OS mapped memory, instead of the JVM heap
for reading/writing. It is always recommended to provide enough OS mapped memory so
that the best performance can be achieved, but in case memory is not enough, then Neo4j
will do its best to keep frequently accessed data in memory and the rest on disk.
It is also recommended to configure OS with large disk caches, which will help in cases
where we get cache misses in the node and relationship caches.
The following table shows the configuration for tuning the memory of the Neo4j database,
which needs to be modified in <$NEO4J_HOME>/conf/neo4j.properties irre-
spective of the process, function, or operation being used or considered (such as reading/
writing or bulk insertion).
Default
value
Parameter
Description
True (ex-
cept win-
dows)
Enables the mapping of operating
system memory for storing the file
buffer cache windows.
use_memory_mapped_buffers
This is the memory required to store
the nodes.
25M
neostore.nodestore.db.mapped_memory
This is the memory required to store
the relationships.
neostore.relationshipstore.db.mapped_memory
50M
Search WWH ::




Custom Search