Skip to content

Performance issue: extremely slow package downloads when SERVE_DIRECT = false (Azure Blob backend) #36131

@paowuh

Description

@paowuh

Description

Very slow package download performance when using Azure Blob Storage backend (1–2 MB/s vs 12–13 MB/s)

Description

We are experiencing significantly degraded download performance when using Azure Blob Storage as the backend for Gitea Packages (Generic Packages) on Gitea 1.25.2.

When Gitea streams package data (SERVE_DIRECT = false), download throughput drops to 1–2 MB/s.

However:

  • Downloading the same blob directly from Azure Blob Storage reaches 12–13 MB/s.
  • Another artifact repository we operate (Nexus Repository PRO) running in exactly the same VM and network conditions achieves 9–10 MB/s.

Environment

  • Gitea version: 1.25.2 (Linux binary release)
  • OS: Rocky Linux 9
  • Reverse proxy: NGINX (also tested by bypassing → same result)
  • VM environment:
    • Hosted in our on-prem datacenter (VMware)
    • No bandwidth limitations
    • The same VM runs Nexus Repository PRO with 9–10 MB/s download performance
  • Storage backend: Azure Blob Storage
  • Network: Low-latency, high-bandwidth link to Azure region (direct download achieves 12–13 MB/s)

Configuration

[packages]
ENABLED = true
STORAGE_TYPE = azureblob
SERVE_DIRECT = false   # Required for correct filename handling

[packages.azureblob]
ENDPOINT = https://<account>.blob.core.windows.net/
ACCOUNT_NAME = <account>
ACCOUNT_KEY = <key>
CONTAINER = <container>
PATH = packages


### Gitea Version

1.25.2

### Can you reproduce the bug on the Gitea demo site?

No

### Log Gist

_No response_

### Screenshots

_No response_

### Git Version

_No response_

### Operating System

Rocky Linux 9.7

### How are you running Gitea?

We are running Gitea using the official binary release of version 1.25.2, downloaded from the Gitea website.

Gitea is executed as a systemd service on a dedicated virtual machine running:

Rocky Linux 9 (minimal installation)

Hosted on our on-premises VMware datacenter

No bandwidth limitations applied at the hypervisor or network level

The systemd service launches the Gitea binary directly from:

/srv/gitea/bin/gitea web --config /srv/gitea/data/conf/app.ini


We are not using Docker or any third-party packaging.

### Database

PostgreSQL

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions