Tuning carte réseau (ethtool)
Sur un serveur dédié à fort trafic (CDN, streaming, terminateur VPN), les paramètres par défaut de la NIC peuvent limiter le débit ou augmenter la latence. ethtool inspecte et modifie les réglages du lien et des offloads matériels.
Prérequis
- Serveur dédié Linux, interface identifiée (
ip link) - Accès root
- Sauvegarde des paramètres actuels avant changement
- Compréhension : certains offloads cassent le bridging/VPN si mal configurés
Identification
ip -br link
ethtool eth0
ethtool -i eth0
Notez : driver, firmware, Speed, Duplex, Link detected.
Diagnostic lien
ethtool eth0 | grep -E 'Speed|Duplex|Auto|Link'
ethtool -S eth0 | less
Compteurs d'erreurs :
ethtool -S eth0 | grep -iE 'err|drop|fifo'
Erreurs CRC → câble, SFP, port switch. Discutez avec HolyCloud si le matériel est loué.
Ring buffers (rx/tx)
Augmenter les rings réduit les drops sous rafales :
ethtool -g eth0
ethtool -G eth0 rx 4096 tx 4096
Valeurs max selon carte :
ethtool -g eth0 | head
Persistez via systemd ou script @reboot — ethtool ne persiste pas toujours seul.
Exemple unit /etc/systemd/system/nic-tune.service :
[Unit]
Description=NIC ethtool tuning
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/ethtool -G eth0 rx 4096 tx 4096
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
sudo systemctl enable --now nic-tune.service
Offloads : activer ou désactiver ?
Liste :
ethtool -k eth0
| Offload | Rôle | Désactiver si… |
|---|---|---|
| --------- | ------ | ---------------- |
tcp-segmentation-offload (TSO) |
Segmentation TCP sortante | Capture fine, certains tunnels |
generic-receive-offload (GRO) |
Agrégation réception | Bridge Open vSwitch spécifique |
lro |
Large Receive Offload | Routage asymétrique rare |
Serveur web classique 10 GbE :
# souvent laisser les offloads ON
ethtool -K eth0 tso on gso on gro on
Pont VPN / bridge transparent :
ethtool -K eth0 gro off lro off
Coalescing des interruptions
Réduit les IRQ sous charge :
ethtool -c eth0
sudo ethtool -C eth0 rx-usecs 50 tx-usecs 50
Trop agressif → latence plus haute ; mesurez avec mpstat et softnet_stat.
IRQ et RPS/XPS
Affinité IRQ (multi-queue) :
grep eth0 /proc/interrupts
# scripts set_irq_affinity selon vendor Intel/Mellanox
RPS (Receive Packet Steering) si une seule queue saturée :
echo 4096 | sudo tee /proc/sys/net/core/rps_sock_flow_entries
Documentation kernel : répartir la charge entre CPU.
Flow control (pause frames)
ethtool -a eth0
En datacenter, souvent off des deux côtés pour éviter les pauses en cascade — validez avec l'opérateur.
sudo ethtool -A eth0 rx off tx off
Test de débit
iperf3 -s
# client externe
iperf3 -c IP_PUBLIQUE -P 8 -t 30
Comparez avant/après tuning ; surveillez ethtool -S drops.
NIC multi-gigabit (ex. Intel X710)
Chargez le bon firmware, utilisez les dépôts intel-i40e / mlx5 selon carte. HolyCloud indique le chipset dans la fiche serveur.
dmesg | grep -i eth0
lspci | grep -i ethernet
Rollback
sudo ethtool -G eth0 rx 512 tx 512
sudo ethtool -K eth0 gro on gso on tso on
Redémarrez si le driver reste instable.
Dépannage
| ---------- | ------- |
|---|---|
| Link flapping | Câble SFP, négociation auto, ethtool -r eth0 reset |
| Débit plafonné à 100M | Négociation, câble cat5 |
| Perte après ethtool -G | Valeur trop haute — revenir au max autorisé |
Besoin d'aide ?
Fournissez ethtool eth0, ethtool -S eth0, modèle carte (lspci -v) et type de trafic pour avis sur le port switch côté HolyCloud.