Skip to main content

Sonatype Nexus Repository High Availability Performance Data Using Google Cloud Platform

The following findings are from our internal performance testing to provide transparency in evaluating when a High Availability (HA) Sonatype Nexus Repository deployment is right for your organization.

Test Focus and Limitations

Sonatype’s internal platform and expertise is in Google Cloud Platform (GCP) where these results are gathered. Our focus for the internal stress testing is to validate the stability of our products in a common deployment scenario.

Summary of Findings

  • We consistently achieved a throughput per node of approximately 900 requests per second (RPS) with an average of about 500 RPS.

  • Nodes' CPU loads did not exceed 70% with average usage ~40%.

  • PostgreSQL Database CPU load did not exceed 30% with average usage of about 15%.

  • From our product analytics, this throughput exceeds 10 times the daily average workloads for an estimated 97% of Nexus Repository deployments.

  • You may achieve lower or greater RPS depending on your workload. Formats with larger assets (e.g., Docker) may see lower RPS, while formats with smaller assets (e.g., Maven, NuGet, and npm) may see higher RPS.

Test Environment

The target environment for this test was constructed as follows:

  • 3 Virtual machines: Google Compute engine. Version 3.72. n2-standard-8 (8 vCPU, 4 Core/32Gb RAM). Canonical, Ubuntu OS, 22.04 LTS

  • PostgreSQL: Google PostgreSQL. Version 14.13. (vCPUs 8, RAM 32 GB, SSD storage 50 GB)

  • Blob store: Google Cloud storage used for all repositories in the test

  • Region: europe-central2

Testing strategy

  • The test ran with 300 replicas meaning there are 300 replicas for each format.

  • In theory, there are (300 * 13 = 3900) simulated clients accessing the NXRM instance.

  • Each replica runs on a separate docker container. The testing machining runs on the huge GCP virtual machine with 192 CPU, 96 GB RAM, and 2 TB SSD disk.

Resources Use Sample

The next graphs reflect a sample of the resources used for our tests. This information is a good reference for the general behavior of a system under the tested conditions.

Per-Node CPU Use
nxrm-metrics-Per-Node-CPU-Use.png
Per-Node Network I/O. Received/Sent bytes
nxrm-metrics-Per-Node_Network_io-Received-Sent_bytes.png
Per-Node TCP connections
nxrm-metrics-Per-Node_TCP_connections.png
Nodes Request count
nxrm-metrics-Nodes_Request_count_.png
Nodes Response bytes
nxrm-metrics-Nodes_Response_bytes.png
PostgreSQL CPU
nxrm-metrics-PostgreSQL_CPU.png

Conclusion

Sonatype Nexus Repository's GCP HA solution achieved a throughput of 500 RPS. However, the anticipated cost of maintaining the significant deployment required to achieve HA is high and may be inappropriate for most customers.