Téléchargement de fichiers multithread pour Linux | INTROSERV
EUR
european

EUR

usa

USD

French Fr
Ex. VAT Ex. VAT 0%

Téléchargement de fichiers multithread pour Linux

Lorsqu'un fichier volumineux est téléchargé depuis un seul serveur HTTP ou FTP à l'aide d'un outil standard tel que curl ou wget, une seule connexion TCP est ouverte et le fichier est téléchargé de manière séquentielle. Sur un réseau rapide, le débit peut être limité par la limite de vitesse du serveur par connexion, par le slow start de TCP ou par la latence aller-retour. Les utilitaires de téléchargement parallèle ouvrent plusieurs connexions vers la même source simultanément, chacune récupérant une plage d'octets différente, puis réassemblent le résultat localement. Cela ne fonctionne que si le serveur accepte les requêtes HTTP Range (en répondant avec HTTP 206 Partial Content) ; sur les serveurs qui les prennent en charge, le transfert est souvent nettement plus rapide qu'avec un outil utilisant un seul flux.

Dans cet article, le terme « téléchargement multithread » désigne ce modèle de connexions parallèles, et non l'utilisation de plusieurs threads à l'intérieur du processus de téléchargement lui-même.

Cet article présente deux utilitaires de ce type pour Linux : Axel et aria2.

Axel

Axel est un outil léger de téléchargement en ligne de commande. Il ouvre plusieurs connexions vers une même source et télécharge différentes plages d'octets en parallèle. Il prend en charge HTTP, HTTPS, FTP et FTPS, et permet de reprendre un téléchargement interrompu.

Installation d'Axel

Sur Debian et Ubuntu :

sudo apt install axel

Sur RHEL, CentOS Stream, AlmaLinux et Rocky Linux, activez d'abord EPEL :

sudo dnf install epel-release sudo dnf install axel

Sur Fedora :

sudo dnf install axel

Utilisation d'Axel

Téléchargement de base :

axel https://nl.lg.introserv.eu/1000MB.test

L'option -a active un indicateur de progression compact :

axel -a https://nl.lg.introserv.eu/1000MB.test

Limitez la vitesse maximale de téléchargement en octets par seconde avec -s (ou --max-speed). Par exemple, pour limiter le transfert à 500 Ko/s :

axel --max-speed=512000 https://nl.lg.introserv.eu/1000MB.test

Enregistrez le fichier sous un autre nom avec -o :

axel -o gigabyte.test https://nl.lg.introserv.eu/1000MB.test

Définissez le nombre de connexions parallèles avec -n :

axel -n 10 https://nl.lg.introserv.eu/1000MB.test

Reprenez un téléchargement partiel avec -c :

axel -c https://nl.lg.introserv.eu/1000MB.test

Avec -c, si un fichier local portant le même nom existe déjà, Axel reprend le téléchargement là où il s'était arrêté au lieu de recommencer depuis le début.

aria2

aria2 prend en charge le même cas d'utilisation de téléchargement parallèle qu'Axel et offre un ensemble de fonctionnalités plus complet. Il prend en charge HTTP, HTTPS, FTP, SFTP, BitTorrent et Metalink, et peut récupérer le même fichier à partir de plusieurs sources simultanément. Comme Axel, il divise un fichier en segments et les télécharge en parallèle.

Principales fonctionnalités :

  • nombre de connexions par serveur, taille des segments et niveau de concurrence globale configurables
  • reprise automatique des téléchargements interrompus
  • vérification de l'intégrité à l'aide de sommes de contrôle
  • prise en charge de HTTPS et FTPS
  • clients BitTorrent et Metalink natifs

Installation d'aria2

Sur Debian et Ubuntu :

sudo apt install aria2

Sur RHEL, CentOS Stream, AlmaLinux et Rocky Linux :

sudo dnf install aria2

Sur Fedora :

sudo dnf install aria2

Utilisation d'aria2

Téléchargement de base :

aria2c https://nl.lg.introserv.eu/1000MB.test

