Skip to main content
  1. Posts/

Regarding Extremely Slow and Occasional Upload Failures to Artifactory — A Case Study

·353 words·2 mins· ·
Xianpeng Shen
Author
Xianpeng Shen
Table of Contents

Recently, I encountered extremely slow artifact upload speeds when using Artifactory Enterprise. After collaborating with IT and the Artifactory administrator, the issue was finally resolved. I’m sharing the troubleshooting process here.

This might be helpful if you’ve encountered similar problems.

Problem Description
#

Recently, I noticed that uploading artifacts to Artifactory via Jenkins occasionally became extremely slow. This was especially true when a Jenkins stage involved multiple uploads; the second upload often resulted in extremely slow transfer speeds (KB/s).

Troubleshooting and Resolution
#

My build environment and Jenkins were unchanged, and all build jobs experienced slow uploads. To rule out the Artifactory plugin as the cause, I tested uploads using the curl command, which also exhibited slow speeds.

This pointed to a problem with Artifactory itself.

  1. Was Artifactory recently upgraded?
  2. Were any settings recently changed in Artifactory?
  3. Was there a problem with the Artifactory server?

After communicating with the Artifactory administrator, possibilities 1 and 2 were ruled out. To completely eliminate Artifactory as the source of the problem, I tested using scp for copying files, and it also exhibited slow transfer speeds. This indicated a network issue.

This required IT’s assistance to troubleshoot the network problem. IT ultimately suggested trying a different network interface card (NIC) (due to similar past incidents). This would cause a brief network interruption, but the administrator eventually agreed.

Fortunately, after changing the NIC, the speed of Jenkins uploading artifacts to Artifactory returned to normal.

Summary
#

A few takeaways from handling this incident:

Because this issue involved several teams, clearly defining the problem, providing well-reasoned hypotheses, and explaining the severity of the consequences (e.g., impact on releases) were crucial for getting everyone involved to prioritize the issue. Otherwise, everyone would wait, and nobody would solve the problem.

When the Artifactory administrator suggested using a different data center instance, I recommended they first try changing the NIC. If the problem persisted, they could create another server in the same data center. Only if the issue remained should they consider migrating to a different data center instance. This significantly reduced the extra work involved in trial-and-error from the user’s perspective.

Related

Resolved problem that ESlint HTML report is not displayed correctly in Jenkins job
·159 words·1 min
This article explains how to resolve the issue of ESlint HTML report not displaying correctly in Jenkins jobs due to Content Security Policy restrictions, including the steps to configure Jenkins to allow the report to load properly.
How to download the entire folder artifacts when Artifactory "Download Folder functionality is disabled"?
·371 words·1 min
This article explains how to download the entire folder artifacts from JFrog Artifactory when the “Download Folder functionality is disabled”. It provides a workaround using Artifactory REST APIs to retrieve and download artifacts programmatically.
For Those Who Want to Use JFrog Artifactory to Manage Artifacts
·1507 words·8 mins
This article introduces the concepts, advantages, working principles, and best practices of JFrog Artifactory, helping readers understand how to use Artifactory to manage software artifacts.
How to fix ".NET Framework 2.0 or later is required on this computer to run a Jenkins agent as a Windows service"
·211 words·1 min
Resolve the issue of Jenkins Windows agents not connecting due to missing .NET Framework, including steps to install .NET Framework 3.5 and set up the Jenkins agent service.
Three Ways to Solve the Jenkins Declarative Pipeline "Method code too large" Exception
·558 words·3 mins
This article introduces three methods to solve the “Method code too large” exception in Jenkins declarative pipelines, including moving steps outside the pipeline, migrating from declarative to scripted pipelines, and using Shared Libraries.
Getting Started with JFrog Artifactory
·503 words·2 mins
JFrog Artifactory is a powerful binary repository manager. This article introduces its installation, upgrade, and usage.