Passer au contenu principal
Divers, Réseau

Vitesse de transfert : bits, octets et temps sans se tromper

Vous avez une connexion Ethernet à 1 Gbit/s, un SSD externe annoncé en USB 10Gbps et un fichier de 20 Gio à transférer.

La question semble simple :

« Combien de temps ça va prendre ? »

La réponse commence effectivement par une division.

Puis arrivent les bits, les octets, les préfixes décimaux, les préfixes binaires, les en-têtes de protocoles, le Wi-Fi, les caches, le SSD qui chauffe et le collègue qui lance une sauvegarde réseau exactement au même moment.

Calculer un temps de transfert reste pourtant très simple à condition de respecter une règle fondamentale :

Comparer des unités compatibles et distinguer le débit théorique de la liaison du débit réellement obtenu par les données.

Bits et octets : commencer par ne pas confondre les deux

La première distinction est la plus importante :

1 octet = 8 bits

En anglais :

1 byte = 8 bits

Les symboles permettent normalement de faire la différence :

Symbole Signification
b bit
B byte, donc octet
o octet, notation française

Ainsi :

100 Mbit/s

n’est absolument pas :

100 Mo/s

mais au maximum théorique :

100 Mbit/s ÷ 8 = 12,5 Mo/s

Une simple majuscule vient donc de multiplier ou diviser votre estimation par huit.

L’informatique possède un talent remarquable pour placer des conséquences importantes dans des détails typographiques minuscules.

Les préfixes décimaux : kilo, méga, giga, téra

Les préfixes classiques du système international reposent sur des puissances de 1000.

Unité Valeur
1 kbit 1 000 bits
1 Mbit 1 000 000 bits
1 Gbit 1 000 000 000 bits
1 kB / 1 ko 1 000 octets
1 MB / 1 Mo 1 000 000 octets
1 GB / 1 Go 1 000 000 000 octets
1 TB / 1 To 1 000 000 000 000 octets

Par conséquent :

1 Mbit/s = 1 000 000 bits/s
1 Gbit/s = 1 000 000 000 bits/s

Les débits des technologies réseau et de nombreuses interfaces sont généralement annoncés avec ces préfixes décimaux.

Un lien Ethernet à :

1 Gbit/s

signifie donc bien :

1 000 000 000 bits/s

et non :

1 073 741 824 bits/s

Les préfixes binaires : kibi, mébi, gibi, tébi

Lorsqu’on veut exprimer explicitement des puissances de deux, on dispose des préfixes binaires :

Unité Valeur exacte
1 Kio / KiB 1 024 octets
1 Mio / MiB 1 048 576 octets
1 Gio / GiB 1 073 741 824 octets
1 Tio / TiB 1 099 511 627 776 octets

En français, on peut donc écrire :

Kio
Mio
Gio
Tio

et en notation internationale anglaise :

KiB
MiB
GiB
TiB

Go et Gio ne sont pas la même unité

La différence est facile à constater :

1 Go  = 1 000 000 000 octets
1 Gio = 1 073 741 824 octets

Donc :

1 Gio ≈ 1,07374 Go

et inversement :

1 Go ≈ 0,93132 Gio

Cette distinction devient encore plus visible avec les téraoctets.

Le disque de 1 To qui semble devenir 931 Gio

Un utilisateur achète un SSD annoncé à :

1 To

Puis il ouvre son système et voit une capacité proche de :

931 Gio

Son premier réflexe est généralement :

« Très bien. Qui a volé les 69 restants ? »

En réalité, personne.

Le disque annoncé à 1 To contient :

1 000 000 000 000 octets

Cette même quantité exprimée en Gio donne :

1 000 000 000 000 ÷ 1 073 741 824
≈ 931,32 Gio

Autrement dit, le disque peut sembler « devenir » environ 931 Gio lorsqu’un système ou un logiciel affiche sa capacité avec une unité binaire.

Mais le disque n’a pas réellement perdu de capacité.

Il possède toujours :

1 To
= 1 000 Go
≈ 931,32 Gio

Le fameux passage de 1 To à environ 931 Gio est donc principalement un changement d’unité, pas une disparition de données.

Un véritable tébioctet représenterait :

1 Tio = 1 099 511 627 776 octets

soit environ :

1,0995 To

Le formatage et le système de fichiers utilisent bien une partie de la capacité pour leurs propres structures et métadonnées, mais ce n’est pas ce qui explique l’essentiel de l’écart entre 1 To et environ 931 Gio.

Du point de vue de l’utilisateur, l’impression est néanmoins parfaitement compréhensible : il achète une boîte marquée « 1 To », démarre son ordinateur et voit un nombre proche de 931.

Le disque assiste donc depuis des décennies à son procès pour une erreur d’unité commise par les témoins.

Débits réseau : le raccourci par huit

Pour convertir un débit en bits par seconde vers des octets par seconde, il suffit de diviser par huit.

Débit Maximum décimal en octets/s
10 Mbit/s 1,25 Mo/s
100 Mbit/s 12,5 Mo/s
1 Gbit/s 125 Mo/s
2,5 Gbit/s 312,5 Mo/s
5 Gbit/s 625 Mo/s
10 Gbit/s 1,25 Go/s
25 Gbit/s 3,125 Go/s
100 Gbit/s 12,5 Go/s

Ainsi :

1 Gbit/s ÷ 8 = 125 Mo/s

Mais attention :

125 Mo/s est la conversion mathématique du débit brut de 1 Gbit/s. Ce n’est pas nécessairement le débit d’un transfert de fichier.

Mo/s et Mio/s : encore une petite différence

Un débit de :

1 Gbit/s

correspond exactement à :

125 000 000 octets/s
= 125 Mo/s

Mais en Mio/s :

125 000 000 ÷ 1 048 576
≈ 119,21 Mio/s

Donc :

1 Gbit/s = 125 Mo/s ≈ 119,21 Mio/s

Si votre logiciel affiche MiB/s et votre carte réseau Gbps, il faut tenir compte de cette différence avant d’accuser l’infrastructure.

Table de conversion pratique

Débit de liaison Mo/s théoriques Mio/s théoriques
100 Mbit/s 12,5 Mo/s ≈ 11,92 Mio/s
1 Gbit/s 125 Mo/s ≈ 119,21 Mio/s
2,5 Gbit/s 312,5 Mo/s ≈ 298,02 Mio/s
5 Gbit/s 625 Mo/s ≈ 596,05 Mio/s
10 Gbit/s 1 250 Mo/s ≈ 1 192,09 Mio/s

La formule fondamentale

Si la taille est exprimée en bits et le débit en bits par seconde :

Temps (s) = Taille (bits) ÷ Débit (bits/s)

Par exemple :

Taille = 8 000 000 000 bits
Débit  = 1 000 000 000 bits/s

Temps = 8 secondes

Il n’est pas obligatoire de tout convertir en bits

Convertir systématiquement vers les bits fonctionne très bien, mais ce n’est pas une obligation.

La véritable règle est :

Le numérateur et le dénominateur doivent utiliser des unités compatibles.

Si vous connaissez :

Taille = 4 000 Mo
Débit réel = 100 Mo/s

alors :

Temps = 4 000 Mo ÷ 100 Mo/s
      = 40 s

Aucun bit n’a été dérangé pendant le calcul.

De même :

Taille = 10 Gio
Débit = 500 Mio/s

Comme :

10 Gio = 10 × 1024 Mio
        = 10 240 Mio

alors :

10 240 ÷ 500
= 20,48 secondes

Les formules pratiques

Fichier en Go, débit en Mbit/s

Comme :

1 Go = 8 000 Mbit

on peut utiliser directement :

Temps (s) = taille en Go × 8 000 ÷ débit en Mbit/s

Exemple :

10 Go sur 1 000 Mbit/s :

10 × 8 000 ÷ 1 000
= 80 secondes

Fichier en Gio, débit en Mbit/s

Pour un Gio :

1 Gio = 1 073 741 824 octets
      = 8 589 934 592 bits
      ≈ 8 589,934592 Mbit

La formule devient :

Temps (s)
= taille en Gio × 8 589,934592 ÷ débit en Mbit/s

Fichier en Gio, débit en Mio/s

Celle-ci est particulièrement simple :

Temps (s)
= taille en Gio × 1024 ÷ débit en Mio/s

Exemple 1 : USB 2.0 et fichier de 4,7 Gio

USB 2.0 High-Speed possède un débit nominal de liaison de :

480 Mbit/s

Prenons un fichier annoncé comme faisant environ :

4,7 Gio

En octets :

4,7 × 1 073 741 824
≈ 5 046 586 573 octets

En bits :

≈ 40 372 692 582 bits

Le temps mathématique minimal à 480 Mbit/s serait :

40 372 692 582 ÷ 480 000 000
≈ 84,1 secondes

Soit environ :

1 min 24 s

Mais 84 secondes est un minimum purement théorique obtenu en supposant que les 480 Mbit/s transportent continuellement les données du fichier.

Ce n’est pas le cas dans une véritable copie USB 2.0.

