System requirements

Neo4j can be installed in many environments and for different scopes, therefore system requirements largely depend on the use of the software. This section distinguishes between a personal/development installation and a server-based installation used for production workloads.

Neo4j AuraDB is a fully managed Neo4j database, hosted in the cloud and requires no installation. For more information, see the AuraDB product page and AuraDB documentation.

Supported platforms

Neo4j is supported on systems with x86_64 and ARM architectures on physical, virtual, or containerized platforms.

Hardware requirements

In terms of minimum hardware requirements, follow these guidelines:

Table 1. Hardware requirement guidelines

CPU

Performance is generally memory or I/O bound for large graphs, and compute-bound for graphs that fit in memory.

Memory

More memory allows for larger graphs, but it needs to be configured properly to avoid disruptive garbage collection operations.

Storage

Aside from capacity, the performance characteristics of the disk are the most important when selecting storage:

  • Neo4j workloads tend significantly toward random reads.

  • Select media with low average seek time: SSD over spinning disks.

For personal use and software development:

Table 2. Hardware requirement guidelines for personal use and software development

CPU

Intel x86-x64 Core i3 minimum, Core i7 recommended. AMD x86-x64, Mac ARM.

Memory

2GB minimum, 16GB or more recommended.

Storage

10GB SATA Minimum, SSD with SATA Express or NVMe recommended.

For cloud environments:

Table 3. Hardware requirement guidelines for cloud environments

CPU

2vCPU minimum, 16+ recommended.

Memory

2GB minimum. Actual requirements depend on workloads. In some cases, it is recommended to use instances with memory that fits the size of the graph in use.

Storage

10GB minimum block storage, attached NVMe SSD recommended. Storage size depends on the size of the databases.

For server-based, on-premise environments:

Table 4. Hardware requirement guidelines for server-based, on-premise environments

CPU

Intel/AMD x86-x64. ARM64.

Memory

8GB minimum. Actual requirements depend on workloads. In some cases, it is recommended to use instances with memory that fits the size of the graph in use.

Storage

RAID/SAN or SSD with greater than 5000 IOPS. NVMe SSD is recommended. Storage size depends on the size of the databases.

For more information, see Performance, and more specifically Memory Configuration and Tuning of the garbage collector, and Disks, RAM and other tips.

Software requirements

For personal use and software development:

Table 5. Software requirements for personal use and software development
Operating System Supported JDK

Debian 11, 12

OpenJDK 17, OracleJDK 17, and ZuluJDK 17

MacOS 11, 12

OpenJDK 17, ZuluJDK 17

SuSE Enterprise Desktop 15

OpenJDK 17, OracleJDK 17

Ubuntu Desktop 22.04+

OpenJDK 17, OracleJDK 17, and ZuluJDK 17

Windows 10, 11

OracleJDK 17, ZuluJDK 17

For cloud environments, and server-based, on-premise environments:

Table 6. Software requirements for cloud environments, and server-based, on-premise environments
Operating System Supported JDK

Amazon Linux 2022 AMI, Amazon Linux 2023 AMI

Amazon Corretto 17, and OracleJDK 17

CentOS Stream 8, 9

OpenJDK 17, OracleJDK 17, and ZuluJDK 17

Debian 11, 12

OpenJDK 17, OracleJDK 17, and ZuluJDK 17

Red Hat Enterprise Linux Server 8.6, 8.8, 9.0, 9.2

Red Hat OpenJDK 17, Oracle JDK 17, and ZuluJDK 17

Ubuntu Server 16.04, 18.04, 20.04, 22.04

OpenJDK 17, OracleJDK 17, and ZuluJDK 17

Windows Server 2016, 2019, 2022

OracleJDK 17, ZuluJDK 17

From version 5.14 onwards, Neo4j also supports JDK 21 on all Operating Systems.

For more information on Red Hat Enterprise Linux Life Cycle, refer to their official documentation.

Filesystem

For proper ACID behavior, the filesystem must support flush (fsync, fdatasync). Since databases can put a high and consistent load on a storage system for a long time, it is recommended to use a file system that has good aging characteristics. The EXT4 and XFS file systems are both supported. See Linux file system tuning for details on how to configure the filesystem in Linux for optimal performance.

If tmp is set to noexec, it is recommended to set server.jvm.additional=-Djava.io.tmpdir=/home/neo4j in conf/neo4j.conf and replace /home/neo4j with a path that has exec permissions.

For /bin/cypher-shell, set this via an environment variable: export JAVA_OPTS=-Djava.io.tmpdir=/home/neo4j and replace /home/neo4j with a path that has exec permissions.

For the Neo4j’s uses of the Java Native Access (JNA) library, set server.jvm.additional=-Djna.tmpdir=/tmp in conf/neo4j.conf and replace /tmp with a path that has exec permissions.

Java

It is required to have a pre-installed, compatible Java Virtual Machine (JVM) to run a Neo4j instance. The minimum requirement is Java Runtime Environment (JRE).

Table 7. Neo4j version and JVM requirements
Neo4j Version JVM compliancy

3.x

Java SE 8 Platform Specification

4.x

Java SE 11 Platform Specification

5.x

Java SE 17 Platform Specification

5.14

Java SE 17 and Java SE 21 Platform Specification

Neo4j Desktop is available for developers and personal users. Neo4j Desktop is bundled with a JVM. For more information on how to use Neo4j Desktop and its capabilities, see the Neo4j Desktop documentation.