5.2. Server Configuration

5.2.1. Important server configurations parameters
5.2.2. Neo4j Database performance configuration
5.2.3. Logging configuration
5.2.4. Other configuration options

5.2.1. Important server configurations parameters

The main configuration file for the server can be found at conf/neo4j-server.properties. This file contains several important settings, and although the defaults are sensible administrators might choose to make changes (especially to the port settings).

Set the location on disk of the database directory like this:

org.neo4j.server.database.location=data/graph.db
[Note]Note

On Windows systems, absolute locations including drive letters need to read "c:/data/db".

Specify the HTTP server port supporting data, administrative, and UI access:

org.neo4j.server.webserver.port=7474

Set the location of the round-robin database directory which gathers metrics on the running server instance:

org.neo4j.server.webadmin.rrdb.location=data/graph.db/../rrd

Set the URI path for the REST data API through which the database is accessed. For non-local access, use the full URI of your server e.g. http://example.org:7575/database. For local access use a relative URI, e.g. /db/data

org.neo4j.server.webadmin.data.uri=/db/data/

Setting the management URI for the administration API that the Webadmin tool uses. For non-local access, use the full URI of your server e.g. http://example.org:7575/database/management. For local access use a relative URI, e.g. /db/manage

org.neo4j.server.webadmin.management.uri=/db/manage

If you plan to connect to the Webadmin from other than localhost, put in the external hostname of your server instead of localhost, e.g. http://my.host:7474/db/manage. Force the server to use IPv4 network addresses, in conf/neo4j-wrapper.conf under the section Java Additional Parameters add a new paramter:

wrapper.java.additional.3=-Djava.net.preferIPv4Stack=true

Low-level performance tuning parameters can be explicitly set by referring to the following property:

org.neo4j.server.db.tuning.properties=neo4j.properties

If this property isn’t set, the server will look for a file called neo4j.properties in the same directory as the neo4j-server.properties file.

If this property isn’t set, and there is no neo4j.properties file in the default configuration directory, then the server will log a warning. Subsequently at runtime the database engine will attempt tune itself based on the prevailing conditions.

5.2.2. Neo4j Database performance configuration

The fine-tuning of the low-level Neo4j graph database engine is specified in a separate properties file, conf/neo4j.properties.

The graph database engine has a range of performance tuning options which are enumerated in Section 5.6, “Server Performance Tuning”. Note that other factors than Neo4j tuning should be considered when performance tuning a server, including general server load, memory and file contention, and even garbage collection penalties on the JVM, though such considerations are beyond the scope of this configuration document.

5.2.3. Logging configuration

The logging framework in use by the Neo4j server is java.util.logging and is configured in conf/logging.properties.

By default it is setup to print INFO level messages both on screen and in a rolling file in data/log. Most deployments will choose to use their own configuration here to meet local standards. During development, much useful information can be found in the logs so some form of logging to disk is well worth keeping. On the other hand, if you want to completely silence the console output, set:

java.util.logging.ConsoleHandler.level=OFF

By default log files are rotated at approximately 10Mb and named consecutively neo4j.<id>.<rotation sequence #>.log To change the naming scheme, rotation frequency and backlog size modify

java.util.logging.FileHandler.pattern
java.util.logging.FileHandler.limit
java.util.logging.FileHandler.count

respectively to your needs. Details are available at the Javadoc for java.util.logging.FileHandler.

Apart from log statements originating from the Neo4j server, other libraries report their messages through various frameworks.

Zookeeper is hardwired to use the log4j logging framework. The bundled conf/log4j.properties applies for this use only and uses a rolling appender and outputs logs by default to the data/log directory.

5.2.4. Other configuration options

Enabling logging from the garbage collector

To get garbage collection logging output you have to pass the corresponding option to the server JVM executable by setting in conf/neo4j-wrapper.conf the value

wrapper.java.additional.3=-Xloggc:data/log/neo4j-gc.log

This line is already present and needs uncommenting. Note also that logging is not directed to console ; You will find the logging statements in data/log/ne4j-gc.log or whatever directory you set at the option.