Le protocole possède ses propres échanges et surcharges, et le périphérique de stockage peut être beaucoup plus lent.

Une clé USB 2.0 écrivant réellement à :

35 Mo/s

aurait plutôt besoin d’environ :

5 046 586 573 ÷ 35 000 000
≈ 144 secondes

soit environ :

2 min 24 s

Et certaines clés USB peu glorieuses peuvent faire nettement pire en écriture.

Le logo USB indique une interface.

Il ne garantit pas que la mémoire flash située derrière éprouve la moindre envie de la suivre.

Exemple 2 : Wi-Fi 5 à 867 Mbit/s et fichier de 2 Gio

Prenons une connexion Wi-Fi 5 affichant :

867 Mbit/s

Un fichier de :

2 Gio

représente :

2 × 1 073 741 824
= 2 147 483 648 octets

soit :

17 179 869 184 bits

Le minimum mathématique serait :

17 179 869 184 ÷ 867 000 000
≈ 19,8 secondes

Mais les fameux :

867 Mbit/s

correspondent à un débit PHY de la liaison radio, pas au débit de votre copie de fichier.

Le Wi-Fi doit composer avec :

  • les trames 802.11 ;
  • les acquittements ;
  • l’accès partagé au médium radio ;
  • les interférences ;
  • la qualité du signal ;
  • les retransmissions ;
  • le nombre de flux spatiaux ;
  • les autres clients ;
  • les protocoles réseau supérieurs.

Si votre débit utile mesuré est plutôt de :

500 Mbit/s

le même fichier demandera :

17 179 869 184 ÷ 500 000 000
≈ 34,4 secondes

Et si quelqu’un lance le micro-ondes entre le point d’accès et l’ordinateur, les mathématiques peuvent déposer une demande de congé.

Exemple 3 : Ethernet 1 Gbit/s et fichier de 10 Gio

Un fichier de :

10 Gio

représente exactement :

10 737 418 240 octets

soit :

85 899 345 920 bits

Sur un lien à :

1 Gbit/s

le minimum mathématique est :

85 899 345 920 ÷ 1 000 000 000
≈ 85,9 secondes

soit environ :

1 min 26 s

Sur un excellent réseau Ethernet Gigabit, le débit applicatif TCP peut approcher fortement le débit nominal, mais il restera inférieur à 1 Gbit/s à cause des différentes couches protocolaires.

Un débit réellement mesuré de :

940 Mbit/s

donnerait :

85 899 345 920 ÷ 940 000 000
≈ 91,4 secondes

soit environ :

1 min 31 s

Il n’y a ici aucune fraude mystérieuse.

Une partie des bits transportés sert simplement à faire fonctionner Ethernet, IP, TCP et le reste de la conversation.

Et avec une connexion fibre Internet à 1 Gbit/s ?

La même formule s’applique, mais le problème devient moins contrôlable.

Entre votre ordinateur et le fichier distant se trouvent potentiellement :

  • votre réseau local ;
  • votre box ou routeur ;
  • le réseau de votre opérateur ;
  • plusieurs réseaux intermédiaires ;
  • le serveur distant ;
  • son propre stockage ;
  • ses propres limitations de débit.

Posséder une connexion Internet à 1 Gbit/s signifie que votre accès peut offrir ce niveau de capacité dans les conditions prévues par l’offre.

Cela ne contraint pas le serveur situé à l’autre bout du continent à vous envoyer votre ISO Debian à 1 Gbit/s.

Votre autoroute peut avoir huit voies.

Le parking de départ peut toujours avoir une seule barrière.

Exemple 4 : USB 10Gbps et fichier de 20 Gio

La technologie historiquement appelée USB 3.2 Gen 2 correspond à un niveau de signalisation de :

10 Gbit/s

On rencontre aujourd’hui également l’appellation plus lisible :

USB 10Gbps

Prenons un fichier de :

20 Gio

Il représente :

21 474 836 480 octets

soit :

171 798 691 840 bits

À 10 Gbit/s parfaitement utiles :

171 798 691 840 ÷ 10 000 000 000
≈ 17,18 secondes

Mais là encore, les 10 Gbit/s décrivent la capacité de la liaison.

Supposons que votre SSD externe atteigne réellement :

1 000 Mo/s

Le temps devient :

21 474 836 480 ÷ 1 000 000 000
≈ 21,5 secondes

Avec un SSD atteignant seulement :

500 Mo/s

nous obtenons :

≈ 42,9 secondes

Le câble peut donc offrir une autoroute à 10 Gbit/s pendant que le périphérique conduit tranquillement à 500 Mo/s.

L’autoroute n’est pas lente.

La voiture a simplement ses limites.

Exemple 5 : calculer le débit après coup

Nous avons transféré :

3 Gio

en :

60 secondes

La taille est :

3 × 1 073 741 824
= 3 221 225 472 octets

En bits :

3 221 225 472 × 8
= 25 769 803 776 bits

Le débit moyen est donc :

25 769 803 776 ÷ 60
≈ 429 496 730 bits/s

soit :

≈ 429,5 Mbit/s

En octets par seconde :

429,5 ÷ 8
≈ 53,69 Mo/s

Ou en Mio/s :

3 Gio = 3072 Mio

3072 ÷ 60
= 51,2 Mio/s

Nous venons donc de décrire exactement le même transfert avec :

429,5 Mbit/s
≈ 53,69 Mo/s
= 51,2 Mio/s

Trois valeurs différentes.

Un seul débit.

Bienvenue dans les unités informatiques.

Exemple 6 : combien de temps pour copier 100 Go sur du Gigabit ?

Ici la taille est décimale :

100 Go
= 100 000 000 000 octets

En bits :

800 000 000 000 bits

Sur 1 Gbit/s :

800 000 000 000 ÷ 1 000 000 000
= 800 secondes

soit :

13 min 20 s

À un débit réellement constaté de 940 Mbit/s :

800 000 000 000 ÷ 940 000 000
≈ 851 secondes

soit environ :

14 min 11 s

Exemple 7 : 100 Gio n’est pas 100 Go

Pour :

100 Gio

la quantité est :

107 374 182 400 octets

soit :

858 993 459 200 bits

À 1 Gbit/s :

≈ 859 secondes

soit :

≈ 14 min 19 s

Nous obtenions seulement :

13 min 20 s

pour 100 Go.

Les deux valeurs portaient le nombre 100.

L’une contenait simplement environ 7,37 % de données supplémentaires.

Débit théorique, débit de liaison et débit utile

Il faut distinguer au moins trois concepts.

1. Le débit nominal ou physique

Exemples :

Ethernet : 1 Gbit/s
USB 2.0 High-Speed : 480 Mbit/s
USB 10Gbps : 10 Gbit/s
Wi-Fi : 867 Mbit/s de PHY

Ces nombres décrivent une capacité de la technologie ou de la liaison.

2. Le débit de données transportées

Une partie de la capacité est utilisée par :

  • la signalisation ;
  • les trames ;
  • les en-têtes ;
  • les sommes de contrôle ;
  • les acquittements ;
  • les mécanismes de contrôle ;
  • les éventuelles retransmissions.

3. Le débit applicatif

C’est ce qui intéresse généralement l’utilisateur :

combien d’octets de mon fichier arrivent réellement par seconde ?

C’est ce débit qu’il faut idéalement utiliser pour prévoir un temps de copie réaliste.

Il n’existe pas de règle universelle « retirez 20 % »

Dire :

débit réel = débit théorique × 0,8

peut être pratique pour une estimation très grossière, mais ce n’est pas une règle technique.

La différence dépend entièrement de la technologie.

Un bon réseau Ethernet filaire peut s’approcher fortement de sa capacité nominale.

Une liaison Wi-Fi peut perdre beaucoup plus en débit utile en raison du partage du médium, du signal et des retransmissions.

Un périphérique USB peut être limité presque entièrement par la mémoire flash ou le SSD, et non par USB.

La bonne méthode est donc :

utiliser le débit réellement mesuré lorsque vous le connaissez.

Les principales causes de différence avec le calcul théorique

Les en-têtes de protocoles

Vos données ne circulent pas seules.

Sur un réseau TCP/IP, elles sont encapsulées dans plusieurs couches.

De manière très simplifiée :

Données
↓
TCP
↓
IP
↓
Ethernet
↓
liaison physique

Chaque couche ajoute des informations nécessaires au fonctionnement du protocole.

Le réseau transporte donc davantage que les seuls octets de votre fichier.

Les retransmissions

Lorsqu’une donnée est perdue ou corrompue, certains protocoles peuvent devoir la retransmettre.

Sur Ethernet filaire correctement câblé, cela reste normalement faible.

Sur un environnement radio difficile, les retransmissions peuvent devenir beaucoup plus significatives.

Envoyer deux fois le même paquet reste une manière relativement peu efficace de faire avancer un transfert.

Le support de stockage

Vous pouvez posséder :

Ethernet 10 Gbit/s

et copier vers un disque dur qui écrit à :

150 Mo/s

La liaison pourrait théoriquement transporter :

1 250 Mo/s

mais le disque n’en accepte que :

150 Mo/s

Le débit total sera donc limité par le stockage.

Le principe du goulot d’étranglement

Une chaîne de transfert est limitée par son élément le plus lent.

Supposons :

Élément Capacité
Réseau 1 250 Mo/s
Source SSD 3 000 Mo/s
Destination HDD 180 Mo/s
Application 600 Mo/s

Le transfert ne pourra pas atteindre :

1 250 Mo/s

puisque la destination n’accepte qu’environ :

180 Mo/s

Dans ce scénario, acheter une carte réseau encore plus rapide produit principalement une facture plus rapide.

Un gros fichier et un million de petits fichiers ne se copient pas pareil

Deux ensembles peuvent représenter exactement :

100 Gio

mais produire des temps de copie très différents.

Cas A

1 fichier de 100 Gio

Cas B

2 000 000 de petits fichiers pour un total de 100 Gio

Le second scénario implique beaucoup plus :

  • d’ouvertures de fichiers ;
  • de créations ;
  • de recherches de répertoires ;
  • de mises à jour de métadonnées ;
  • d’opérations sur les permissions ;
  • de latence du stockage ;
  • de traitements antivirus éventuels.

Le débit séquentiel affiché sur la boîte du SSD devient alors beaucoup moins pertinent.

Le périphérique peut écrire à plusieurs gigaoctets par seconde et passer néanmoins une grande partie de son temps à gérer une armée de fichiers de 4 Kio.

La latence n’est pas exactement du débit perdu

On lit souvent que « la latence réduit le débit ».

Il faut nuancer.

La latence mesure essentiellement le temps nécessaire à une information pour parcourir le trajet.

Elle ne consomme pas directement une portion fixe de la bande passante.

Mais elle peut fortement influencer les performances de certains protocoles.

TCP, par exemple, doit maintenir suffisamment de données « en vol » pour exploiter une liaison rapide malgré le temps aller-retour.

Sur :

  • une liaison très rapide ;
  • avec une forte latence ;
  • et une fenêtre TCP insuffisante ;

le débit obtenu peut rester bien inférieur à la capacité du lien.

C’est le fameux problème du bandwidth-delay product.

Le produit bande passante × délai

Supposons une liaison :

1 Gbit/s

avec une latence aller-retour de :

100 ms = 0,1 s

Pour remplir continuellement la liaison, il faut pouvoir avoir environ :

1 000 000 000 × 0,1
= 100 000 000 bits

en vol.

Soit :

12 500 000 octets
≈ 12,5 Mo

Une fenêtre trop petite empêcherait donc TCP de remplir complètement le tuyau.

Internet vous apprend ainsi qu’une connexion à 1 Gbit/s peut nécessiter des dizaines de mégaoctets de données déjà parties avant même que les premières aient reçu leur accusé de réception.

La confiance est manifestement un concept mesurable.

Wi-Fi : le chiffre affiché n’est pas un débit de fichier

Lorsque Windows, Linux ou votre téléphone indique :

866,7 Mbit/s

ou :

1 201 Mbit/s

il s’agit généralement d’un débit de liaison radio.

Ce chiffre dépend notamment :

  • de la norme Wi-Fi ;
  • de la largeur de canal ;
  • du nombre de flux spatiaux ;
  • de la modulation ;
  • du codage ;
  • de la qualité radio.

Le débit TCP ou SMB réellement obtenu est inférieur.

Et contrairement à un lien Ethernet full-duplex dédié, le médium radio doit être partagé.

Chaque appareil attend son tour.

Le Wi-Fi est donc moins une autoroute privée qu’une réunion où une seule personne est censée parler à la fois.

Ce qui explique aussi pourquoi les performances s’effondrent dès que trop de participants commencent à avoir une opinion.

Ethernet full-duplex : 1 Gbit/s dans chaque direction

Une liaison Ethernet Gigabit moderne fonctionne normalement en full-duplex.

Elle peut donc transporter jusqu’à :

1 Gbit/s dans un sens

et simultanément :

1 Gbit/s dans l’autre sens

Cela ne signifie pas qu’un transfert unique dispose de :

2 Gbit/s

dans une direction.

La liaison possède deux capacités directionnelles simultanées.

Votre fichier qui va de A vers B reste sur le côté A → B.

Le protocole de copie compte également

La liaison physique peut être identique tandis que les performances changent selon le protocole utilisé :

  • SMB ;
  • NFS ;
  • SFTP ;
  • FTP ;
  • HTTP ;
  • rsync ;
  • iSCSI ;
  • ou une application propriétaire ayant développé sa propre manière de ralentir les choses.

Le chiffrement, la compression, le nombre d’opérations et le comportement de l’application peuvent modifier le débit obtenu.

La compression peut produire des chiffres étranges

Supposons un lien physique limité à :

1 Gbit/s

mais un logiciel compresse des données très compressibles avant de les transmettre.

Il pourrait annoncer avoir traité :

200 Mo/s de données logiques

alors que beaucoup moins de 200 Mo/s ont réellement traversé le câble.

Ce n’est pas une violation des lois de la physique.

Le logiciel compte les données avant compression.

Inversement, essayer de compresser à nouveau :

  • un ZIP ;
  • une vidéo H.265 ;
  • un JPEG ;
  • un fichier déjà compressé ;

ne provoquera généralement pas le même miracle.

Les caches peuvent mentir très poliment

Vous copiez un fichier et l’interface affiche :

2,8 Go/s

sur un périphérique qui, d’après sa fiche technique, écrit durablement à 900 Mo/s.

Plusieurs explications sont possibles :

  • cache mémoire du système ;
  • cache du contrôleur ;
  • cache SLC d’un SSD ;
  • mesure effectuée avant que toutes les données aient réellement atteint le support.

Un benchmark court peut donc mesurer la vitesse du cache plutôt que celle du périphérique sur une longue écriture.

Le SSD ne ment pas nécessairement.

Il vous montre simplement ses meilleures minutes avant de devoir travailler pour de vrai.

Les SSD peuvent ralentir pendant une longue copie

Un SSD peut écrire très rapidement au début grâce à un cache rapide, puis ralentir lorsque celui-ci est saturé.

On peut alors observer :

Début : 1 500 Mo/s
Après plusieurs dizaines de Gio : 600 Mo/s
Plus tard : 350 Mo/s

Les chiffres exacts dépendent énormément du modèle, du type de NAND, du contrôleur, de la température et de la quantité d’espace libre.

Calculer le temps d’une copie de 500 Gio à partir du meilleur débit observé pendant les trois premières secondes peut donc conduire à une légère déception.

La température peut devenir un goulot d’étranglement

Les SSD NVMe rapides peuvent réduire leur fréquence lorsqu’ils deviennent trop chauds.

Ce mécanisme, appelé thermal throttling, protège le matériel.

Le résultat peut ressembler à :

3 500 Mo/s
3 500 Mo/s
3 400 Mo/s
2 200 Mo/s
1 600 Mo/s

Le disque n’a pas soudainement oublié son métier.

Il essaie simplement de ne pas se transformer en plaque de cuisson.

Comment mesurer un débit réellement utile ?

Pour prévoir un transfert, la meilleure valeur n’est pas toujours celle imprimée sur la boîte.

C’est souvent celle que vous mesurez dans des conditions proches du véritable usage.

Pour le réseau : iperf3

Sur une machine faisant office de serveur :

iperf3 -s

Et sur le client :

iperf3 -c 192.168.1.10

permettent de mesurer le débit réseau sans être directement limités par les disques utilisés pour une copie de fichier.

C’est très utile pour distinguer :

« Le réseau est lent. »

de :

« Le NAS écrit à la vitesse d’un disque dur qui a connu Windows XP. »

Pour le stockage

Utilisez un outil de benchmark adapté et comprenez ce qu’il mesure :

  • lecture séquentielle ;
  • écriture séquentielle ;
  • accès aléatoires ;
  • taille des blocs ;
  • profondeur de file ;
  • cache activé ou non.

Un résultat de benchmark n’est pertinent que pour une charge qui lui ressemble.

Calculer à partir d’un débit mesuré

Supposons que votre copie réelle se stabilise à :

112 Mio/s

et que vous devez transférer :

250 Gio

Convertissons :

250 Gio = 250 × 1024 Mio
         = 256 000 Mio

Puis :

256 000 ÷ 112
≈ 2 285,7 secondes

soit environ :

38 min 6 s

Cette estimation sera souvent beaucoup plus utile qu’un calcul basé sur « Gigabit Ethernet = 125 Mo/s », car elle inclut implicitement une grande partie des limitations réellement observées.

Calculer le temps restant pendant un transfert

La formule est :

Temps restant = Données restantes ÷ Débit moyen

Supposons :

Données restantes : 80 Gio
Débit moyen : 90 Mio/s

Alors :

80 Gio = 81 920 Mio

et :

81 920 ÷ 90
≈ 910 secondes
≈ 15 min 10 s

Les logiciels affichent généralement une estimation similaire, recalculée régulièrement.

C’est pourquoi l’interface peut annoncer :

8 minutes restantes

puis :

17 minutes restantes

puis :

6 minutes restantes

sans que le temps lui-même ait subi une panne majeure.

Le débit change simplement au cours de la copie.

Calcul à l’envers : quel débit me faut-il ?

Vous devez transférer :

50 Gio

en moins de :

5 minutes = 300 secondes

La taille en bits est :

50 × 1 073 741 824 × 8
= 429 496 729 600 bits

Le débit utile minimal nécessaire est :

429 496 729 600 ÷ 300
≈ 1 431 655 765 bits/s

soit :

≈ 1,43 Gbit/s utiles

Un réseau Gigabit ne pourra donc pas atteindre cet objectif.

Il faudra au minimum passer à une technologie supérieure, par exemple 2,5 GbE, tout en vérifiant que le stockage suit.

Cette dernière partie est importante.

Un câble 2,5 GbE connecté à deux disques écrivant à 80 Mo/s ne constitue pas une stratégie d’accélération spectaculaire.

Calcul à l’envers : quelle taille a été transférée ?

Si vous transférez pendant :

120 secondes

à un débit moyen de :

800 Mbit/s

alors :

800 000 000 × 120
= 96 000 000 000 bits

En octets :

96 000 000 000 ÷ 8
= 12 000 000 000 octets

soit :

12 Go

ou environ :

11,18 Gio

Tableau de temps théoriques

Voici quelques ordres de grandeur pour un fichier de 10 Gio, sans aucune surcharge :

Débit Débit équivalent maximal Temps minimum pour 10 Gio
100 Mbit/s 12,5 Mo/s ≈ 14 min 19 s
1 Gbit/s 125 Mo/s ≈ 1 min 26 s
2,5 Gbit/s 312,5 Mo/s ≈ 34,4 s
5 Gbit/s 625 Mo/s ≈ 17,2 s
10 Gbit/s 1,25 Go/s ≈ 8,59 s

Ces valeurs sont des planchers mathématiques.

Elles permettent de détecter rapidement les attentes impossibles.

Si quelqu’un demande pourquoi son fichier de 10 Gio ne se copie pas en quatre secondes sur du Gigabit Ethernet, le problème n’est pas encore le switch.

Le problème est l’arithmétique.

Tableau de temps pour 100 Gio

Débit Temps minimum théorique
100 Mbit/s ≈ 2 h 23 min
1 Gbit/s ≈ 14 min 19 s
2,5 Gbit/s ≈ 5 min 44 s
5 Gbit/s ≈ 2 min 52 s
10 Gbit/s ≈ 1 min 26 s

Pourquoi « 10 Gbit/s » ne signifie pas automatiquement « 1,25 Go/s sur mon SSD »

Parce que toute la chaîne doit suivre.

Pour réellement approcher 1,25 Go/s, il faut notamment que :

  • l’interface fonctionne réellement à 10 Gbit/s ;
  • le câble supporte ce débit ;
  • le contrôleur source suive ;
  • le stockage source lise assez vite ;
  • le stockage destination écrive assez vite ;
  • le protocole et le logiciel soient suffisamment efficaces ;
  • le processeur ne constitue pas un goulot d’étranglement ;
  • aucune autre activité importante ne monopolise les ressources.

La vitesse d’une chaîne est celle de son maillon le plus lent.

Les constructeurs de chaînes ont compris cela bien avant les administrateurs système.

Attention aux unités affichées par les logiciels

Avant de comparer deux valeurs, vérifiez ce que le programme affiche réellement.

Vous pouvez rencontrer :

MB/s
MiB/s
Mo/s
Mbit/s
Mbps
Gbps

Et parfois un logiciel utilise :

MB/s

tout en calculant historiquement avec des puissances de 1024.

La notation n’est malheureusement pas toujours aussi propre que les standards.

Pour un calcul sérieux, il faut donc parfois vérifier la documentation du logiciel plutôt que d’interpréter son suffixe avec une confiance aveugle.

Les erreurs de calcul les plus fréquentes

Confondre Mbit/s et Mo/s

Erreur :

1 Gbit/s = 1 000 Mo/s

Correct :

1 Gbit/s = 125 Mo/s

Considérer 1 Go comme 1 Gio

Erreur :

1 Go = 1 073 741 824 octets

Correct :

1 Go  = 1 000 000 000 octets
1 Gio = 1 073 741 824 octets

Considérer le débit nominal comme du débit de fichier

Erreur :

USB 2.0 = mes fichiers seront copiés à 60 Mo/s

Correct :

480 Mbit/s ÷ 8 = 60 Mo/s

est seulement la conversion mathématique du débit nominal.

Le débit applicatif sera inférieur et peut être limité par le périphérique lui-même.

Appliquer systématiquement « moins 20 % »

Le rendement dépend trop de la technologie pour appliquer une constante universelle.

Oublier le stockage

Un réseau à 10 Gbit/s n’accélère pas magiquement un disque à 100 Mo/s.

Mesurer uniquement les trois premières secondes

Les caches peuvent donner une image très avantageuse d’un transfert court.

Comparer un gros fichier à des millions de petits fichiers

Le débit séquentiel ne raconte pas toute l’histoire.

Une méthode simple pour estimer correctement un transfert

  1. Identifiez la taille réelle et son unité. Est-ce du Go, du Gio, du Mo ou du Mio ?
  2. Identifiez le débit et son unité. Mbit/s, Gbit/s, Mo/s ou Mio/s ?
  3. Convertissez les deux vers des unités compatibles.
  4. Calculez le minimum théorique.
  5. Identifiez les goulots d’étranglement. Réseau, stockage, USB, Wi-Fi, processeur, serveur distant.
  6. Utilisez un débit mesuré si vous avez besoin d’une estimation réaliste.

La règle des huit

Pour les conversions rapides :

bits/s → octets/s : divisez par 8.
octets/s → bits/s : multipliez par 8.

Exemples :

800 Mbit/s ÷ 8 = 100 Mo/s

250 Mo/s × 8 = 2 000 Mbit/s
             = 2 Gbit/s

Attention simplement à ne pas mélanger ensuite Mo et Mio.

Le petit tableau mental à retenir

Valeur Équivalence
100 Mbit/s 12,5 Mo/s
1 Gbit/s 125 Mo/s
2,5 Gbit/s 312,5 Mo/s
5 Gbit/s 625 Mo/s
10 Gbit/s 1,25 Go/s
1 Go 1 000 000 000 octets
1 Gio 1 073 741 824 octets
1 To 1 000 Go ≈ 931,32 Gio
1 Tio 1 024 Gio ≈ 1,0995 To

Résumé des formules

Ce que l’on cherche Formule
Temps taille ÷ débit
Débit taille ÷ temps
Taille transférée débit × temps
Mbit/s → Mo/s ÷ 8
Mo/s → Mbit/s × 8
Gio → Mio × 1024
Go → octets × 1 000 000 000
Gio → octets × 1 073 741 824

Ce qu’il faut vraiment retenir

  • 1 octet = 8 bits.
  • Les préfixes k, M, G et T sont décimaux : puissances de 1000.
  • Les préfixes Ki, Mi, Gi et Ti sont binaires : puissances de 1024.
  • 1 Go et 1 Gio ne sont pas la même quantité.
  • 1 To = 1 000 000 000 000 octets et vaut environ 931,32 Gio.
  • Un disque de 1 To peut sembler « devenir » environ 931 Gio selon l’unité affichée, sans avoir réellement perdu de capacité.
  • Un débit de liaison n’est pas nécessairement un débit applicatif.
  • 1 Gbit/s = 125 Mo/s ≈ 119,21 Mio/s avant les surcharges.
  • Le débit réel dépend du maillon le plus lent de la chaîne.
  • Pour une estimation réaliste, utilisez autant que possible un débit réellement mesuré.

Conclusion : les mathématiques sont simples, les tuyaux beaucoup moins

Le calcul d’un temps de transfert tient finalement en une formule :

temps = taille ÷ débit

Ce qui complique les choses n’est pas l’équation.

C’est de savoir exactement ce que représentent taille et débit.

Un fichier de 10 Gio n’est pas un fichier de 10 Go.

Une liaison à 1 Gbit/s n’est pas une copie à 125 Mio/s.

Une connexion Wi-Fi affichée à 867 Mbit/s n’est pas un contrat promettant 867 Mbit/s à votre fichier.

Et une interface USB 10Gbps ne donne pas soudainement à une clé USB à 40 Mo/s des ambitions de SSD NVMe.

Commencez donc par mettre toutes les unités d’accord.

Calculez ensuite le minimum théorique.

Puis regardez le matériel et les protocoles qui doivent réellement accomplir le travail.

Les bits donnent la limite.
Les octets donnent la quantité.
Le goulot d’étranglement donne la réalité.

Et lorsque Windows annonce « 5 minutes restantes », puis « 12 minutes », puis « 3 minutes », ne lui en voulez pas trop.

Il applique exactement la même formule.

Il découvre simplement la réalité en même temps que vous.