Téléchargez le même fichier à partir de deux miroirs simultanément. aria2 combine les connexions aux deux sources et réassemble le fichier localement :

aria2c "https://nl.lg.introserv.eu/1000MB.test" "https://uk.lg.introserv.eu/1000MB.test"

Mélangez des sources HTTP et FTP en fournissant les identifiants FTP :

aria2c --ftp-user=<USER> --ftp-passwd=<PASSWD> "ftp://<ftpserver_ip>/<file>" "https://uk.lg.introserv.eu/1000MB.test"

Ouvrez huit connexions parallèles vers un seul serveur et divisez le fichier en huit segments :

aria2c -x8 -s8 https://nl.lg.introserv.eu/1000MB.test

L'option -x (ou --max-connection-per-server) limite le nombre de connexions qu'aria2 ouvre vers un seul serveur (1 par défaut). L'option -s (ou --split) définit le nombre maximal de segments en lesquels le fichier est divisé (5 par défaut). Pour une seule source, le nombre effectif de connexions parallèles est le plus petit des deux paramètres : -x8 -s5 ouvre 5 connexions, et -x5 -s8 en ouvre également 5. Pour obtenir réellement 8 connexions parallèles vers un seul serveur, les deux paramètres doivent être augmentés, raison pour laquelle ils sont généralement définis à la même valeur.

L'option -k (ou --min-split-size) définit la taille minimale d'un segment en lequel le fichier peut être divisé. Des valeurs plus petites permettent d'utiliser davantage de segments parallèles, mais augmentent les frais généraux :

aria2c -x8 -s8 -k1M https://nl.lg.introserv.eu/1000MB.test

Info

-x, -s et -j répondent à des besoins différents. -x contrôle le nombre de connexions ouvertes vers un serveur lors du téléchargement d'un fichier. -s contrôle le nombre de segments en lesquels un fichier est divisé. -j (ou --max-concurrent-downloads) contrôle le nombre de fichiers distincts qu'aria2 télécharge simultanément.

Téléchargez deux fichiers en parallèle :

aria2c -j2 https://nl.lg.introserv.eu/1000MB.test https://uk.lg.introserv.eu/1000MB.test

Reprenez un téléchargement partiel avec -c :

aria2c -c https://nl.lg.introserv.eu/1000MB.test

Lorsqu'un fichier Metalink est fourni, aria2 peut sélectionner automatiquement les miroirs, vérifier les données téléchargées à l'aide des sommes de contrôle indiquées dans le fichier Metalink et réessayer les miroirs défaillants sans intervention manuelle.

Pour une utilisation répétée, aria2 lit les options par défaut dans ~/.aria2/aria2.conf si le fichier existe. Des paramètres tels que max-connection-per-server et split peuvent donc être définis une seule fois dans ce fichier au lieu d'être spécifiés à chaque exécution.

Warning

Ouvrir un grand nombre de connexions parallèles vers un miroir public ou un CDN peut enfreindre la politique d'utilisation de l'opérateur et entraîner une limitation du débit ou un bannissement temporaire. Pour les sources publiques, gardez un nombre de connexions modéré (4 à 8 est généralement une valeur sûre) ; n'utilisez des valeurs supérieures que sur une infrastructure dont vous savez qu'elle les autorise.

Quand les téléchargements parallèles sont-ils utiles ?

Les téléchargements parallèles sont particulièrement efficaces lorsque le goulot d'étranglement est la limite de vitesse du serveur par connexion ou la capacité de transfert maximale d'une source, plutôt que le disque local ou la connexion réseau dans son ensemble. Lorsque la liaison réseau est déjà saturée, ouvrir davantage de connexions n'augmente pas la bande passante totale ; cela ne fait que la répartir différemment. Certains serveurs HTTP refusent également les requêtes Range ou limitent le nombre de connexions simultanées provenant d'un même client. Dans ce cas, un outil à flux unique tel que wget peut être aussi rapide qu'Axel ou aria2.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA