ARTIFACTORY: Isolating Artifactory performance issues on the network

Kemar Gooden
2023-03-02 17:31

When experiencing slow downloads, uploads, or other network related issues, there are steps that can be taken to help isolate where an issue might be occurring.

The network diagram for an Artifactory environment may look like this:

User-added image

In the diagram above:

  • Incoming connections will first go through the load balancer.
  • The connection will then be routed to the reverse proxy, port 80 or port 443.
  • The reverse proxy / Load Balancer will route the connection to the Router microservice (port 8082) or the Artifactory microservice (port 8081) if the path in the URL starts with “/artifactory”.

To start isolating where latency or network errors are occurring, we can use timed curl commands (time curl …) or other types of client applications to test uploads, downloads, or other types of requests from different places and through different services to start isolating performance issues:

Test the load balancer IP or URL https://<load_balancer_url>/artifactory/<artifact path>
Test the reverse proxy while bypassing LB (reverse proxy is on the same machine as Artifactory) https://<artifactory_server_url>:443/artifactory/<artifact path>

http://<artifactory_server_url>:80/artifactory/<artifact path>

Test upload/download through reverse proxy from localhost https://localhost:443/artifactory/<artifact path>

http://localhost:80/artifactory/<artifact path>

Direct upload/download to Artifactory bypassing reverse proxy and LB http://<artifactory_server_url>:8081/artifactory/<artifact path>
Test Artifactory from localhost http://localhost:8081/artifactory/<artifact path>

If the Artifactory deployment is in a different network than the client making the request, we can also test uploads/downloads from the backend of another Artifactory server connecting to another Artifactory server in the cluster, or from any other type of server in the same fast LAN as Artifactory.

Please reference this wiki for examples of uploading and downloading artifacts when using Artifactory.

Once we isolate where the issue is occurring, we can then focus on investigating the service that is causing the performance issue and tune it if needed. Here are some helpful JFrog tuning and debugging guides: