# Sonatype Nexus Repository System Requirements

**Important**  
Starting with Nexus Repository Manager 3.87.x, the AWS SDK used for S3 blob stores has been upgraded from version 1.12.658 to 2.33.5 because the AWS SDK for Java 1.x reaches end of life on December 31, 2025. This change impacts users of non-AWS S3–compliant blob stores. Customers using S3-compatible storage should review compatibility with AWS SDK for Java 2.x when upgrading.

This topic covers system requirements for the Nexus Repository.

- ##### Supported Nexus Repository versions  
Sonatype's product development lifecycle is explained in [Sonatype Sunsetting Information](https://help.sonatype.com/en/sonatype-sunsetting-information.html "Sonatype Sunsetting Information").  
The supported versions are listed on the [version status](https://help.sonatype.com/en/sonatype-nexus-repository-3-versions-status.html "Sonatype Nexus Repository 3 Versions Status") page.

- ##### Supported operating systems  
Sonatype Nexus Repository supports the `Linux`, `Windows`, and `MacOS` operating systems. Sonatype has not tested nor supported other operating systems.

- ##### Use a dedicated user account  
We recommend using a dedicated operating system user account to run each unique process on a given host. The Nexus Repository process user must be able to create a valid shell.
Do not run Nexus Repository as the `root` user.

- ##### Required file handle limits  
Nexus Repository consumes more file handles than the default value allowed by Linux or MacOS operating systems. Some container platforms (e.g., Amazon ECS) override the default limits set on the container. Running out of file descriptors leads to data loss. Increase the limit on the number of open file descriptors for the user running Nexus Repository.

See the topic, [Adjusting the File Handle Limits](https://help.sonatype.com/en/adjusting-file-handle-limits.html "Adjusting the File Handle Limits") for instructions on how to do this in your environment.

- ##### Supported web browsers  
Our policy is to support the most recent modern browser version of your supported OS at the time of the Nexus Repository version release date.

- ##### No support for virus scanners  
Sonatype does not officially support nor recommend using virus scanners with Nexus Repository. We have seen 10x longer startup times on Windows servers and significant performance impact when using a virus scanner to monitor the installation directory.

## Supported Java Versions

Nexus Repository is tested on and supports **OpenJDK** and requires **Java 21**. Nexus Repository is compatible with both Intel and AMD CPU architectures.

As of release 3.78.0 the Nexus Repository bundle includes the recommended JVM.

See [Java Compatibility Matrix](https://help.sonatype.com/en/java-compatibility-matrix.html "Java Runtime Compatibility Matrix").

## CPU

Performance is primarily bounded by IO (disk and network) rather than CPU. Available CPUs will impact longer-running operations and thread count. See the [thread allocation algorithms of the web container](https://support.sonatype.com/hc/en-us/articles/360000744687-Understanding-Eclipse-Jetty-9-4-8-Thread-Allocation).

See the [Memory Recommendations by Profile Size section](https://help.sonatype.com/en/sonatype-nexus-repository-system-requirements.html#nexus-repository-recommendation-by-profile-size "Nexus Repository Recommendation by Profile Size") for CPU recommendation by deployment.

## Memory Requirements

At a high level, expect to allocate up to **two-thirds of available RAM** to Nexus Repository; leaving **one-third of RAM** available for system processes and buffers.

Memory requirements vary by profile size. There is not a single defined requirement due to the complexity of all possible use cases. The section below outlines the memory and CPU recommendations for each node in small, medium, large, and very large profiles.

Highly available deployments must meet these requirements for all nodes in the cluster.

See our [Nexus Repository Memory Overview topic](https://help.sonatype.com/en/nexus-repository-memory-overview.html "Nexus Repository Memory Overview") for details about the different types of memory that Nexus Repository uses and examples of memory-related Java requirements.

### Nexus Repository Recommendation by Profile Size

| Profile Size | Profile Description | CPUs | RAM | Local Blob Storage |
| --- | --- | --- | --- | --- |
| #### Small | 20,000 requests/hour<br>200,000 requests/day<br>embedded H2 database | 2 | 8GB | 20GB |
| #### Medium | 100,000 requests/hour<br>1,000,000 requests/day<br>external PostgreSQL database | 4 | 8GB | 200GB |
| #### Large | 1,000,000 requests/hour<br>10,000,000 requests/day<br>external PostgreSQL database<br>High Availability deployment | 4 per node | 16GB per node | 200GB or more |
| #### Very Large | 2,000,000 requests/hour<br>20,000,000 requests/day<br>external PostgreSQL database<br>High Availability deployment | 8 per node | 32GB per node | 10TB or more |

## Database Requirements

Nexus Repository supports two database options: an embedded H2 database or an external PostgreSQL database.

### Embedded H2 Database Limitations

New installations are configured to use an H2 database by default. Nexus Repository running with the embedded H2 database supports up to **200,000 requests per day or 100,000 components**.

Workloads beyond these limitations are not supported. Container-based deployments are not supported in H2 deployments.

### PostgreSQL Requirements (Recommended)

We recommend all deployments use an external PostgreSQL database. For best performance, the Nexus Repository should have a low-latency connection to the database. When using a cloud database, the Nexus Repository node must be in the same region.

- Must use a version of PostgreSQL that is still considered supported by PostgreSQL as defined in [their versioning documentation](https://www.postgresql.org/support/versioning/)

- Nexus Repository does not support running PostgreSQL in an active/active cluster. The **2-node PostgreSQL cluster** configuration specified in the profile sizing is an active writer and a read node, meant for quicker failover and backup purposes.

#### PostgreSQL Recommendation by Profile Size

Use the following PostgreSQL sizing recommendations with the Nexus Repository cloud-native reference architecture size profiles.

| Profile Size | Request Throughput Baseline | PostgreSQL Instance | PostgreSQL CPU | PostgreSQL Memory (GiB per node) |
| --- | --- | --- | --- | --- |
| **Extra-Small (XS)**<br>[XS AWS Architecture](https://help.sonatype.com/en/nexus-repository-xs-aws-reference-architecture.html "Size XS - Sonatype Nexus Repository - AWS Cloud-Native Reference Architecture") | 100 rps sustained with spikes of 150–200 rps | Embedded H2 | Embedded H2 | Embedded |
| **Small (S)**<br>[S AWS Architecture](https://help.sonatype.com/en/nexus-repository-s-aws-reference-architecture.html "Size S - Sonatype Nexus Repository - AWS Cloud-Native Reference Architecture") | 500 rps sustained with spikes of 900–1,200 rps | `db.r8g.large` | 2 | 16 |
| **Medium (M)**<br>[M AWS Architecture](https://help.sonatype.com/en/nexus-repository-m-aws-reference-architecture.html "Size M - Sonatype Nexus Repository - AWS Cloud-Native Reference Architecture") | 4,000 rps sustained with spikes of 6,000–8,000 rps | `db.r8g.2xlarge` (HA) | 8 | 64 |
| **Large (L)**<br>[L AWS Architecture](https://help.sonatype.com/en/nexus-repository-l-aws-reference-architecture.html "Size L - Sonatype Nexus Repository - AWS Cloud-Native Reference Architecture") | 8,000 rps sustained with spikes of 12,000–16,000 rps | `db.r8g.4xlarge` (HA) | 16 | 128 |
| **Extra Large**<br>[XL AWS Architecture](https://help.sonatype.com/en/nexus-repository-xl-aws-reference-architecture.html "Size XL - Sonatype Nexus Repository - AWS Cloud-Native Reference Architecture") | 15,000 rps sustained with spikes of 50,000 rps | `db.r8g.8xlarge` (HA) | 32 | 128 |

#### Configuring PostgreSQL

- See [configure PostgreSQL](https://help.sonatype.com/en/install-nexus-repository-with-a-postgresql-database.html "Install Nexus Repository with a PostgreSQL Database") for new instances
- See [migrating to a PostgreSQL](https://help.sonatype.com/en/migrating-to-a-new-database.html "Migrating to a New Database") for existing instances

#### Compatible PostgreSQL Providers

Nexus Repository is compatible with the following PostgreSQL providers:
- Amazon RDS instance  
- Amazon Aurora PostgreSQL  
- Azure PostgreSQL Flexible Server  
- Google Cloud SQL for PostgreSQL  
- An instance of PostgreSQL that you provide

#### PostgreSQL with Pgpool is Not Supported

We do not support the `pgpool` or other tools to load balance requests to multiple PostgreSQL servers.
When deploying Nexus Repository and using PostgreSQL, we support the AWS, Azure, and GCP abilities to run PostgreSQL in multiple availability zones.
When deploying your own PostgreSQL servers, we recommend using `Log Shipping` or `Streaming Replication` to keep the non-primary server up to date.
We do not support reading from a stand-by server during normal operations.

#### PostgreSQL Database Duplicate Key Value Error

After upgrading the PostgreSQL host operating system you may see exceptions with a specific message reporting duplicate key value violations.
Refer to the support article " [PostgreSQL Index Corruption - duplicate key violation errors](https://support.sonatype.com/hc/en-us/articles/30128530242835-PostgreSQL-Index-Corruption-duplicate-key-violation-errors)" for details on remediating the issue.

#### Required PostgreSQL Database User Permissions

The database `user` needs to be the owner of the database. Operations such as upgrades or schema changes require ownership privileges. Using a non-owner user is not tested or supported by Sonatype.

#### Required Trigram Module for PostgreSQL Database

Nexus Repository 3 instances using PostgreSQL databases must have the [pg_trgm (trigram) module](https://www.postgresql.org/docs/current/pgtrgm.html). This module may not be installed with PostgreSQL by default on all Linux distributions, which will result in an exception when attempting to upgrade.
See [Installing the Trigram Module](https://help.sonatype.com/en/installing-the-trigram-module.html "Installing the Trigram Module") for installation instructions.

#### Advanced Database Memory Tuning

See [Advanced Database Memory Tuning](https://help.sonatype.com/en/advanced-database-memory-tuning.html "Advanced Database Memory Tuning") for examples of advanced database memory tuning based on different profile sizes.

### Legacy Orient Database

Sonatype Nexus Repository's legacy embedded OrientDB database entered extended maintenance in August 2024.
- Nexus Repository customers must migrate from [OrientDB](https://help.sonatype.com/en/migrating-to-a-new-database.html "Migrating to a New Database") to a supported database.
- Remain on the Nexus Repository 3.70.x version until you are able to migrate from OrientDB. Versions 3.71.0 and above do not support OrientDB.

## Disk Space Requirements

Required disk space for Nexus Repository varies by deployment size and complexity. You must have **at least 4GB available disk space at all times**; if available disk space drops below 4GB, the database will switch to read-only mode.
Sonatype Nexus Repository requires disk space for two primary directories:
- **Application Directory** - Size varies slightly per release; as of August 2024, it is around **390MB**. It is normal to have multiple application directories installed on the same host over time as you upgrade.
- **Data Directory** - Size varies based on complexity and formats. Plan for substantial disk space. Note that formats like Docker and Maven can use very large amounts of storage (500GB easily).

## File Systems

Nexus Repository has two primary storage requirements:
- **Embedded data**: requires very responsive, fast storage, ideally local disk
- **Blob storage**: requires moderately responsive, high-capacity storage

| File System | Embedded data | Blob Stores |
| --- | --- | --- |
| #### Local storage<br>A good choice for both embedded data and binary storage. | <br>Supported | <br>Supported |
| #### NFS v4<br>A common protocol for network-attached storage among Nexus Repository deployments.<br>Use NFSv4.1 or higher for the work directory in small deployments. It's not sufficient for anything larger. | <br>Not Recommended | <br>Supported |
| #### Amazon EBS<br>EBS is a viable choice for both embedded data and binary storage. | <br>Supported | <br>Supported |
| #### Amazon EFS<br>EFS isn't sufficiently responsive for embedded data but is appropriate for binary storage.<br>EFS binary storage may not provide the necessary throughput for heavy workloads in all configurations. | <br>Unsupported | <br>Supported |
| #### Amazon S3<br>S3 semantics aren't suitable for embedded data, but S3 is popular for binary storage. | <br>Unsupported | <br>Supported |
| #### SMB, CIFS<br>Problems are common with SMB or CIFS-mounted devices for embedded data. | <br>Unsupported | <br>Supported |
| #### Azure Blob Storage<br>Available for blob storage from Nexus 3.30.0 Pro.<br>We support the premium performance block blob option. | <br>Unsupported | <br>Supported |
| #### Azure Files<br>Issues with file handles have been observed when accessing embedded data over SMB. | <br>Unsupported | <br>Supported |
| #### S3-Compatible<br>Any fully compatible on-prem S3 implementation that supports the latest AWS SDK version 2.x can be used as a blob store.<br>Note that performance characteristics may differ from AWS S3; we recommend working with your vendor to ensure sufficient performance for your desired workload. | <br>Unsupported | <br>Supported |
| #### Google Cloud Storage<br>Available for blob storage from Nexus 3.74.0 Pro. | <br>Unsupported | <br>Supported |
| #### Google Cloud Filestore<br>Available for embedded data from Pro Version 3.74.0 | <br>Supported | <br>Unsupported |
| #### NFS v3<br>Numerous customers have experienced inadequate performance with NFS v3. | <br>Unsupported |
| #### GlusterFS<br>Split-brain problems and slow performance are common. | <br>Unsupported |
| #### FUSE<br>FUSE-based user-space filesystems are known to be unreliable for Nexus Repository. | <br>Unsupported |

**File System Optimization**  
You may use the following Nexus Repository 2 [optimization suggestions](https://support.sonatype.com/hc/en-us/articles/213465258-Optimizing-Nexus-Disk-IO-Performance) for Nexus Repository 3 file system performance, however we recommend to use at your own discretion.
Consider the `noatime` option for your work directory mounts and limit the symbolic links as they increase the overhead when paths need to be resolved to an absolute file path.
