Forcer la vitesse des liens réseau sous Linux
Aujourd'hui, j'ai été confronté à un problème assez ennuyeux. J'ai un serveur avec une carte réseau de 1Gbps connectée à un switch de 1Gbps. J'ai essayé de sauvegarder mes données comme d'habitude mais le transfert était plus lent que d'habitude. En utilisant ethtool
, j'ai vu que la vitesse du lien n'était que de 100Mbps !
Debug the current link speed (déboguer la vitesse de la liaison)
Tout d'abord, je dois récupérer le nom de l'interface réseau. Je pensais que c'était eth0
mais c'était enp2s0
. Merci à Fedora pour cette nouvelle convention de nommage !
En utilisant la commande ip
, je peux donc obtenir la liste de toutes les interfaces réseau et leur statut actuel.
Output :
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 12:34:56:78:9a:bc brd ff:ff:ff:ff:ff:ff
L'interface enp2s0
est celle que je recherche. Je peux maintenant utiliser ethtool
pour obtenir la vitesse actuelle du lien.
Output :
Settings for enp2s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 100baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 100Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: slave
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
Supports Wake-on: pumbg
Wake-on: g
Link detected: yes
La ligne Speed
est celle que je recherche. Elle indique 1000b/s
, ce qui n'est pas ce que j'attends. Auto-negotiation
est on
donc la carte réseau devrait être capable de négocier la vitesse du lien avec le switch.
Ma carte supporte 1000baseT/Full
comme le montre la ligne Supported link modes
. Le switch supporte également 1000baseT/Full
comme le montre la ligne Link partner advertised link modes
. Alors pourquoi la vitesse du lien n'est-elle que de 100Mbps ?
Forcer la vitesse du lien
Je peux forcer la vitesse du lien en utilisant la commande ethtool
.
Vérifions à nouveau la vitesse du lien.
Output :
Settings for enp2s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: slave
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
Supports Wake-on: pumbg
Wake-on: g
Link detected: yes
La ligne Speed
indique maintenant 1000Mb/s
, ce qui correspond à ce que j'attendais.
Conclusion
Je ne sais pas vraiment pourquoi la vitesse du lien n'était que de 100Mbps. Peut-être y avait-il un problème avec le switch ou le câble. Je ferai des recherches plus tard. Pour l'instant, je suis content de ma vitesse de liaison de 1Gbps.