Nexus Repository Manager 3 System Requirements

Supported Versions

Sonatype fully supports versions of repository manager for one year after the release date. Older releases are supported on a best effort basis and the release dates are listed in our download archives.

Host Operating System

Any Windows, Linux, or Macintosh operating system that can run a supported Sun/Oracle Java version will work. Other operating systems may work, but they are not tested by Sonatype.  See here for the list of Oracle certified operating systems.

The most widely used operating system for Nexus is Linux and therefore customers should consider it the best tested platform.

Dedicated Operating System User Account

Unless you are just testing Nexus or running it only for personal use, a dedicated operating system user account is strongly recommended to run each unique Nexus process on a given host.

The Nexus process user is typically named 'nexus' and must be able to create a valid shell.

Important: As a security precaution, do not run Nexus as the root user.

Adequate File Handle Limits

Nexus 3.x will most likely want to consume more file handles than the per user default value allowed by your Linux or OSX operating system.

Running out of file descriptors can be disastrous and will most probably lead to data loss. Make sure to increase the limit on the number of open files descriptors for the user running Nexus Repository Manager permanently to 65,536 or higher prior to starting Nexus.

Windows operating systems do not need file handle limit adjustments.

For more information refer to https://issues.sonatype.org/browse/NEXUS-12041 .

Java

Sonatype Nexus Repository Manager 3 is a Java server application that requires specific versions to operate.

We strongly suggest using the latest Java 8 release version of Java available from Oracle.

OpenJDK has been known to work in most cases, but we do not actively test it. GCJ will not work and is not supported.

IBM JDK can be used on systems that do not have a Sun/Oracle JRE available, but our support of this is done on a best effort basis. 

CPU

Nexus performance is primarily bounded by IO (disk and network) rather than CPU.  So any reasonably modern 4 core (or better) CPU will generally be sufficient for normal uses of Nexus. 

Memory

The default JRE min and max heap size of Nexus 3 is pre-configured to be 1200Mb, which should be considered an absolute minimum. The codebase will consume approximately another 1Gb.  So factoring in operating system overhead you will need at least 4Gb of RAM on a dedicated Nexus host, assuming no other large applications are running on the machine.

Increasing the JVM heap memory larger than recommended values in an attempt to improve performance is not recommended. This actually can have the opposite effect, causing the operating system to thrash needlessly.

Unless you have evidence that a max heap of 4GB is consistently utilized and/or there are frequent lengthy garbage collection pauses that cannot be explained by software bugs, then do not set max heap size larger than 4GB.

General Memory Guidelines

  • set minimum heap should always equal set maximum heap
  • minimum heap size 1200MB
  • maximum heap size <= 4GB
  • minimum MaxDirectMemory size 2GB
  • minimum unallocated physical memory should be no less than 1/3 of total physical RAM to allow for virtual memory swap
  • max heap + max direct memory <= host physical RAM * 2/3

Instance Sizing Profiles

Here are instance profiles you can use to gauge the typical physical memory requirements needed for a dedicated server host running repository manager. Due to the inherent complexities of use cases, one size does not fit all and this should only be interpreted as a guideline.

Profile Use Case  Physical Memory RAM

small, personal

repositories < 20
total blobstore size < 20GB
single repository format type

 4GB minimum

medium, team

repositories < 50
total blobstore size < 200GB
a few repository formats

 8GB

large, enterprise

repositories > 50
total blobstore size > 200GB
diverse set of repository formats 

 16GB+

 

Example Maximum Memory Configurations 

Physical Memory
Example Maximum Memory Configuration
4GB
-Xms1200M
-Xmx1200M
-XX:MaxDirectMemorySize=2G
8GB
-Xms2703M
-Xmx2703M
-XX:MaxDirectMemorySize=2703M
12GB
-Xms4G
-Xmx4G
-XX:MaxDirectMemorySize=4014M
16GB
-Xms4G
-Xmx4G
-XX:MaxDirectMemorySize=6717M
32GB
-Xms4G
-Xmx4G
-XX:MaxDirectMemorySize=17530M
64GB
-Xms4G
-Xmx4G
-XX:MaxDirectMemorySize=39158M

 

Advanced Database Memory Tuning

Refer to another article which outlines additional memory tuning procedures.

Disk

Sonatype Nexus 3 installed consumes around 500 MB. The bulk of disk space will be held by your deployed and proxied artifacts, as well as any search indexes. This is highly installation specific, and will be dependent on the repository formats used, and the number of artifacts stored, the size of your teams and projects, etc.  It's best to plan for a lot though, formats like Docker and Maven can use very large amounts of storage (500Gb easily).

We have some optimization suggestions to use at your discretion. We strongly recommend to avoid using NFS for anything other than blob storage in Nexus 3, especially in large installations, as this can cause severe performance degradation. Also consider the noatime option for your Nexus work directory mounts and limit the symbolic links used as this will cause increased overhead whenever Nexus needs to resolve an absolute file path.

Web Browser

Our general policy is to support the most recent modern browser version for your supported OS at time of Nexus release date. This table is updated for the most recent Nexus release.

Vendor
Versions
Google Chrome latest at Nexus release
Firefox latest and ESR at Nexus release
Safari on OSX only, latest at Nexus release
Opera untested and not supported
Internet Explorer 9, 10, 11  Check this article for known issues.
Microsoft Edge latest at Nexus release
Have more questions? Submit a request

0 Comments

Article is closed for comments.
Powered by Zendesk